參考《linux命令行大全》linux
cd - 切換爲以前目錄正則表達式
wc -l -w fileshell
cmd --helpexpress
apropos keywordbootstrap
apropos cpu >vim
type foo 檢查命令類型,是否已被佔用windows
alias foo='cd;ll;cd -'bash
foo網絡
ll /etc/passwd > pw.txt (輸出重定向時,>自動建立不存在的文件)app
> file (刪除一個文件)
cmd >> file 文件尾部追加,不存在則建立之
0--標準輸入文件
1--標準輸出文件
2--標準錯誤文件
cmd 2> err.txt
cmd &> outerr.txt
cmd 2> /dev/null
cat f1 f2 > f3 文件合併
$ cat (等待鍵盤輸入)
$ cat -ns file 刪除空行,且對行編號
ctrl-D (文件觸底,end of file)
cmd | tee file | grep pattern
echo a{A{1..2},B{3..4}}
aA1 aA2 aB3 aB4
mkdir {2015..2016}-0{1..9}
2015-01
2015-02
2015-03
ctrl-A 光標到行首
ctrl-E 光標到行尾
CTRL-F 前移一個字符
CTRL-B 後移一個字符
ALT-F 前移一個字
ALT-B 後移一個字
ctrl-D 刪除字符
ctrl-T 前字符替換
Alt-U 大寫轉換
ctrl-K 剪切光標到行尾
ctrl-U 剪切光標到行首
ALT-D 剪切光標到詞尾
ALT-Backspace 剪切光標到詞首
ctrl-Y 複製kill-ring緩衝區到光標
Tab命令自動補齊
ls l(Tab)---ls log
!88 --執行history中第88行命令
!! 執行history最後一行命令
id
cat /etc/passwd
cat /etc/group
$ su -c 'command'
sudo與su區別:
執行有限條指令;
sudo無需輸入root密碼,只輸用戶密碼;
不啓動新shell環境,不加載另外一個用戶環境
ps 只顯示當前會話終端進程
ps x 顯示全部進程
ps aux
gedit & 後臺運行進程,ctrl-c沒法中斷
jobs 查看終端全部做業
fg %jobid 進程回到前臺運行
bg %jobid 進程回到後臺
ctrl-z 暫停前臺進程
kill [-signal] PID…
kill -SIGHUB/1 PID/%jobid 前臺程序終止,後臺進程從新初始化
kill -INT PID/%jobid 中斷信號,終止程序
killall [-u user] [-signal] name…
pstree 進程樹
vmstat 5 每5s輸出資源使用快照,mem,swap,IO
free -m
du
tail -f /var/log/messages 實時檢測系統的好方法
mount
umount
set 顯示環境變量/shell變量
printenv USER 僅顯示環境變量USER
echo $USER
PATH=$PATH:$HOME/bin
export PATH 保證shell子進程能使用PATH變量
gedit file
ls -l $(which cp)
ls -l `which cp` 反引號` 等同於 $,做爲命令替換
ls -l "my test.txt" 雙引號""將特殊字符($ / `除外)視爲普通字符
echo "$(cal) "
echo '$(cal)' 單引號‘’抑制全部擴展
$(cal)
echo "money \$:5" 反斜槓阻止雙引號內特殊字符($ ! & 空格等)擴展
shift ^ 本行開頭
shift $ 本行末尾
W 下一個單詞處
B 上一個單詞處
number-shift-G 移到第number行
shift G 至文件最後一行
:%s/word1/word2/gc 全局替換,%指代^~$
:n 切換到下一文件
:N 切換到上一文件
rpm -qa package 列出全部安裝軟件 q-query a-all
rpm -q packname 查詢pack是否安裝
wget src
tar zxvf src.tar.gz
./configure
make
#make install
ping baidu.com
netstat -ie 顯示網卡信息
locate fname 以文件名查找,沒法查最新
find ~ [-print] | wc -l 計算行數
find ~ -type f -name 「*.jpg」 -size +1M | wc -l
find ~ \(-type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \) and默認,or顯式
find ~ -type f -name 「*.jpg」 -print/delete/ls
find ~ -type f -name 「*.jpg」 -exec ls -l '{}' ';' 每搜到一個執行一次命令
find ~ -type f -name 「*.jpg」 -exec ls -l '{}' '+' 結果集只執行一次命令
find ~ -type f -name 「*.jpg」 -ok ls -l '{}' ';' {}表明當前路徑,-ok交互式執行自定義操做
find ~ -type f -name 「*.jpg」 -print | xargs ls -l xargs處理stdin信息並轉化爲命令輸入參數表
find ~ -type f -name 「*.jpg」 -print0 | xargs --null ls -l 以空字符分隔參數
gzip fname
gzip -tv f.gz 檢查完整性/顯示詳細信息
gunzip fname
zcat f.gz | less 查看壓縮文件內容
bzip2同gzip 高壓縮低速度
linux中gzip>bzip2>zip(用於與windows交換文件)
tar
tar mode[options] pathname… 以 相對路徑 處理處理 文件名路徑
mode:
c create
x extract
r apppend
t list the contents of an archive
tar cf file.tar path
tar tf file.tar
tar tvf file.tar
tar zxvf file.tar
find ~ -name 'file-a' | -exec tar rf file.tar '{}' '+'
find ~ -name 'file-A' | tar czf play.tgz -T -
#cat file.list
./.profile
./.bashrc
./dbootstrap_settings
./usr.include.txt
./.viminfo
支持命令find locate vim less
grep [options] regex file… #查找匹配行
-i 忽略大小寫
-v 輸出不匹配行
-h不輸出文件名,只輸出匹配內容
BRE基本正則表達式元字符:( )^ $ . * (\爲元字符)
ERE擴展正則表達式元字符: +-*\ ()[]{} ^$ .| ? (' '括起避免擴展,\爲文字字符)
# grep -h '^zip' file
zip1
zip2
#grep -h 'zip$' file
1zip
2zip
# grep -h '^zip$' file
zip
grep -Eh '^(bz|gz|zip)' file
匹配電話號碼(nnn)nnn-nnnn或nnn nnn-nnnn表達式:
grep -E ===> egrep 擴展REG
egrep '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$' phone.txt #(,)出現0或1次
find ~ -regex '.[^-_./0-9a-zA-Z].*' find之test選項支持regex
locate --regex 'bin(bz|gz|zip)'
zgrep -El 'regex | regular expression' . zgrep對壓縮文件進行搜索
排序
sort -t ';' -k 3.7nbr -k 4.1nbr file | uniq | head
t爲指定分割符;
-k 3.7nbr 第3個字段第7字符爲關鍵字,忽略開頭空白(b),逆序(r),數字排序(n)
uniq只對已排序文件有效
^I – 製表符Tab
截斷
cat -A
cut -d ':' -f 1 /etc/passwd | head
paste data.txt version.txt
比較
cat f1 f2 逐行比較已排序文件f1,f2
diff -c f1 f2 上下文格式輸出,+多,-少
diff -u f1 f2
diff -Naur fold fnew > diff_file
patch < diff_file
-N, --new-file:treat absent files as empty
-a: treat all files as text
-r : recursively compare any subdirectories found
替換刪除tr
echo 「i love linux」 | tr a-z A-Z 替換
tr -d '\r' < dos_file > unix_file 刪除dos文件回車符\r
sed 's/old/new/g
sed -n '1,5p' file
nl text 對文本行編號