極大提高工作效率的 Linux 命令
共 6336字,需瀏覽 13分鐘
·
2024-06-16 08:10
原文鏈接:https://www.linuxmi.com/linux-commands-for-improving-work-efficiency.html
自定義bash提示符
linuxmi@linuxmi:~/www.linuxmi.com$ export PS1="[\u@\W]\$"
# 查找文件:find ~ -type f -name data-model.ts# 查找文件夾:find ~ -type d -name angular15
#查找所有.html文件并計(jì)算每個(gè)文件的行數(shù):find src/app/ -name "*.html" -exec wc -l {} \;
find src/app/ -name "*.html" -exec wc -l {} +
更改文件和文件夾的權(quán)限
# 與其他人共享文件夾,以便他們可以檢查文件夾中的內(nèi)容:chmod 755 <path-to-your-folder># 與其他人共享不可執(zhí)行文件:chmod 644 <path-to-your-file># 與其他人共享可執(zhí)行文件:chmod 755 <path-to-your-file># 使文件只讀:chmod 400 <path-to-your-file># 使文件可執(zhí)行:chmod +x <path-to-your-file>
自定義 rm 命令將文件移動(dòng)到回收站
alias rm='gio trash'
使用別名可以簡(jiǎn)化輸入
# 為長(zhǎng)命令設(shè)置別名:alias dc="docker compose"alias prettier="npx prettier -w"alias eslint="npx eslint --fix"alias pre="pre-commit run --files"# 將一些命令鏈接在一起:alias update-container="docker-compose pull <service-name> && docker-compose stop <service-name> && yes | docker-compose rm <service-name> && docker-compose up -d <service-name>"
使用awk從輸入中提取數(shù)據(jù)
awk是Linux中非常強(qiáng)大的工具。你甚至可以使用awk編寫(xiě)腳本,盡管可讀性和維護(hù)性是另外一個(gè)問(wèn)題。作為軟件開(kāi)發(fā)人員,我們通常使用awk從輸入文件或前一個(gè)命令的輸出中獲取所需的字段。
ping google.com -c 2 | grep -iE 'time=.*ms' | awk 'BEGIN {FS="="} {print $NF}'
-
我們使用-iE來(lái)為grep指定一個(gè)正則表達(dá)式,因此只有與模式匹配的消息將進(jìn)一步處理。 -
對(duì)于awk來(lái)說(shuō),BEGIN指定在處理文本之前要執(zhí)行的命令。在這里,我們指定字段分隔符(FS)應(yīng)為等號(hào)。此外,NF表示字段的數(shù)量,$NF將返回最后一個(gè)字段。如果你想進(jìn)一步學(xué)習(xí)awk,這是一個(gè)很好的參考。
ping google.com -c 2 | grep -iE 'time=.*ms' | awk -F"=" '{print $NF}'ping google.com -c 2 | awk -F"=" '/time=.*ms/ {print $NF}'
-
可以直接使用 -F 選項(xiàng)指定字段分隔符。 -
可以在 awk 中使用正則表達(dá)式模式,在花括號(hào)之前指定。
使用 xargs 鏈接命令
# 檢查當(dāng)前文件夾中每個(gè)文件的大?。?/span>ls | xargs -I % du -sh %# 查找一些文件并將其復(fù)制到新位置:find ~/Downloads/ -name "*.jpeg" | xargs -I {} cp {} ~/Pictures/# 將所有文件夾和子文件夾的權(quán)限更改為755:find . -type d | xargs -I {} chmod 755 {}# 將當(dāng)前文件夾和子文件夾中所有文件的權(quán)限更改為644:find . -type f | xargs -I {} chmod 644 {}
為腳本傳遞變量
# linuxmi.shecho mysql -u ${USERNAME} -p${PASSWORD}# 在命令行上:USERNAME=johndoe PASSWORD=12345 bash some_script.sh
# variables.envUSERNAME=johndoePASSWORD=12345# 在命令行上:env $(grep -v '^#' variables.env | xargs) bash some_script.sh
重定向STDOUT和STDERR
# 讓我們假設(shè)existing.txt存在,而nonexisting.txt不存在。# 將STDOUT重定向到文件。這是最常見(jiàn)的用例。ls -al existing.txt 1>out.log# STDOUT的文件描述符是可選的。ls -al existing.txt >out.log# 將STDOUT重定向到一個(gè)文件,將STDOUT重定向到另一個(gè)文件。ls -al existing.txt non-existing.txt 1>out.log 2>error.log# 將STDOUT和STDERR都指向同一個(gè)文件:ls -al existing.txt non-existing.txt 1>combined.log 2>&1# 它可以簡(jiǎn)化為:ls -al existing.txt non-existing.txt &>combined.log# 忽略命令的輸出和錯(cuò)誤:ls -al existing.txt non-existing.txt 1>/dev/null 2>&1ls -al existing.txt non-existing.txt &>/dev/null
命令行模糊查找器
# Linux:git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf~/.fzf/install # 您可以接受所有默認(rèn)設(shè)置.# MacOS:brew install fzf$(brew --prefix)/opt/fzf/install
評(píng)論
圖片
表情
