馬哥教育網絡班19期+第二周課程練習

1、         常見的文件管理命令及使用方法

mkdir創建目錄

1.png

使用mkdir創建一個叫做test的文件夾,使用ls –l查看test的信息,test的信息的第一位為d,表示是一個目錄。

而級聯創建目錄時,只需要加上一個-p選項,即可,即使你創建一個已存在的目錄,Linux也不會報錯的。

2.png

3.png

進入test文件夾,使用touch filename創建一個文本文件,使用ls –l查看文件屬性為時,表示這個文件是一個普通的文本文件。

rmdir刪除空目錄

-p選項級聯刪除一大串空目錄了,但是有一個局限性是必須是空目錄,所以不怎么好用。

[root@localhost ~]# rmdir /tmp/test/

rmdir: 刪除 '/tmp/test/' 失敗: 目錄非空

[root@localhost ~]# rmdir /tmp/test/123

命令rm(remove)

也是刪除的命令,這里介紹一下常用的選項:

       -r:刪除目錄的選項,等于rmdir

       -f:強制刪除不提示,如果你在刪除一個不存在的目錄,加上-f不會報錯

4.png

有一點和rmdir不同的是,會詢問是否刪除,輸入y則刪除,輸入n則不刪除。而且,當目錄時非空的時候,也可以刪除。最常用的,就是rm –rf這兩個選項合用了,不管是文件還是目錄都可以不提示刪除。

5.png

cp命令

用來復制文件或者文件夾,語法格式:cp [選項] [源文件] [目標文件]

例如把test復制成test1

6.png如果是復制目錄,則需要加-r選項即可。

移動和重命名mv

語法:mv [選項] [源文件] [目標文件]

mv命令有幾種情況需要注意:

(1)    目標文件是目錄,而且目標文件不存在;

(2)    目標文件是目錄,而且目標文件存在;

(3)    目標文件不是目錄不存在;

(4)    目標文件不是目錄存在;

目標文件是目錄,存在和不存在,移動的結果是不一樣的,如果存在,則會把源文件移動到目標文件目錄中。不存在的話移動完后,相當于重命名目錄。

7.png

如果目標文件不是目錄,且不存在,則會重命名文件,否則把文件移動到目錄中。

8.png

命令cat

即查看一個文件的內容并顯示在屏幕上,后面可以不加選項直接跟文件名,也可以加兩個常用選項:

       -n:查看文件時,把行號也顯示到屏幕上

       9.png

       例子中出現了一個“>>”這個符號跟 >”的作用都是重定向,即把前面輸出的東西輸入到后邊的文件中,只是“>>”是追加的意思,而用“>”如果文件中有內容則會刪除文件中內容,而“>>”則不會。

       -A: 顯示所有東西出來,包括特殊字符

       10.png

文件和目錄的屬性

上面我查看文件的時候,使用了ls –l的命令,一共有9列內容,各自的含義我介紹下:

(1)     1列包含該文件類型和所有者、所屬組以及其他用戶對該文件的權限。第一列共11位有的文件是10位,沒有最后面的一位。 其中第一位用來描述該文件的類型。

d 表示該文件為目錄;

表示該文件為普通文件;

l 表示該文件為鏈接文件;

b 表示該文件為塊設備,比如/dev/sda就是這樣的文件;

c 表示該文件為串行端口設備,例如鍵盤、鼠標;

s 表示該文件為套接字文件(socket),用于進程間通信;

后邊的9位,每三個為一組,均為rwx三個參數的組合。其中r代表可讀,w代表可寫,x代表可執行。前三位為所有者(user)的權限,中間三位為所屬組(group)的權限,最后三位為其他非本群組(others)的權限。例如下面這個test.txt的意思就是該文件為一個普通文件,文件的擁有者可讀可寫,屬組和其他為可讀。

11.png

而第一列最后一個“.”,是因為新版本的lsselinux或者acl的屬性加進來了,當文件或者目錄只使用了selinux context的屬性,這里是一個點。如果設置了acl,后面將是一個加號“+”。

(2)     表示為鏈接占用的節點(inode),如果是目錄,那這個數值與該目錄底下有多少一級子目錄有關系。

(3)     3列,表示該文件的所有者。

(4)     4列,表示該文件的所屬組。

(5)     5列,表示該文件的大小。

(6)     6列、第7列和第8列為該文件的最近的修改日期,分別為月份日期以及時間。

(7)     9列,文件名。

chmod命令

上面介紹了文件的所有者、所屬組以及其他用戶對文件的權限,而命令“chmod”就是為了更改這些權限的,可以使用數字去代替rwx, 具體規則為r等于4,w等于2x等于1,等于0。如:“-rwxrwx—” 用數字表示就是770,具體是這樣來的:rwx=4+2+1=7;rwx=4+2+1=7;—=0+0+0=0。

語法:chmod [-R] xyz filenamexyz表示數字,及421

-R選項作用表示級聯更改,級把目錄內的目錄或文件也一同更改。

12.png

chown、chgrp命令

更改文件或目錄的所屬主(chown)和所屬組(chgrp)

13.png

14.png

也可以不使用chgrp更改所屬組,如

15.png

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

使用特殊變量“$?”表示最近一條命令的執行結果,0表示成功,1-255表示失敗。

16.png

命令行展開:

“~”表示展開成用戶的家目錄,{}可承載一個以逗號分隔的列表,并將其展開為多個路徑。

17.png

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

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

18.png

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

可以使用如下命令完成:

[root@Hao tmp] # mkdir -p 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}}

19.png

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

使用命令stat查看

20.png

使用touch filename修改時間戳信息

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

alias命令修改別名

21.png

命令引用:

name=`COMMAND`, name=$(COMMAND)

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

[root@Hao ~]# ls -d /var/l*[0-9]*[[:lower:]]

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

# ls -d /etc/[0-9]*[^0-9]

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

# ls -d /etc/[^[:alpha:]][[:alpha:]]*

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

[root@Hao ~]# touch tfile-`date +"%Y-%m-%d-%H-%M-%S"`

22.png

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

[root@Hao ~]# cp -a /etc/p*[^0-9] /tmp/mytest1

23.png

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

[root@Hao ~]# cp -a /etc/*.d /tmp/mytest2

24.png

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

[root@Hao ~]# cp -a /etc/[l,m,n]*.conf /tmp/mytest3

25.png

 

 

原創文章,作者:Net19_口香糖,如若轉載,請注明出處:http://www.www58058.com/21581

(0)
Net19_口香糖Net19_口香糖
上一篇 2016-07-04 11:35
下一篇 2016-07-04 11:35

相關推薦

  • Linux磁盤分區創建及bash 簡單應用

    1、創建一個10G分區,并格式為ext4文件系統; (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl; (2)掛載至/data/mydata目錄,要求掛載是禁止程序自動運行,并且更新文件的訪問時間戳; [root@danry ~]# fdisk /dev/sdb Welcome to fdisk (util…

    2017-09-11
  • 對ssh的簡單理解

    ssh:secure shell,protocol,22、tcp安全的遠程登錄 具體的軟件實現:openssh:ssh協議的開源實現,centos默認安裝dropbear:另一個開源實現ssh協議版本v1:基于crc-32做MAC,不安全;man-in-middle 已淘汰v2:雙方主機協議選擇安全的MAC方式基于DH算法做密鑰交換,基于RSA或DSA實現身…

    2017-09-29
  • 通過paramiko模塊遠程抓取日志

        最近一直在學習python,可是工作中一直缺少機會用到這塊功能.最近接到一個需求需要拉取6臺客戶端的某一天jetty日志.因為jetty的日志是保存在jetty的log目錄下,以yyyy_mm_dd.stderrout.log的形式保存,所以我們只要創建一個腳本,傳入需要查詢日志的日期和需要查詢日志的主機IP及…

    Python干貨 2016-01-16
  • linux 文本處理工具 grep cut sort等

    linux day 7 間歇性回憶 自動屬于這個組 是  SGID 的功能 chmod g+s /data/testdir setfacl —m g:g2:rwx /data/testdir setfacl -m b:g:g2:rwx /data/testdir setfacl -m d:g:g3:r testdir chmod o= testdi…

    Linux干貨 2016-08-08

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-04 11:39

    寫的很好,可以注意一下排版問題,加油

欧美性久久久久