CentOS基本命令學習

練習:

         顯示/etc目錄下,以非字母開頭,後面跟了一具字母及其任意長度任意字符的文件或目錄

[root@localhost~]#  mkdir -vp /etc/{1sdf,2wer,3dfg}
mkdir: created directory `/etc/1sdf'
mkdir: created directory `/etc/2wer'
mkdir: created directory `/etc/3dfg'
[root@localhost ~]#  ls -d /etc/[^a-z]*
/etc/1sdf /etc/2wer  /etc/3dfg
[root@localhost ~]# rmdir/etc/{1sdf,2wer,3dfg}
[root@localhost ~]#  ls -d /etc/[^a-z]*
ls: cannot access /etc/[^a-z]*: No suchfile or directory

 

         複製/etc目錄下,所有以.d結尾的文件或目錄至/tmp/mageedu.com目錄中。

[root@localhost ~]# mkdir /tmp/mageedu.com
[root@localhost ~]# cp -r /etc/*.d/tmp/mageedu.com/
[root@localhost ~]# ls /tmp/mageedu.com/
[root@localhost ~]# rm -rf/tmp/mageedu.com/

         tee命令的用法

tee 命令:用來將標準輸入的內容輸出到標準輸出並可以保存爲文件

參數

-a 附加到文件-i 無視中斷--help 顯示幫助信息--version 顯示版本信息
[root@localhost ~]# tee fuck
abc
abc
123
123
wosjoewqer
wosjoewqer
^C
[root@localhost ~]# cat fuck
abc
123
wosjoewqer
[root@localhost ~]# ll fuck
-rw-r--r--. 1 root root 19 Aug 23 18:23fuck

目錄管理類命令:

         mkdir, rmdir, tree, dirname, basename

 

mkdir

用法:mkdir [選項]... 目錄...
若指定目錄不存在則創建目錄。

長選項必須使用的參數對於短選項時也是必需使用的。
  -m, --mode=模式       設置權限模式(類似chmod),而不是rwxrwxrwx 減umask
  -p, --parents         需要時創建目標目錄的上層目錄,但即使這些目錄已存在也不當作錯誤處理
  -v, --verbose         每次創建新目錄都顯示信息
  -Z, --context=CTX     將每個創建的目錄的SELinux 安全環境設置爲CTX
      --help            顯示此幫助信息並退出
      --version         顯示版本信息並退出

練習:

                            如何創建目錄:x_m,x_n, y_m, y_n

[root@localhost ~]# mkdir -pv {x,y}_{m,n}
mkdir: created directory `x_m'
mkdir: created directory `x_n'
mkdir: created directory `y_m'
mkdir: created directory `y_n'
[root@localhost ~]# ls -l
drwxr-xr-x. 2 root root  4096 Aug 23 18:30 x_m
drwxr-xr-x. 2 root root  4096 Aug 23 18:30 x_n
drwxr-xr-x. 2 root root  4096 Aug 23 18:30 y_m
drwxr-xr-x. 2 root root  4096 Aug 23 18:30 y_n

 

rmdir

用法:rmdir [選項]... 目錄...
刪除指定的空目錄。

      --ignore-fail-on-non-empty
                        忽略僅由目錄非空產生的所有錯誤
  -p, --parents         刪除指定目錄及其上級文件夾,例如"rmdir -p a/b/c'"
                        與"rmdir a/b/c a/b a'" 基本相同
  -v, --verbose         輸出處理的目錄詳情
      --help            顯示此幫助信息並退出
      --version         顯示版本信息並退出

 

[root@localhost ~]# rmdir -pv {x,y}_{m,n}
rmdir: removing directory, `x_m'
rmdir: removing directory, `x_n'
rmdir: removing directory, `y_m'
rmdir: removing directory, `y_n'
[root@localhost ~]# ls -l

 

dirname

dirname 命令:顯示指定路徑處了文件名之外的路徑前綴

 

basename

用法:basename 名稱 [後綴]
  或:basename 選項
去掉前導的目錄部分後打印“名稱”。
如果指定的話,還會去掉尾隨的“後綴”。
      --help     顯示此幫助信息並退出
      --version  輸出版本信息並退出

 

 

文本文件查看命令:

        

         cat, tac, more, less, tail, head

cat

用法:cat [選項] [文件]...
將[文件]或標準輸入組合輸出到標準輸出。

  -A, --show-all           等價於 -vET
  -b, --number-nonblank    對非空輸出行編號
  -e                       等價於 -vE
  -E, --show-ends          在每行結束處顯示 $
  -n, --number             對輸出的所有行編號
  -s, --squeeze-blank      不輸出多行空行
  -t                       與 -vT 等價
  -T, --show-tabs          將跳格字符顯示爲 ^I
  -u                       (被忽略)
  -v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
      --help     顯示此幫助信息並退出
      --version  輸出版本信息並退出

如果[文件]缺省,或者[文件]爲 - ,則讀取標準輸入。

 

Tac

用法:tac [選項]... [文件]...
將每個指定文件按行倒置並寫到標準輸出。
如果不指定文件,或文件爲"-",則從標準輸入讀取數據。

長選項必須使用的參數對於短選項時也是必需使用的。
  -b, --before                  在行前而非行尾添加分隔標誌
  -r, --regex                   將分隔標誌視作正則表達式來解析
  -s, --separator=字符串        使用指定字符串代替換行作爲分隔標誌
      --help            顯示此幫助信息並退出
      --version         顯示版本信息並退出

 

    more, less

 

文件管理命令:

        

         cp, mv, rm

cp

用法:cp [選項]... [-T] 源文件 目標文件
 或:cp [選項]... 源文件... 目錄
 或:cp [選項]... -t 目錄 源文件...
將源文件複製至目標文件,或將多個源文件複製至目標目錄。


長選項必須使用的參數對於短選項時也是必需使用的。

  -a, --archive                      等於-dR --preserve=all
      --backup[=CONTROL            爲每個已存在的目標文件創建備份
  -b                          類似--backup 但不接受參數
      --copy-contents              在遞歸處理是複製特殊文件內容
  -d                          等於--no-dereference --preserve=links
  -f, --force                 如果目標文件無法打開則將其移除並重試(當 -n 選項
                                      存在時則不需再選此項)
  -i, --interactive           覆蓋前詢問(使前面的 -n 選項失效)
  -H                          跟隨源文件中的命令行符號鏈接
  -l, --link                  鏈接文件而不復制
  -L, --dereference           總是跟隨符號鏈接
  -n, --no-clobber            不要覆蓋已存在的文件(使前面的 -i 選項失效)
  -P, --no-dereference               不跟隨源文件中的符號鏈接
  -p                          等於--preserve=模式,所有權,時間戳
      --preserve[=屬性列表  保持指定的屬性(默認:模式,所有權,時間戳),如果
                                      可能保持附加屬性:環境、鏈接、xattr 等
  -c                          same as --preserve=context
      --sno-preserve=屬性列表      不保留指定的文件屬性
      --parents                    複製前在目標目錄創建來源文件路徑中的所有目錄
  -R, -r, --recursive         遞歸複製目錄及其子目錄內的所有內容
      --reflink[=WHEN]             控制克隆/CoW 副本。請查看下面的內如。
      --remove-destination  嘗試打開目標文件前先刪除已存在的目的地
                                      文件 (相對於 --force 選項)
      --sparse=WHEN         控制創建稀疏文件的方式
      --strip-trailing-slashes     刪除參數中所有源文件/目錄末端的斜槓
  -s, --symbolic-link         只創建符號鏈接而不復制文件
  -S, --suffix=後綴           自行指定備份文件的後綴
  -t,  --target-directory=目錄      將所有參數指定的源文件/目錄
                                          複製至目標目錄
  -T, --no-target-directory   將目標目錄視作普通文件
  -u, --update                copy only when the SOURCE file is newer
                                than the destination file or when the
                                destination file is missing
  -v, --verbose               explain what is being done
  -x, --one-file-system        stay on this filesystem
  -Z, --context=CONTEXT        set security context ofcopy to CONTEXT

      --help        顯示此幫助信息並退出
      --version             顯示版本信息並退出


默認情況下,源文件的稀疏性僅僅通過簡單的方法判斷,對應的目標文件目標文件也
被爲稀疏。這是因爲默認情況下使用了--sparse=auto 參數。如果明確使用
--sparse=always 參數則不論源文件是否包含足夠長的0 序列也將目標文件創文
建爲稀疏件。
使用--sparse=never 參數禁止創建稀疏文件。


當指定了--reflink[=always] 參數時執行輕量化的複製,即只在數據塊被修改的
情況下才複製。如果複製失敗或者同時指定了--reflink=auto,則返回標準複製模式。


備份文件的後綴爲"~",除非以--suffix選項或是SIMPLE_BACKUP_SUFFIX
環境變量指定。版本控制的方式可通過--backup 選項或VERSION_CONTROL環境
變量來選擇。以下是可用的變量值:


  none, off       不進行備份(即使使用了--backup 選項)
  numbered, t     備份文件加上數字進行排序
  existing, nil   若有數字的備份文件已經存在則使用數字,否則使用普通方式備份
  simple, never   永遠使用普通方式備份


有一個特別情況:如果同時指定--force 和--backup選項,而源文件和目標文件
是同一個已存在的一般文件的話,cp 會將源文件備份。

mv

用法:mv [選項]... [-T] 源文件 目標文件
 或:mv [選項]... 源文件... 目錄
 或:mv [選項]... -t 目錄 源文件...
將源文件重命名爲目標文件,或將源文件移動至指定目錄。

長選項必須使用的參數對於短選項時也是必需使用的。

     --backup[=CONTROL]       爲每個已存在的目標文件創建備份
 -b                          類似--backup 但不接受參數
  -f,--force                 覆蓋前不詢問
  -i,--interactive           覆蓋前詢問
  -n,--no-clobber            不覆蓋已存在文件
如果您指定了-i、-f、-n 中的多個,僅最後一個生效。
      --strip-trailing-slashes  去掉每個源文件參數尾部的斜線
  -S,--suffix=SUFFIX           替換常用的備份文件後綴
  -t, --target-directory=DIRECTORY      將所有參數指定的源文件或目錄
                                       移動至 指定目錄
  -T, --no-target-directory     將目標文件視作普通文件處理
  -u,--update                 只在源文件文件比目標文件新,或目標文件
                               不存在時才進行移動
  -v, --verbose         詳細顯示進行的步驟
     --help            顯示此幫助信息並退出
     --version         顯示版本信息並退出

備份文件的後綴爲"~",除非以--suffix選項或是SIMPLE_BACKUP_SUFFIX
環境變量指定。版本控制的方式可通過--backup 選項或VERSION_CONTROL環境
變量來選擇。以下是可用的變量值:

  none, off       不進行備份(即使使用了--backup 選項)
  numbered, t     備份文件加上數字進行排序
  existing, nil   若有數字的備份文件已經存在則使用數字,否則使用普通方式備份
  simple, never   永遠使用普通方式備份

rm

用法:rm [選項]... 文件...
刪除 (unlink) 文件。

  -f, --force           強制刪除。忽略不存在的文件,不提示確認
 -i                   在刪除前需要確認
 -I                   在刪除超過三個文件或者遞歸刪除前要求確認。此選項比-i 提
                       示內容更少,但同樣可以阻止大多數錯誤發生
     --interactive[=WHEN]      根據指定的WHEN 進行確認提示:never,once(-I),
                               或者always (-i)。如果此參數不加WHEN 則總是提示
     --one-file-system         遞歸刪除一個層級時,跳過所有不符合命令行參
                               數的文件系統上的文件
      --no-preserve-roo 不特殊對待"/"
      --preserve-root   不允許刪除"/"(默認)
  -r, -R, --recursive   遞歸刪除目錄及其內容
  -v, --verbose         詳細顯示進行的步驟



默認時,rm 不會刪除目錄。使用--recursive(-r 或-R)選項可刪除每個給定
的目錄,以及其下所有的內容。

要刪除第一個字符爲"-"的文件 (例如"-foo"),請使用以下方法之一:
  rm -- -foo
  rm ./-foo

請注意,如果使用rm 來刪除文件,通常仍可以將該文件恢復原狀。如果想保證
該文件的內容無法還原,請考慮使用shred。

 

 

文件處理工具:

    wc, cut, sort, uniq

wc

wc命令的功能爲統計指定文件中的字節數、單詞數、行數, 並將統計結果顯示輸出
 
參數
 

-c, --bytes打印字節數-m, --chars  打印字符數 -l, --lines  打印行數 -L, --max-line-length  打印最長行的長度-w, --words 打印單詞數
[root@localhost~]#cat/etc/passwd |ws –l  查看passwd文件有多少行
[root@localhost~]#echo“qqq www eee” |wc –w  查看輸出有多少個單詞
[root@localhost~]#echo“21312123” | wc –m  查看輸出有多少個字符


 

cut

cut - 在文件的每一行中提取片斷

在 每個文件 FILE 的 各行 中, 把 提取的 片斷 顯示在 標準輸出.

-b, --bytes=LIST
    輸出 這些 字節 
-c, --characters=LIST
    輸出 這些 字符 
-d, --delimiter=DELIM
    使用 DELIM 取代 TAB 做 字段(field) 分隔符 
-f, --fields=LIST
    輸出 這些 字段 
-n
    (忽略) 
-s, --only-delimited
    不顯示 沒有 分隔符 的 行 
--output-delimiter=STRING
    使用 STRING 作爲 輸出分隔符, 缺省 (的 輸出分隔符) 爲 輸入分隔符 
--help
    顯示 幫助信息, 然後 結束 
--version
    顯示 版本信息, 然後 結束 

使用 且 只使用 -b, -c 或 -f 中的 一個 選項. LIST 由 一個 範圍 (range) 或 逗號 隔開的 多個 範圍 組成. 範圍 是 下列 形式 之一:

N
    第 N 個 字節, 字符 或 字段, 從 1 計數 起 
N-
    從 第 N 個 字節, 字符 或 字段 直至 行尾 
N-M
    從 第 N 到 第 M (幷包括 第M) 個 字節, 字符 或 字段 
-M
    從 第 1 到 第 M (幷包括 第M) 個 字節, 字符 或 字段 

如果 沒有 指定 文件 FILE, 或 FILE 是 -, 就從 標準輸入 讀取 數據.
 

sort

 
用法:sort [選項]... [文件]...
 或:sort [選項]... --files0-from=F
串聯排序所有指定文件並將結果寫到標準輸出。

長選項必須使用的參數對於短選項時也是必需使用的。
排序選項:

  -b, --ignore-leading-blanks   忽略前導的空白區域
  -d, --dictionary-order        只考慮空白區域和字母字符
  -f, --ignore-case             忽略字母大小寫
  -g, --general-numeric-sort    按照常規數值排序
  -i, --ignore-nonprinting      只排序可打印字符
  -M, --month-sort              比較 (未知) < "一月" < ... < "十二月"
                                在LC_ALL=C 時爲(unknown) < `JAN' < ... < `DEC'
  -h, --human-numeric-sort    使用易讀性數字(例如: 2K 1G)
  -n, --numeric-sort            根據字符串數值比較
  -R, --random-sort             根據隨機hash 排序
      --random-source=文件      從指定文件中獲得隨機字節
  -r, --reverse                 逆序輸出排序結果
      --sort=WORD               按照WORD 指定的格式排序:
                                        一般數字-g,高可讀性-h,月份-M,數字-n,
                                        隨機-R,版本-V
  -V, --version-sort            在文本內進行自然版本排序

其他選項:

      --batch-size=NMERGE       一次最多合併NMERGE 個輸入;如果輸入更多
                                        則使用臨時文件
  -c, --check, --check=diagnose-first   檢查輸入是否已排序,若已有序則不進行操作
  -C, --check=quiet, --check=silent     類似-c,但不報告第一個無序行
      --compress-program=程序   使用指定程序壓縮臨時文件;使用該程序
                                        的-d 參數解壓縮文件
      --debug                   爲用於排序的行添加註釋,並將有可能有問題的
                                        用法輸出到標準錯誤輸出
      --files0-from=文件        從指定文件讀取以NUL 終止的名稱,如果該文件被
                                        指定爲"-"則從標準輸入讀文件名
  -k, --key=位置1[,位置2]       在位置1 開始一個key,在位置2 終止(默認爲行尾)
                                參看POS 語法。
  -m, --merge                   合併已排序的文件,不再進行排序
  -o, --output=文件             將結果寫入到文件而非標準輸出
  -s, --stable                  禁用last-resort 比較以穩定比較算法
  -S, --buffer-size=大小        指定主內存緩存大小
  -t, --field-separator=分隔符  使用指定的分隔符代替非空格到空格的轉換
  -T, --temporary-directory=目錄        使用指定目錄而非$TMPDIR 或/tmp 作爲
                                        臨時目錄,可用多個選項指定多個目錄
      --parallel=N              將同時運行的排序數改變爲N
  -u, --unique          配合-c,嚴格校驗排序;不配合-c,則只輸出一次排序結果
  -z, --zero-terminated 以0 字節而非新行作爲行尾標誌
      --help            顯示此幫助信息並退出
      --version         顯示版本信息並退出

POS 是F[.C][OPTS],F 代表域編號,C 是域中字母的位置,F 和C 均從1開始計數
如果沒有有效的-t 或-b 選項存在,則從前導空格後開始計數字符。OPTS 是一個或多個
由單個字母表示的順序選項,以此覆蓋此key 的全局順序設置。如果沒有指定key 則
將其整個行。

指定的大小可以使用以下單位之一:
內存使用率% 1%,b 1、K 1024 (默認),M、G、T、P、E、Z、Y 等依此類推。

如果不指定文件,或者文件爲"-",則從標準輸入讀取數據。

*** 警告 ***
本地環境變量會影響排序結果。
如果希望以字節的自然值獲得最傳統的排序結果,請設置LC_ALL=C。
[root@www ~]# cat /etc/passwd | sort                   #sort 是默認以第一個數據來排序,而且默認是以字符串形式來排序,所以由字母 a 開始升序排序。
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3       #/etc/passwd 內容是以 : 來分隔的,我想以第三欄來排序,該如何
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3n      #用數字排序,默認是以字符串來排序的
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3nr      #倒序排列,默認是升序排序
[root@www ~]# ccat /etc/passwd | sort -t':' -k 6.2,6.4 -k 1r      #對/etc/passwd,先以第六個域的第2個字符到第4個字符進行正向排序,再基於第一個域進行反向排序
[root@www ~]# cat /etc/passwd |  sort -t':' -k 7 -u      #查看/etc/passwd有多少個shell:對/etc
 

uniq

用法:uniq [選項]... [文件]
從輸入文件或者標準輸入中篩選相鄰的匹配行並寫入到輸出文件或標準輸出。

不附加任何選項時匹配行將在首次出現處被合併。

長選項必須使用的參數對於短選項時也是必需使用的。
  -c, --count           在每行前加上表示相應行目出現次數的前綴編號
  -d, --repeated        只輸出重複的行
  -D, --all-repeated[=delimit-method    顯示所有重複的行
                        delimit-method={none(default),prepend,separate}
                        以空行爲界限
  -f, --skip-fields=N   比較時跳過前N 列
  -i, --ignore-case     在比較的時候不區分大小寫
  -s, --skip-chars=N    比較時跳過前N 個字符
  -u, --unique          只顯示唯一的行
  -z, --zero-terminated 使用'\0'作爲行結束符,而不是新換行
  -w, --check-chars=N   對每行第N 個字符以後的內容不作對照

若域中爲先空字符(通常包括空格以及製表符),然後非空字符,域中字符前的空字符將被跳過。

提示:uniq 不會檢查重複的行,除非它們是相鄰的行。
如果您想先對輸入排序,使用沒有uniq 的"sort -u"。
同時,比較服從"LC_COLLATE" 變量所指定的規則。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章