linux中的shell技巧?

Tags: 技巧, 命令,

什麼是shell?

命令解析器,幫助人機互動的翻譯官!

windows的桌面也是shell的一種!

工具/原料

電腦

linux系統

方法/步驟

Linux的shell有哪些?

/etc/shells 記錄該Linux安裝了哪些shell。

B類 sh bash

C類 tcsh

shell不同,命令提示符不同

幾乎所有linux預設都是bash (Bourne-again Shell) ,非常適合於一些管理操作

一些比較老的unix,預設都是sh

命令補全

使用Tab鍵

命令補全、檔名補全

如果不是唯一的,按兩下Tab,全列出來

快捷操作

CTRL+C 終止命令

CTRL+A 游標到行首

CTRL+E 游標到行尾

CTRL+U 剪下游標前命令

CTRL+K 剪下游標後內容

CTRL+Y 貼上剪下的內容

CTRL+L 清理螢幕

CTRL+D 登出登陸相當於exit和logout

命令歷史

history 列出所有的命令(預設最多儲存條數1000)

!序號 執行歷史中第幾個命令

!命令 執行最近的這條命令

按向上(或向下)箭頭,翻出歷史記錄

命令別名

什麼是別名?(類似快捷命令)

命令:alias (顯示當前可用別名命令)

ls為什麼可以顯示顏色?因為是ls --color=tty的別名

可以看到 ll 是ls -l --color=tty的別名

新增一個別名(臨時):

alias copy=cp 就可以用copy來複制檔案了

如果有引數:

alias drm="rm -rf"

刪除別名:

unalias copy

別名永久生效:在使用者宿主目錄 ~/.bashrc 檔案中新增別名資訊如:alias vi=vim。

重啟生效或者source ~/.bashrc及時生效

輸入輸出重定向

Shell對於每個程序預先定義了3個檔案描述字

0 標準輸入 STDIN 鍵盤

1 標準輸出 STDOUT 顯示器

2 標準錯誤輸出 STDERR

重定向,就是改變這個標準裝置,不用鍵盤輸入,不用顯示器輸出

輸出重定向

> 或 >>

例:echo hello 直接顯示到顯示器

echo hello >test.txt 將輸出重定向到test.txt

ls -l /tmp >files.txt 將輸出重定向到files.txt

more files.txt 檢視檔案內容

把/website下大於100M的檔案列表

find /website -size +204800 >/backup/100M+.file.list

追加,用 >>

輸入重定向 (不從鍵盤輸入內容了)

例:wall < /test/msg 從一個檔案讀取內容發廣播

這樣,就可以用計劃任務,把一年的節日祝福語寫上,到時自動傳送

錯誤輸出重定向

2> 或 2>> #描述字和符號間不許有空格

例:自動備份 通常用計劃任務在凌晨自動執行

cp -R /usr /backup/use 2>>/bak.error

將錯誤資訊,定向到一個檔案中

管道連線符

將一個命令的輸出,傳送給另一個命令,作為另一個命令的輸入,可以連線多個命令

用法:

命令1 命令2 命令3...

例:

ls -l /etc more 檔案太多,一次看不完,用more來檢視 下一頁:空格或f 下一行:回車 退出:q 或Q

ls -l /etc grep init 只顯示init相關的行

ls -l /etc grep init wc -l 檢視init相關的有多少行,也就是包含init的檔案有多少個

who grep root 只顯示root的登入資訊

wc -l 統計檔案有多少行

who grep root wc -l 檢視root 使用者登入了幾次

命令連線符

; 不管執行是否成功,多個命令依次執行

例: pwd ; ls ; date

&& 前面執行成功,才執行後面的命令,如果第一個失敗,則不執行第二個

write user1 < /home/jack/love.txt && rm /home/jack/love.txt 情書發成功,就刪除

ls && pwd 第一個成功後,將執行pwd命令

前面執行失敗,才執行後面的命令

write mary < /home/jack/love.txt mail mary< /home/jack/love.txt 情書發失敗,則發郵件

`` 命令替換符

將一個命令的輸出作為另一個命令的引數

命令1 `命令2`,命令1的引數,是命令2的執行結果

ls -l `which touch` 找到touch命令的路徑,然後用ls檢視屬性

看起來有點類似管道,不過順序相反,會先執行後面的

相關問題答案

Have any Question?

Let us answer it!