命令列表:
sleep seconds
date +%s 返回10位時間戳
cat/vim/more file
head/tail -n 10 file
wc [-L行/c字符/w單詞] file 統(tǒng)計文件行數(shù)/字符數(shù)/單次數(shù)
sudo ln -s 源文件 目標文件
ln -s 類似Windows下的超級鏈接。
舉例:
當前目錄是/local,而我經(jīng)常要訪問/usr/local/linux/work
那么我就可以使用在local下建立一個文件linkwork,
`sudo ln -s /usr/local/linux/work /local/linkwork`
刪除鏈接
`rm -rf symbolic_name` 注意不是
`rm -rf symbolic_name/`
那么上面我就是
`rm -rf /local/linkwork`
- grep [-option] pattern file 如:grep '^我是10$’ grep.txt
-o 只顯示匹配的,輸出一行一個
-v 反轉(zhuǎn)-o
-n 顯示行號
-R/-r 遞歸
-e 正則
-A/B/C 查看指定內(nèi)容上下幾行
如何在 Linux 中找到最大的 10 個文件呢?
find /home/homework/ -type f -print0 | xargs -0 du -h | sort -rh | head -n 10切換到當前目錄:
du -h |grep -P "\d+G"
du -h |grep -P "\d+M"
- find <指定目錄> <指定條件> <指定動作>
> find <指定目錄> <指定條件> <指定動作>
<指定目錄>: 所要搜索的目錄及其所有子目錄。默認為當前目錄。
<指定條件>: 所要搜索的文件的特征。
<指定動作>: 對搜索結(jié)果進行特定的處理。
如果什么參數(shù)也不加,find默認搜索當前目錄及其子目錄,并且不過濾任何結(jié)果(也就是返回所有文件),將它們?nèi)硷@示在屏幕上。
[find -print0和xargs -0原理及用法(https://www.cnblogs.com/liuyihua1992/p/9689314.html)
find -print0 表示在find的每一個結(jié)果之后加一個NULL字符,而不是默認加一個換行符。find的默認在每一個結(jié)果后加一個'\n',所以輸出結(jié)果是一行一行的。當使用了-print0之后,就變成一行了.
xargs -0表示xargs用NULL來作為分隔符
- locate file ; updatedb
locate 命令其實是“find -name”的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫(/var/lib/locatedb),這個數(shù)據(jù)庫中含有本地所有文件信息。
Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。
為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數(shù)據(jù)庫。
- sed ’s/pattern/replace/‘ file 替換 ( -i 可以將替換應(yīng)用于原 文件)
- command | xargs (xargs 默認是以空白字符 (空格, TAB, 換行符) 來分割記錄的)
-n 3 每行 3 個參數(shù)
-d X 自定義分界符
ls /home/xxx/ | tail | awk '{print $8}' | xargs -n 1 -I {} bash -c "echo {};hadoop fs -cat {}
xargs -n 1 -I {} -P 30
-n 每行輸出的數(shù)量
-i/-I 參數(shù)配合{}即可進行文件的操作。
加-i 參數(shù)直接用 {}就能代替管道之前的標準輸出的內(nèi)容;
加 -I 參數(shù) 需要事先指定替換字符
command| xargs -i echo {} == command| xargs -I {} echo {}
-P 30 開30個線程
bash -c String 從輸入流執(zhí)行shell
- ps
- kill pid
- pkill pname -9強制
- cron
- ssh user@host -p 端口(默認22)
- lftp username@ftphost (端口21)
- scp source destination 其中source和destination都可以是 user@host:path -r 遞歸復(fù)制
如:scp -r ./dist/* www@182.92.232.41:/home/wwwroot/p.[51tiancai.com/public/](http://51tiancai.com/public/)
- ssh-keygen -t rsa -C "youremail@example.com"
- open -a Google\ Chrome --args --disable-web-security
- 壓縮命令:tar -zcvf 壓縮文件名.tar.gz 被壓縮文件名
- 解壓縮命令:tar -zxvf 壓縮文件名.tar.gz
場景應(yīng)用
- 批量殺死所有存活的隊列進程
pids=`ps -ef|grep app:queue|grep "\-\-process="|grep -v touch|grep -v grep |awk '{print $2}'`
if [ ! -z "$pids" ]
then
echo $pids|xargs kill
echo "kill $pids success"
else
echo 'process not found'
fi

cat test.log |awk '{print $3}' | sort | uniq -c
1、刪除以html結(jié)尾的10天前的文件,包括帶空格的文件:
find /usr/local/backups -name "*.html" -mtime +10 -print0 |xargs -0 rm -rfv
xargs -i 參數(shù)或者-I參數(shù)配合{}即可進行文件的操作。
加-i 參數(shù)直接用 {}就能代替管道之前的標準輸出的內(nèi)容;
加 -I 參數(shù) 需要事先指定替換字符
1.1復(fù)制以html結(jié)尾的10天前的文件,包括帶空格的文件到/dir/目錄下
find /usr/local/backups -name "*.html" -mtime +10 -print0 |xargs -0 cp {} /dir
2、統(tǒng)計所有c文件的行數(shù)
find source_code_dir_path -type f -name "*.c" -print0 | xargs -0 wc -l