目的

掌握創建文件、查看文件、復制文件、移動文件、刪除文件、創建軟鏈接等。

前提

先介紹下linux文件系統上的文件類型如下:

-:表示普通文件

d:表示目錄文件

b:表示塊設備文件

c:表示字符設備文件

l:表示軟鏈接文件

p:表示管道文件

s:表示套接字文件

【例1】查看文件類型

[root@Magedu ~]# ll 

total 4

drwxr-xr-x 2 root root 54 May 23 09:00 testdir

-rw-r--r-- 1 root root 39 May 22 05:33 test.txt

顯示結果中,第一個位置的符號“-”就代表了文件類型為普通文件。

命令介紹

1、pwd命令:顯示當前shell的工作目錄

【例2】顯示當前工作目錄

[root@Magedu network-scripts]# 

[root@Magedu network-scripts]# pwd

/etc/sysconfig/network-scripts

2、basename命令:取路徑基名

【例3】獲取/etc/sysconfig/的基名

[root@Magedu sysconfig]# basename /etc/sysconfig/

sysconfig

3、dirname命令:取路徑名

【例4】取/etc/sysconfig/的路徑名

[root@Magedu sysconfig]# dirname /etc/sysconfig/

/etc

4、cd命令:切換目錄

【例5】切換到用戶家目錄

[root@Magedu network-scripts]# cd

[root@Magedu ~]# 

或:

[root@Magedu network-scripts]# cd ~

[root@Magedu ~]# 

【例6】切換到父目錄

[root@Magedu network-scripts]# cd ..

[root@Magedu sysconfig]# 

【例7】切換到/etc/sysconfig目錄下

[root@Magedu ~]# cd /etc/sysconfig/

[root@Magedu sysconfig]# 

【例8】切換到上一次所在的目錄

[root@Magedu sysconfig]# cd -

/root

[root@Magedu ~]# 

5、ls命令:列出目錄的內容

選項:

-a:包含隱藏文件;

-l:顯示額外信息;

-R:目錄遞歸通過;

-1:文件分行顯示;

【例9】顯示當前目錄下所有文件

[root@Magedu testdir]# ls -a

.  ..  test1.txt  test.txt  win.txt

【例10】顯示目錄內容的額外信息

[root@Magedu testdir]# ls -l

total 252

-rw-r--r-- 1 root root      0 May 23 09:00 test1.txt

-rw-r--r-- 1 root root 251734 May 23 04:15 test.txt

-rw-r--r-- 1 root root      9 May 23 04:06 win.txt

或:

[root@Magedu testdir]# ll

total 252

-rw-r--r-- 1 root root      0 May 23 09:00 test1.txt

-rw-r--r-- 1 root root 251734 May 23 04:15 test.txt

-rw-r--r-- 1 root root      9 May 23 04:06 win.txt

【例11】遞歸顯示目錄內容

[root@Magedu ~]# ls -R

.:

a                b      messaage.txt  test     test.txt

anaconda-ks.cfg  fstab  passwdtst     testdir

./testdir:

test1.txt  test.txt  win.txt

【例12】組合應用

[root@Magedu testdir]# ll -aR

.:

total 256

drwxr-xr-x   2 root root     54 May 23 09:00 .

dr-xr-x---. 10 root root   4096 May 28 07:07 ..

-rw-r--r--   1 root root      0 May 23 09:00 test1.txt

-rw-r--r--   1 root root 251734 May 23 04:15 test.txt

-rw-r--r--   1 root root      9 May 23 04:06 win.txt

6、stat命令:查看文件狀態

【例13】查看test.txt文件的狀態,注意三個時間戳

[root@Magedu ]# stat test.txt 

File: test.txt

Size: 9             Blocks: 8          IO Block: 4096   regular file

Device: fd00h/64768d    Inode: 33734497    Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2018-05-25 21:55:56.298893545 -0400

Modify: 2018-05-25 08:44:11.510484658 -0400

Change: 2018-05-25 08:44:11.510484658 -0400

Birth: -

7、touch命令:創建空文件和刷新時間

【例14】創建空文件test.sh

[root@Magedu ~]# touch test.sh

[root@Magedu ~]# ll test.sh 

-rw-r--r-- 1 root root 0 May 29 01:55 test.sh

8、cp命令:復制文件和目錄

【例15】把/etc/httpd/conf/httpd.conf文件和/etc/my.cnf文件拷貝到當前目錄

[root@Magedu dir1]# cp /etc/httpd/conf/httpd.conf /etc/my.cnf ./

[root@Magedu dir1]# ll

total 16

-rw-r--r-- 1 root root 11766 May 29 02:13 httpd.conf

-rw-r--r-- 1 root root   570 May 29 02:13 my.cnf

【例16】把/etc/nginx目錄及其下面所有文件和子目錄拷貝到當前目錄

[root@Magedu dir1]# cp -R /etc/nginx/ ./

[root@Magedu dir1]# ll

total 20

-rw-r--r-- 1 root root 11766 May 29 02:13 httpd.conf

-rw-r--r-- 1 root root   570 May 29 02:13 my.cnf

drwxr-xr-x 4 root root  4096 May 29 02:16 nginx

【例17】復制httpd.conf文件并重命名為httpd.conf.bak

[root@Magedu dir1]# cp httpd.conf httpd.conf.bak

[root@Magedu dir1]# ll

total 32

-rw-r--r-- 1 root root 11766 May 29 02:13 httpd.conf

-rw-r--r-- 1 root root 11766 May 29 02:19 httpd.conf.bak

-rw-r--r-- 1 root root   570 May 29 02:13 my.cnf

drwxr-xr-x 4 root root  4096 May 29 02:16 nginx

【例18】復制/etc目錄下所有文件及其子目錄到當前目錄,并重命名為etc_bak

[root@Magedu dir1]# cp -R /etc ./etc_bak

[root@Magedu dir1]# ll

total 44

drwxr-xr-x 143 root root  8192 May 29 02:32 etc_bak

-rw-r--r--   1 root root 11766 May 29 02:13 httpd.conf

-rw-r--r--   1 root root 11766 May 29 02:19 httpd.conf.bak

-rw-r--r--   1 root root   570 May 29 02:13 my.cnf

drwxr-xr-x   4 root root  4096 May 29 02:16 nginx

9、mv命令:移動文件或目錄

注意:移動目錄時,無需添加-R遞歸選項,要與cp命令區別。

【例19】把當前目錄下nginx命令重命名為nginx_bak

[root@Magedu dir1]# mv nginx/ nginx_bak

[root@Magedu dir1]# ll

total 44

drwxr-xr-x 143 root root  8192 May 29 02:32 etc_bak

-rw-r--r--   1 root root 11766 May 29 02:13 httpd.conf

-rw-r--r--   1 root root 11766 May 29 02:19 httpd.conf.bak

-rw-r--r--   1 root root   570 May 29 02:13 my.cnf

drwxr-xr-x   4 root root  4096 May 29 02:16 nginx_bak

【例20】把httpd.conf文件移動到/tmp目錄下

[root@Magedu dir1]# mv httpd.conf /tmp

[root@Magedu dir1]# ll

total 32

drwxr-xr-x 143 root root  8192 May 29 02:32 etc_bak

-rw-r--r--   1 root root 11766 May 29 02:19 httpd.conf.bak

-rw-r--r--   1 root root   570 May 29 02:13 my.cnf

drwxr-xr-x   4 root root  4096 May 29 02:16 nginx_bak

10、rm命令:刪除文件或目錄

【例21】刪除當前目錄下所有文件

[root@Magedu dir1]# rm -rf *

[root@Magedu dir1]# ll

total 0

11、mkdir命令:創建目錄

【例22】創建目錄a,其下包含b和c兩目錄,且b和c目錄下都有一個目錄d

[root@Magedu ~]# mkdir -p a/{b,c}/d

12、tree命令:顯示目錄樹

【例23】顯示a目錄的目錄樹

[root@Magedu ~]# tree a

a

├── b

   └── d

└── c

└── d



4 directories, 0 files

【例24】查看/usr/local目錄樹,但僅查看2級的目錄深度

[root@Magedu ~]# tree -L 2 /usr/local

/usr/local

├── bin

├── etc

├── games

├── include

├── lib

├── lib64

├── libexec

├── sbin

├── share

   ├── applications

   ├── info

   └── man

└── src



13 directories, 0 files

13、ln命令:創建鏈接文件

【例25】把 /usr/sbin/apachectl文件在當前目錄下創建軟連接文件為apachectl

[root@Magedu dir1]# ln -s /usr/sbin/apachectl apachectl

[root@Magedu dir1]# ll

total 0

lrwxrwxrwx 1 root root 19 May 29 02:57 apachectl -> /usr/sbin/apachectl

文章來源于網絡,侵刪!