N21-北京-兔鍋-馬哥教育網絡班21期+第二周課程練習

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

A.wc命令:

功能:統計指定文件中的字節數、字數、行數,并將統計結果顯示輸出

語法:wc [選項]文件…

參數:

-c:統計字節數。

-l:統計行數。

-m:統計字符數。這個標志不能與 -c 標志一起使用。

-w:統計字數。一個字被定義為由空白、跳格或換行字符分隔的字符串。

-L:打印最長行的長度。

案例:

[root@wangtao tmp]# wc /etc/fstab 

15 78 805 /etc/fstab

[root@wangtao tmp]# wc -c /etc/fstab 

805 /etc/fstab

[root@wangtao tmp]# wc -m /etc/fstab 

805 /etc/fstab

[root@wangtao tmp]# wc -w /etc/fstab 

78 /etc/fstab

——————————————————————————————————————-

B.cut命令:

功能:以某種方式按照文件的行進行分割

語法:cut [option] files

參數:

-b:按字節選取 忽略多字節字符邊界,除非也指定了 -n 標志

-c:按字符選取 

-d:自定義分隔符,默認為制表符;-f 與-d一起使用,指定顯示哪個區域

案例:

cat /etc/passwd | cut -b1-3 #取每行的第1-3字字節

cat /etc/passwd | cut -b1-3,5-7,8 #取每行的第1-3,5-7,8的字節(后面的數字會先進行從小到大的排列) 需要事先知道具體字節,很容易出錯。

cat /etc/passwd | cut -c1,3 #按字符選取,適用于中文

cat /etc/passwd | cut -d : -f 3 #以:分割,取第三段cat /etc/passwd | cut -d '' #以空格進行分割,且是一個空格。

————————————————————————

C.sort命令:

功能:將文本文件內容加以排序

語法:sort
[OPTION]… [FILE]…

參數:

-r:降序

-f:忽略字符大小寫

-t:指明分隔符

-k:以指定字段為標準排序

-n:以數值大小排序

-u:相同的內容,只取一次

案例:

[root@wangtao tmp]# cat wangtao.txt

1

2

3

4

5

6

[root@wangtao tmp]# sort -r wangtao.txt

6

5

4

3

2

1

[root@wangtao tmp]# sort wangtao.txt

1

10

11

19

2

5

[root@wangtao tmp]# sort -n wangtao.txt

1

2

5

10

11

19

[root@wangtao tmp]# cat wangtao.txt

banana:30:5.5

apple:10:2.5

pear:90:2.3

orange:20:3.4

這個文件有三列,列與列之間用冒號隔開了,第一列表示水果類型,第二列表示水果數量,第三列表示水果價格。那么我想以水果數量來排序,也就是以第二列來排序,如何利用sort實現?

[root@wangtao tmp]# sort -n -k 2 -t : wangtao.txt

apple:10:2.5

orange:20:3.4

banana:30:5.5

pear:90:2.3

———————————————————

D.uniq命令

功能:報告或刪除文件中重復的行

語法:uniq
[OPTION]… [INPUT [OUTPUT]]

參數:

-c:在輸出行前面加上每行在輸入文件中出現的次數。

-d:僅顯示重復行。

-u:僅顯示不重復的行

案例:

[root@wangtao tmp]# cat wangtaoc.txt

apples

apples

peaches

pears

bananas

cherries

cherries

[root@wangtao tmp]# uniq wangtaoc.txt

apples

peaches

pears

bananas

cherries

[root@wangtao tmp]# uniq -c wangtaoc.txt

      2 apples

      1 peaches

      1 pears

      1 bananas

      2 cherries

[root@wangtao tmp]# uniq -u wangtaoc.txt

peaches

pears

bananas

——————————————–

2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

A.命令的執行結果狀態

–成功

–失敗
–0:成功

–1-255:失敗

bash使用特殊變量$?保存最近一條命令的執行狀態結果,查看命令執行是對還是錯

[root@wangtao tmp]# mkdir /aaaaaa/aaa

mkdir: cannot create directory `/aaaaaa/aaa': No such file or directory

[root@wangtao tmp]# echo $?

1

[root@wangtao tmp]# mkdir -p /aaaaa/aaa

[root@wangtao tmp]# echo $?

0

程序執行有兩類結果:
程序的返回值;
程序的執行狀態結果;

———————————————

B.命令行展開總結:

~:展開為用戶的主目錄

~username:展開為指定用戶的主目錄

{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑

 案例:/tmp/{a,b}相當于/tmp/a,/tmp/b

———————————————

3、請使用命令行展開功能來完成以下練習:

   (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d

   (2)、創建/tmp/mylinux目錄下的:

mylinux/

    ├── bin

    ├── boot

    │   └── grub

    ├── dev

    ├── etc

    │   ├── rc.d

    │   │   └── init.d

    │   └── sysconfig

    │       └── network-scripts

    ├── lib

    │   └── modules

    ├── lib64

    ├── proc

    ├── sbin

    ├── sys

    ├── tmp

    ├── usr

    │   └── local

    │       ├── bin

    │       └── sbin

    └── var

        ├── lock

        ├── log

        └── run

答案:

(1)mkdir -p /tmp/{a,b}_{c_d}

(2)mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/networkscripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

————————————

4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

[root@wangtao ~]# ls -l

total 0

-rw-r–r–. 1 root root 0 Jul  5 13:33 install.log

訪問權限      inode 文件擁有者   創建時間       數據文件

修改時間戳信息:

touch -t 201607052234.50 install.log

————————————-

5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

[root@wangtao ~]# alias

alias cp='cp -i'

alias l.='ls -d .* –color=auto'

alias ll='ls -l –color=auto'

alias ls='ls –color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde'

例如:

[root@wangtao ~]# alias list='ls'

[root@wangtao ~]# list

install.log

使用別的命令表示ls -l的命令

[root@wangtao ~]# alias cp='ls -l'

[root@wangtao ~]# cp

total 0

-rw-r–r–. 1 root root 0 Jul  5 13:33 install.log

—————————————-

6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。

   ls /var/l*[[:digit:]]*[[:lower:]]

7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

   ls /etc/[[:digit:]]*[^[:digit:]]

8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。

   ls /etc/[^[:alpha:]][[:alpha:]]*

9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

    touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

    cp -a /etc/p*[^0-9] /tmp/mytest1

11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

    cp -a /etc/*.d /tmp/mytest2

12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

    cp -a /etc/[l,m-n]*.conf /tmp/mytest3

原創文章,作者:北京-兔鍋,如若轉載,請注明出處:http://www.www58058.com/21942

(0)
北京-兔鍋北京-兔鍋
上一篇 2016-07-07
下一篇 2016-07-07

相關推薦

  • 多網卡實驗

    1、虛擬網卡實現一個網卡多個地址     網卡別名多用于虛擬機,可理解為一塊網卡MAC地址對應多個IP地址,這樣比較方便管理,在不需要通過添加網卡的形式就可以使用到新的IP 在此圖可看到     eth1     eth1:100   &n…

    Linux干貨 2016-09-06
  • 編譯安裝httpd

    編譯安裝httpd   1 去官網下載源碼包                                      為避免非法軟件,一定要去官網下載http…

    2017-04-24
  • CentOS7 Local yum的一次報錯信息

    說明:今天在火車上測試一個CentOS7下的一個服務,要用到yum配置,但是本機沒有聯網,所以考慮到配置本地yum,按照之前CentOS6下的常規方法,居然發現有報錯。 操作如下: 1)虛擬機下將CentOS7光盤加載到系統里面,然后掛載到本地的/localyum上 [root@localhost yum.repos.d]# mount&…

    Linux干貨 2016-07-16
  • Linux 第11&12天: Linux軟件包管理

    Linux 第11&12天: Linux軟件包管理      在系統管理中, 軟件包的管理是最重要的, 是系統管理的基礎,   本文主要是記錄內容有: RPM二進制包的管理,YUM二進制包的管理, 源代碼包的管理   軟件運行環境API:Application Programming Interfac…

    Linux干貨 2016-08-22
  • 第八周作業

    shell腳本簡用

    Linux干貨 2017-11-27
欧美性久久久久