檢視系統支援的shell: cat /etc/shells
檢視當前系統用的shell: echo $shell
從bash切換到zsh: 先yum安裝,然後 chsh -s /bin/zsh ,退出重新登入即可(chsh -s 實際上是修改了/etc/passwd檔案)
env和export顯示的環境變數
set和declare顯示的環境變數和自定義變數
指定path變數: export path=$path:/home/roc
有export則指定的是環境變數,沒有export 的是指定自定義變數
在子程序中自定義變數無效的
從鍵盤輸入自帶提示語:read -p "please input your name and place:"
echo "welcome $reply" $reply變數輸出結果
#!/bin/bash
if read -t 5 -p "please input your name and place:" name
then
echo "welcome $name"
else
echo "sorry,too slow"
fiexit 0 #用-t設定超時時間,在read語句後面新增變數來接受輸入
if read -s -p "please input your name and place:" name # -s用來輸入密碼
exec 3< c.txt
count=0
while read -u 3 var
do let count=$count+1
echo "line $count:$var"
done
echo "finished"
echo "line no is $count" #從檔案讀入
#!/bin/bash
count=0
cat c.txt | while read line
do echo "line $count:$line"
let count=$count+1
done
echo "finiished"
echo "line no is $count"
exit 0 #這種方法的結果是返回1 ,因為管道的兩邊一般需要新建程序,當執行完while後,新程序結束,當指令碼執行結束後,輸出的count是原來程序中的count,而不是while中的count了
#!/bin/bash
count=0
while read line
dolet count=count+1
echo "line $count:$line"
done< c.txt
echo "finished"
echo "line no is $count" #使用重定向技術可以避免像上乙個指令碼在迴圈中又新建變數的問題
./a.out &:用ctrl+c的話照樣執行,但是斷開遠端終端就停止,nohup ./a.out:按ctrl+c會停止,但是關了終端仍然執行
nohup ./a.out & :ctrl+c和關閉終端都可以執行,類似於守護程序
alias vi='vim' #如果起的別名和原來的命令重複則shelll預設使用別名,如果想使用原來的命令則通過/bin/vi這樣的形式使用
#!/bin/bash --login 用這行代替/bin/bash可以使用系統中的別名,加上--login的作用是使shell稱為乙個login shell,可以讀取使用者的profile和rc檔案
!15 #開啟history命令後執行需要的命令
防止密碼被儲存到history的方法:
export histcontrol=ignorespace
輸入重要命令功能的時候在前面加乙個空格
在輸入命令前輸入export=histingnore=*
在輸入命令結束後再次輸入exprot=histingnore=
xargs #將echo作為自己的標準輸入,eg: echo a.txt | cat #則會讀取a.txt的內容
file -i a.txt #a.txt: text/plain; charset=us-ascii
find / -maxdepth 1 #搜尋深度為1
find . -type f -a -name "aa" # 查詢檔案,檔名為aa
du -sh #列出當前資料夾的佔用量
du -ah # 列出每個檔案和資料夾的使用量
du -ah | sort -hr #列出大檔案
du顯示的是乙個blok的大小,ls顯示的是實際大小
echo的用法:
單引號無視所有特殊字元,所有字元都是普通的字元
雙引號識別 $ \ 和`
grep用法
grep -n root /etc/passwd # 將含有root的行找出來並加上行號
grep查詢前和後相鄰行:
after1行 :grep -a 1 root /etc/passwd
before1行: grep -b 1 root /etc/passwd
前後1 行: grep -c 1 root /etc/passwd
不區分大小寫: grep -i "aa" /etc/passwd
找詞: grep -w "bin" /etc/passwd
egrep '^root | bash$' /etc/passwd
sed命令用法:
head -n /etc/passwd | sed 's/:.*$//' #替換冒號後面的值
cat /etc/passwd | sed -n '10,20p' # 列印10到20行的內容
cat /etc/passwd | sed '/^[r]/s/o/aa/g' # 把r開頭的行中的o替換為aa
# /aa/s/bb/cc/g 匹配檔案中帶有aa的行,並且將所有bb替換成cc
cat mytext.txt | sed 's/bei/&2008/' # &為在後面拼接 eg: beijing ----bei2008jing
cat mytext.txt | sed 'y/ei/ie/' #將beijing替換成biejing
sed '/200[4-6]/w new.txt' mytext.txt #把篩選結果寫入新的檔案中
awk用法:
awk 'nr%2==0 ' input.txt # 列印奇數行
awk '' input.txt test.txt #兩個檔案一起輸出
awk 'nr=fnr&&fnr==1 nr>fnr&&fnr==8 ' my,txt test.txt #將第乙個檔案的第一行資料和第二個檔案的第八行資料還有檔名輸出
cut的用法:
who | cut -b 3 # 獲取每行的第三個位元組
who | cut -b 8,3-5 # 獲取每行第八,三到五個位元組,順序按照文字的順序,所以和3-5,8等價
cat /etc/passwd | head -n 5 | cut -d : -f 1 # -d:指定分隔符 -d:指定第乙個域
cat /etc/passwd | head -n 5 | cut -d : -f 1-2 # -d:指定分隔符 -d:指定第一到第二個域
cat /etc/passwd | head -n 5 | cut -d : -f 1-2 # -d:指定分隔符 -d:開頭到第二個域
cat test.txt | cut -d ' ' -f 1 # 以空格為分隔符
split -b 400m a.txt # 拆分成400mb的檔案
cat xaa xab > a.txt # 合併檔案
md5sum b.txt # 檢查合併後的檔案是否完整
split -b 400m a.tx b_ #指定字首的拆分
split -b 400m -d a.tx b_ #-d 指定數字的拆分
split -d -10 c.txt bb_ # -10:指定每10行拆分
md5sum b.txt # 檢查合併後的檔案是否完整
sort用法:
-u:消除重複
-r:倒序
sort -r number.txt -o number.txt # 儲存到原檔案
-n: 按照數值來排序而不是ascii碼
vim用法:
%s/abc/xyz/g # 全文替換字串abc為xyz
%s/\([0-9]\-[0-9]\-[0-9]\\)/'\1'/g # 把2001-01-01 變成 '2001-01-01'
des解密:
openssl enc -des3 -d -in passwd.des3 -out passwd.txt
des加密:
openssl enc -des3 -k 123 -in mysed.txt -out passwd.des3 #123為密碼
《Linux大棚命令百篇下》網路篇的總結
c 指定數量,在windows下會自動停止,linux下會一直ping下去 q 簡短報告 s 指定每次ping的資料報大小,最大為65507kb t 指定生存時間,即路由器跳數 i 指定每次ping的間隔,預設為1秒一些單詞 mdev mean deviation 衡量網速的穩定性,越大越不穩定 i...
linux命令記錄
檔案拷貝 cp ri a b,將a資料夾下的所有檔案拷貝到b資料夾下 cp r 原始檔 目的檔案,引數r是指連同原始檔中的子目錄一起拷貝 使用者 useradd,新增使用者 passwd 使用者名稱,輸入密碼 su,切換使用者,切換到root sudo,普通使用者可以執行root才能執行的命令,環境...
linux命令記錄
1.多檔案內容的查詢替換 sed i s oldstring newstring g grep oldstring rl dir 2.tcpdump 網路抓包 tcpdump xns0 i any udp tcp port i 指定網絡卡 upd tcp 協議 port 指定埠 其他具體選型參考 m...