天天看點

shell之常用指令

一些技巧

  • ctrl+alt+f1切換至指令行模式
  • ctrl+alt+f7切換至圖形界面
  • 指令行編輯:

    光标跳轉

    ctrl+a 行首

    ctrl+e 行尾

    ctrl+d 删除

    ctrl+u 删除光标至行首的内容

    ctrl+k 删除光标至行尾的内容

    ctrl+l 清屏

  • 指令曆史使用:

    !n 執行指令曆史中第n條指令

    !-n 倒數第n條指令

    !!執行上一條指令

    !sring 執行指令曆史中最近一次比對的曆史指令

    !$ 引用上一次指令中最後一個參數

  • 指令别名

    隻在目前shell的聲明周期有效,shell關閉,失效;同一個賬号,多個終端,也無效

    alias cls=‘clear’

    alias 直接輸入,可以顯示目前所有的别名

  • 指令替換

    把指令中某個子指令替換為其執行結果

    echo "The current directory is $(pwd)"

    touch ./file-$(date +%F-%H-%M-%S).txt

    ualias

  • bash 支援的引号

    ` `:指令替換

    "":弱引用,可以實作變量替換

    '':強引用,不完成變量替換

  • 檔案名通配,globbing

    *:任意長度的任意字元

    ?:比對任意單個字元,至少有一個

    []:比對指定範圍内的任意單個字元

            [:space:] 空白字元

            [:punct:] 标點符号

            [:lower:] 小寫字母

            [:upper:] 大寫字母

            [:alpha:] 大小寫字母

            [:digit:] 數字

            [:alnum:] 數字和大小寫字母

    man 7 grep

    [^]:比對指定範圍外的任意字元

常識的東西

/etc             配置檔案
/home        使用者家目錄
/root            管理者家目錄
/lib                庫檔案,核心子產品檔案modules
                    靜态庫,動态庫
/media                            移動裝置挂載點
/mnt            挂載點目錄    臨時檔案挂載點
/opt             可選目錄,用于安裝第三方程式目錄
/proc            核心映射檔案
/sys               跟硬體裝置相關屬性映射檔案
/tmp             臨時檔案
/var               可變化的檔案
/bin               可執行檔案,使用者指令
/sbin              管理指令
/usr                全局共享的隻讀檔案
        /usr/bin
        /usr/sbin
        /usr/lib

        /usr/local/bin
        /usr/local/sbin
        /usr/local/lib      

常用指令

ls  

1.-l 長格式

- --- --- --- 
-:普通檔案
b:塊檔案
c:字元檔案
d:目錄
l:符号連結檔案
p:管道指令檔案
s:套接字檔案
檔案權限 3位一組 r(4) w(2) x(1) --- user group otherime
檔案硬連結數
檔案的屬主(owner)
檔案的屬組(group)
檔案的大小(size),機關位元組
時間戳(timestamp),這裡最近一次被修改的時間
    通路:access
    修改:modify,修改内容
    改變:change,metadata,改變中繼資料(屬性)
2.-h:機關轉換
3.-a:顯示以.開頭的隐藏檔案
4.-d:顯示目錄自身屬性
5.-i:index node,inode,顯示索引節點号
6.-r:逆序顯示檔案
7.-R:遞歸顯示
       

man

獲得指令幫助
内部指令 help ---
外部指令 command---
指令手冊 man  部指令使用man時,對應的是bash
分章節:
1.使用者指令 whatis 檢視指令在哪個章節
2.系統調用
3.庫使用者
4.特殊檔案(裝置檔案)
5.檔案格式 解釋某個指令的配置檔案
6.遊戲
7.雜項
8.管理指令(/sbin /bin)
[]可選
<>必選
....可以出現多次
()分組
man使用:
向後一屏,space
向前一屏,b
向後一行,enter
向前一行,k
查找:
/keyword 向後
多個結果的時候
n 下一個
N 上一個
?keyword 向前查找      

文本處理

cut 
    -d 指定分隔符,預設是空格
    -f 指定要顯示字段

sort 預設是按ASCII升序,自左往右
    -n 按照數值大小排序
    -r 逆序
    -t  指定分割符
    -k 以哪個字段為關鍵字進行排序
    -u 排序後,相同的行隻顯示一次
    -f 忽略字元大小寫
uniq 隻有相鄰行,字元一樣才認為是重複
    -d 報告重複行,是哪個
    -D 所有重複的行
    -c 顯示某一行重複次數

wc(word count)
    預設統計:行  單詞數  位元組數
    -c 位元組數
    -w 單詞數
    -l 行數
    -L 最長的一行包含多少字元      

tr 用于轉換或删除字元,逐個字元進行處理,并非直接處理單詞

  tr ‘a-z’‘A-B’将小寫轉換成大寫

  tr -d ‘ab’删除字元集中出現的所有字元

指令曆史

history 
    -c 清空指令曆史
    -d 删除指定行或者開始之後的行 -d 100 ,-d 100 10
    -w 儲存指令曆史到曆史檔案中      

使用者管理

useradd [options] username
    -u UID(>500 不能重複) useradd -u 1000 user1
    -g GID(基本組,必須存在) useradd -g mygroup user2
    -G GID (附加組,可以有多個)
    -c “comment”
    -d /path/to/somedirectory指定家目錄
    -s 指定shell的路徑 useradd -s /bin/bash user3
            $SHELL用于儲存目前使用者的預設shell
    -m -k 強行建立家目錄,并将/etc/skel 下的配置檔案複制過去
    -r 添加一個系統使用者,預設沒有家目錄    

id檢視使用者賬号的屬性資訊 -u -g -G -n

finger 檢索使用者資訊 finger username

userdel 預設不删除家目錄
    -r 删除使用者的同時删除家目錄
    
修改賬号屬性資訊
usermod 
    -u UID       
    -g GID
    -a -G GID額外指定附加組(沒有-a會覆寫原有的附加組)
    -c
    -d -m指定新的家目錄,并 移動檔案到新的家目錄下去
    -s 修改shell
    -l 修改登入名稱
    -e 指定過期時間
    -L lock
    -U unlock

chsh username修改使用者預設shell
chfn username 修改注釋資訊

密碼管理
passwd [username]
        --stdin    echo “redhat”| passwd --stdin user2
        -l lock
        -u unlock
        -n 最小密碼期限
        -d 删除密碼
pwck 檢查使用者賬号的完整性      

檔案查找

locate 非實時,模糊比對,查找時根據系統檔案資料庫進行
updatedb 手動生成檔案資料庫

find 實時,精确,支援衆多标準
find 超找路徑 查找标準 查找到以後的處理運作
比對标準:
    -name ‘FIlENAME’區分大小寫
    -iname 不區分大小寫
    -regex pattern 基于正規表達式進行檔案名查找
    -user USERNAME根據屬主查找
    -group GROUPNAME 根據屬組查找
    -uid UID
    -gid GID
    -nouser 查找沒有屬主檔案
    -nogroup 查找沒有屬組的檔案
    -type  【f d c b l p s】
    -size #k #M #G
    -mtime
    -ctime
    -atime
    -mmin【+|-】#
    -cmin 【+|-】#
    -amin 【+|-】#
    -perm mode
            /mode 有一位比對就行
            -mode完全比對
組合條件
    -a and
    -o or
    -not !
運作:
    -print 顯示
    -ls 類似ls -l 的形式顯示每一個檔案的詳細
    -ok command {}   find / -size +1M -exec echo {}
    -exec command {}       

轉載請注明出處:http://www.cnblogs.com/tla001/

一起學習,一起進步