來源: http://www.cnblogs.com/hackerer/p/5100208.html null ...
1 Linux命令總結 2 3 man ==命令幫助; 4 help ==命令的幫助(bash的內置命令); 5 ls ==list,查看目錄列表; 6 -ld:查看目錄許可權; 7 -l:(long)長格式顯示屬性; 8 -F:給不同的文件類型結尾加標識 9 -p:給目錄加斜線 10 -r:(reverse)反轉排序 11 -t:按時間排序 12 --color=auto 給輸出的不同類型文件加不同顏色 13 -a:顯示隱藏文件 14 ls -l --time-style=long-iso,顯示友好的長格式時間 15 例子: 16 [root@server oldboy]# ls -l --time-style=long-iso
17 總用量 4 18 drwxr-xr-x 2 root root 4096 2015-12-18 20:25 oldboydir 19 lrwxrwxrwx 1 root root 9 2015-12-18 21:03 oldboydir_soft_link -> oldboydir 20 21 mkdir ==創建目錄 22 -p:遞歸創建目錄 23 vim ==相當於複雜的文檔編輯器 24 =====================================================================================================================================================================================================
2016-12-22添加
date修改時間命令:
date -s "2016/12/22 14:33" //修改時間後接著敲hwclock告訴bios立即生效
hwclock
25 echo "i am studying linux" >/>> oldboy.txt //後面跟一個大於號表示覆蓋,兩個大於號表示追加; 26 echo ==列印輸出內容,配合“>”或“<<”可以為文件覆蓋及追加內容; 27 -n:不換行輸出 28 -e:解析轉義字元,\t tab \n回車 \b退格 29 30 echo“ 31 boy 32 girl 33 ” >oldboy.txt 34 實例如下:(2015/12/22) 35 [test@server ~]$ echo "oldboy";echo "oldboy" 36 oldboy 37 oldboy 38 [test@server ~]$ 39 40 [test@server ~]$ echo -n "oldboy";echo "oldboy" //不換行輸出 41 oldboyoldboy 42 [test@server ~]$ 43 44 [test@server ~]$ echo -e "oldboy\toldgirl" 45 oldboy oldgirl 46 [test@server ~]$ 47 48 [test@server ~]$ echo -e "oldboy\noldgirl" 49 oldboy 50 oldgirl 51 [test@server ~]$ 52 ==================================================================== 53 cat ==查看文件內容; 54 -n:顯示行號 55 特殊用法:增加多行內容 56 [root@server data]# cat >/data/oldboy.txt<<EOF 57 I am studying linux. 58 EOF 59 cp ==copy 相當於拷貝命令;例如:cp old.txt /tmp/ 60 cp -a/-r /etc/ /tmp 拷貝目錄/etc/到/tmp 61 -a:相當於-pdr 62 -r:遞歸,用於複製目錄; 63 -p:保持屬性; 64 cp='cp -i' -i:表示提示確認信息參數 65 例:從當前目錄文件到另外目錄時,如果拷貝文件名相同,可使用/bin/、"\"取消是否覆蓋信息; 66 [root@server /]# cp /mnt/test.txt /tmp 67 cp: overwrite `/tmp/test.txt'? 68 [root@server /]# /bin/cp /mnt/test.txt /tmp //前面加/bin/可以取消是否覆蓋的提示信息; 69 [root@server /]# \cp /mnt/test.txt /tmp/ //前面加"/"可以取消是否覆蓋的提示信息; 70 mv ==移動目錄或文件,例如:mv /data /root 71 pwd ==查看當前用戶所在目錄; 72 73 rm ==remove 刪除文件或者目錄 -f強制,-r刪除目錄; 74 生產場景儘量不要使用rm,如果非要用,一定要先cp等備份。 75 76 替代方法: 77 mv移動到一個臨時目錄,相當於回收站; 78 find刪除 79 find *****刪除 80 find /root/data -type f -exec rm -f {} \; // -exec表示查找 81 find /root/data -type f|xargs rm -f 82 find 查找-type !表示取反的意思; 83 !:取反 84 -a:表示and 85 -o:(or)表示或者 86 -maxdepth +數字:表示查找的深度 87 -mtime:表示修改時間 88 例: 89 find /oldboy -maxdepth 1 -type d ! -name "oldboy" (其中-maxdepth跟tree -L 1可以這樣理解) 90 91 例:在-type f前面加"!",表示執行命令時不查找以文件為結尾的文件; 92 [root@server ~]# find /root/data/ ! -type f -name "*.txt"|xargs ls -ld 93 94 使用find刪除例子1: 95 [root@server data]# find /root/data/ -type f 96 /root/data/zhurui.txt 97 /root/data/zhurui2.txt 98 /root/data/zhurui1.txt 99 [root@server data]# find /root/data/ -type f -exec rm -f {} \; 100 [root@server data]# ls 101 [root@server data]# 102 103 使用find刪除例子2: 104 [root@server data]# touch zhurui.txt zhurui1.txt zhurui2.txt 105 [root@server data]# ls 106 zhurui1.txt zhurui2.txt zhurui.txt 107 [root@server data]# find /root/data/ -type f 108 /root/data/zhurui.txt 109 /root/data/zhurui2.txt 110 /root/data/zhurui1.txt 111 [root@server data]# find /root/data/ -type f|xargs rm -f 112 [root@server data]# ls 113 [root@server data]# 114 115 116 find刪除保留一個特定文件,其餘都刪掉; 117 [root@server data]# touch zhurui.txt zhurui1.txt zhurui2.txt zhurui3.txt zhurui4.txt 118 [root@server data]# ls 119 zhurui1.txt zhurui2.txt zhurui3.txt zhurui4.txt zhurui.txt 120 [root@server data]# find /root/data/ -name "zhurui4.txt" 121 /root/data/zhurui4.txt 122 [root@server data]# find /root/data/ -type f -name "zhurui4.txt" 123 /root/data/zhurui4.txt 124 [root@server data]# find /root/data/ -type f ! -name "zhurui4.txt"|xargs rm -f 125 [root@server data]# ls 126 zhurui4.txt 127 [root@server data]# 128 129 head ==頭部,取文件的前N行,預設前10行,取前三行 -n 3 130 簡寫就是-3 131 例: 132 [root@server data]# head -n 2 test.txt 133 test 134 liyao 135 tail ==尾巴,取文件的最後N行,預設最後10行,取最後三行 -n 3 136 簡寫就是-3 137 138 -f:跟蹤結尾 139 例: 140 tail -f /var/log/messages //跟蹤一個文件結尾的變化 141 142 舉例:列印20-30的數字 143 [root@server ~]# seq 100 >test1.txt //將1-100數字在test1.txt文件中列舉出來 144 [root@server ~]# head -30 test1.txt //取文件的前30行 145 [root@server ~]# head -30 test1.txt | tail -11 //首先取列舉出的數字前30行,接著取最後11行; 146 20 147 21 148 22 149 23 150 24 151 25 152 26 153 27 154 28 155 29 156 30 157 158 第二種方法: 159 [root@server ~]# sed -n '20,30p' test.txt 160 20 161 21 162 22 163 23 164 24 165 25 166 26 167 27 168 28 169 29 170 30 171 172 (1)awk 一門語言,過濾內容(取列) 173 awk '{print $1}' 文件 //$1表示第一列,$2表示第二列....$NF(表示最後一列) 174 awk -F "分隔符號" '{print $1}' 文件 //$1表示第一列,$2表示第二列 175 $1表示第一列,$2表示第二列....$NF(表示最後一列)..$(NF-1)表示倒數第二列 176 $0表示整行 177 -F:awk多分隔符 178 深入淺出三劍客之awk必殺技一例:http://oldboy.blog.51cto.com/2561410/950730 179 深入淺出linux三劍客之sed必殺技一例:http://oldboy.blog.51cto.com/2561410/949365 180 181 linux三劍客 老大 182 例: 183 [root@server test]# awk -F ":" '{print $1}' /etc/passwd 184 [root@server test]# awk -F ":" '{print $2}' /etc/passwd 185 [root@server test]# awk -F ":" '{print $1"="$2"="$3}' /etc/passwd 186 [root@server test]# awk -F ":" '{print $(NF-1)}' /etc/passwd //表示篩選倒數第二列 187 188 [root@server test]# awk '{if(NR<31 && NR>19) printf $1"\n"}' /root/test1.txt //"\n"表示回車 NR:代表行號 &&:代表and 189 20 190 21 191 22 192 23 193 24 194 25 195 26 196 27 197 28 198 29 199 30 200 201 [root@server test]# awk '{if(NR>19 && NR<31) printf $1"\n"}' /root/test1.txt 202 20 203 21 204 22 205 23 206 24 207 25 208 26 209 27 210 28 211 29 212 30 213
214 例: 215 [root@server ~]# echo "I am oldboy,myqq is 24731701">> oldboy.txt
216 [root@server ~]# cat oldboy.txt
217 I am oldboy,myqq is 24731701 218 [root@server ~]# awk -F "[, ]" '{print $3" "$6}' oldboy.txt //光取第3跟第6列
219 oldboy 24731701 220
221 實例取IP地址:(2015/12/22號添加) 222 [root@server test]# ifconfig eth0|awk -F '[: ]+' 'NR==2 {print $4 }' //[方框中的內容為目標前後分隔符]
223 192.168.1.11 224 [root@server test]# 225 ============================================================================================================== 226
227
228
229 (2)grep ***** ==擅長過濾,過濾器,把想要的或者不想要的分離開。儘量使用雙引號(""); 230 -v:表示排除 231 -o:只匹配你想要的結果,必備參數 232 -i:表示不區分大小寫; 233 -E:<====> grep -E=egrep 234 -n:列印行號 235 --color=auto 給匹配到的字元串加顏色(不是正行) 236 -a: 在二進位文件中,以文本文件的方式搜索數據; 237 -c: 計算找到‘搜索字元串’的次數 238 提示:-i -v為常用參數 239 -A: After的意思,顯示匹配字元串及其後n行的數據 240 -B: before的意思,顯示匹配字元串及其前n行的數據 241 -C: 顯示匹配字元串及其前後各num行 242 例1: 243 [root@server zhu]# grep 3306 /etc/services
244 mysql 3306/tcp # MySQL
245 mysql 3306/udp # MySQL
246 [root@server zhu]# grep --color=auto 3306 /etc/services
247 mysql 3306/tcp # MySQL
248 mysql 3306/udp # MySQL
249 linux三劍客 老三 250
251
252 參數介紹: 253 -B:除了顯示匹配的一行之外,並顯示改行之前的num行 254 例: 255 [root@server ~]# grep 30 -B 10 test.txt
256 20 257 21 258 22 259 23 260 24 261 25 262 26 263 27 264 28 265 29 266 30 267 -A:除了顯示匹配的一行之外,並顯示該行之後的num行 268 例2: 269 [root@server ~]# grep 20 -A 10 test.txt
270 20 271 21 272 22 273 23 274 24 275 25 276 26 277 27 278 28 279 29 280 30 281
282 -C:除了顯示匹配的一行之外,並顯示改行之前後各num行 283 例: 284 [root@server ~]# grep 25 -C 5 test.txt
285 20 286 21 287 22 288 23 289 24 290 25 291 26 292 27 293 28 294 29 295 30 296 grep "string" -B 10 297
298 例:文件如下,過濾文件中的空行 299 [root@server ~]# cat oldboy.txt 300 oldboy 301 302 oldooboy 303 304 oldboooytxt 305 方法1: 306 [root@server ~]# grep -v "^$" oldboy.txt //這種方法最佳
307 oldboy 308 oldooboy 309 oldboooytxt 310 [root@server ~]#
311
312 方法2: 313 [root@server ~]# grep "." oldboy.txt
314 oldboy 315 oldooboy 316 oldboooytxt 317 [root@server ~]# 318 方法3: 319 [root@server ~]# sed '/^$/d' oldboy.txt
320 oldboy 321 oldooboy 322 oldboooytxt 323 [root@server ~]# 324 方法4: 325 [root@server ~]# awk '/^[^$]/' oldboy.txt
326 oldboy 327 oldooboy 328 oldboooytxt 329 [root@server ~]#
330 ================================================================================================================== 331
332
333 (3)sed *****(strem editor) ==擅長取行、查找替換 334 sed -n 335 過濾:sed -n '/過濾的內容/處理的命令