linux 文件管理類命令及功能用法

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

文件管理類的命令有:

cd,ls,touch,mldir,cp,mv,rm,rmdir,pwd,tree

使用方法

(1),cd命令用來切換工作目錄至dirname。其中dirName表示法可為絕對路徑或相對路徑。

常用格式:

cd   #進入用戶家目錄
cd~  #進入用戶家目錄
cd-  #返回進入此目錄之前的目錄
cd.. #返回上級目錄
cd../..  #返回上兩級目錄
(2),ls:
ls命令就是list的縮寫,缺省下ls用來顯示出當前目錄的清單,如果ls指定其他目錄,那么就會顯示指定目錄里的文件及文件夾清單。通過ls
命令不僅可以查看linux文件夾包含的文件而且可以查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。

ls #顯示目錄下的文件

[root@localhost tmp]# ls /
bin dev home lib64 mnt proc run srv test usr
boot etc lib media opt root sbin sys tmp var
[root@localhost tmp]#

-a  #顯示目錄下的隱藏文件
[root@localhost ~]# ls
[root@localhost ~]# ls -a
. .bash_history .bash_profile .cache .cshrc .tcshrc
.. .bash_logout .bashrc .config .local .viminfo
[root@localhost ~]#

-A   #同-a,但不列出“.”(表示當前目錄)和“..”(表示當前目錄的父目錄) 
[root@localhost ~]# ls -a
. .bash_history .bash_profile .cache .cshrc .tcshrc
.. .bash_logout .bashrc .config .local .viminfo
[root@localhost ~]# ls -A
.bash_history .bash_profile .cache .cshrc .tcshrc
.bash_logout .bashrc .config .local .viminfo
[root@localhost ~]#

-l #長格式顯示文件,顯示文件的詳細屬性信息,屬主、屬組、文件大小、權限等

[root@localhost ~]# ls -l /
total 32
lrwxrwxrwx. 1 root root 7 Jun 22 19:56 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Jun 24 21:30 boot
drwxr-xr-x. 20 root root 3320 Jul 9 02:07 dev
drwxr-xr-x. 144 root root 8192 Jul 9 02:06 etc
drwxr-xr-x. 5 root root 39 Jul 4 10:43 home
    lrwxrwxrwx. 1 root root 7 Jun 22 19:56 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Jun 22 19:56 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Aug 12 2015 media
drwxr-xr-x. 2 root root 6 Aug 12 2015 mnt
drwxr-xr-x. 4 root root 28 Jul 5 06:55 opt
dr-xr-xr-x. 437 root root 0 Jul 9 02:06 proc
dr-xr-x---. 5 root root 4096 Jul 9 02:28 root
drwxr-xr-x. 39 root root 1180 Jul 9 02:07 run
lrwxrwxrwx. 1 root root 8 Jun 22 19:56 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Aug 12 2015 srv
dr-xr-xr-x. 13 root root 0 Jul 9 02:06 sys
drwxr-xr-x. 2 root root 20 Jun 27 10:03 test
rwxrwt. 10 root root 4096 Jul 9 03:23 tmp
r-xr-x. 13 root root 4096 Jun 22 19:56 usr
r-xr-x. 21 root root 4096 Jul 9 02:06 var
[root@localhost ~]#

-h # –human-readable ,配合 -l 使用 , 以容易理解的格式列出文件大小 (例如 1K 234M 2G)

t@localhost ~]# ls -lh /
l 32K
    wx. 1 root root 7 Jun 22 19:56 bin -> usr/bin
r-xr-x. 4 root root 4.0K Jun 24 21:30 boot
r-xr-x. 20 root root 3.3K Jul 9 02:07 dev
r-xr-x. 144 root root 8.0K Jul 9 02:06 etc
r-xr-x. 5 root root 39 Jul 4 10:43 home
rwxrwx. 1 root root 7 Jun 22 19:56 lib -> usr/lib
rwxrwx. 1 root root 9 Jun 22 19:56 lib64 -> usr/lib64
r-xr-x. 2 root root 6 Aug 12 2015 media
r-xr-x. 2 root root 6 Aug 12 2015 mnt
drwxr-xr-x. 4 root root 28 Jul 5 06:55 opt
r-xr-x. 437 root root 0 Jul 9 02:06 proc
r-x---. 5 root root 4.0K Jul 9 02:28 root
r-xr-x. 39 root root 1.2K Jul 9 02:07 run
rwxrwx. 1 root root 8 Jun 22 19:56 sbin -> usr/sbin
r-xr-x. 2 root root 6 Aug 12 2015 srv
r-xr-x. 13 root root 0 Jul 9 02:06 sys
r-xr-x. 2 root root 20 Jun 27 10:03 test
rwxrwt. 10 root root 4.0K Jul 9 03:23 tmp
r-xr-x. 13 root root 4.0K Jun 22 19:56 usr
r-xr-x. 21 root root 4.0K Jul 9 02:06 var
t@localhost ~]#

-d # –directory,配合 -l 使用,顯示目錄本身屬性而非其內部的文件列表

t@localhost tmp]# ls -ld
rwxrwt. 10 root root 4096 Jul 9 03:35 .
t@localhost tmp]# ls -ld /usr/
r-xr-x. 13 root root 4096 Jun 22 19:56 /usr/
t@localhost tmp]#

-r # 逆序顯示

t@localhost ~]# ls /
bin dev home lib64 mnt proc run srv test usr
boot etc lib media opt root sbin sys tmp var
[root@localhost ~]# ls -r /
var tmp sys sbin root opt media lib etc boot
usr test srv run proc mnt lib64 home dev bin
[root@localhost ~]#

-R # 遞歸顯示

[root@localhost tmp]# ls -R /tmp/
/tmp/:
mylinux

/tmp/mylinux:   
bin boot dev etc lib lib64 proc sbin sys tmp usr var

/tmp/mylinux/bin:

/tmp/mylinux/boot:
grub

/tmp/mylinux/boot/grub:

/tmp/mylinux/dev:

/tmp/mylinux/etc:
rc.d sysconfig

/tmp/mylinux/etc/rc.d:
init.d

/tmp/mylinux/etc/rc.d/init.d:

/tmp/mylinux/etc/sysconfig:
network-soripts
(3),touch :創建新的空文件或者修改文件的訪問時間和修改時間為當前時間

touch #創建一個新的空文件

-c #知道文件路徑不存在時不予創建新的文件

[root@localhost ~]# ls
[root@localhost ~]# touch test.txt
[root@localhost ~]# ls
test.txt
[root@localhost ~]# cat test.txt
[root@localhost ~]#

-a #修改文件的訪問時間

[root@localhost ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d    Inode: 73007616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-07-09 04:22:05.044609937 -0400
Modify: 2017-07-09 04:20:21.910628548 -0400
Change: 2017-07-09 04:22:05.044609937 -0400
Birth: -
[root@localhost ~]#

-m #修改文件的修改時間

[root@localhost ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d    Inode: 73007616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-07-09 04:22:05.044609937 -0400
Modify: 2017-07-09 04:20:21.910628548 -0400
Change: 2017-07-09 04:22:05.044609937 -0400
Birth: -
[root@localhost ~]# touch -m test.txt
[root@localhost ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d    Inode: 73007616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-07-09 04:22:05.044609937 -0400
Modify: 2017-07-09 04:22:41.660248300 -0400
Change: 2017-07-09 04:22:41.660248300 -0400
Birth: -                        
[root@localhost ~]#

-t STAMP #修改文件的指定時時間,改參數是修改修改時間的地址

(4),mkdir :建立新目錄

mkdir #創建新目錄

[root@localhost ~]# ls
test.txt text
[root@localhost ~]# mkdir test
[root@localhost ~]# ls
test test.txt text
[root@localhost ~]#

-p   #創建遞歸目錄, 可一次創建多層目錄
[root@localhost ~]# rm -rf *
[root@localhost ~]# ls
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# mkdir -p ./a/b/c/d/e/f
[root@localhost ~]# tree
. 
└── a
    └── b
        └── c
            └── d
                └── e
                    └── f

6 directories, 0 files
[root@localhost ~]# ^C
[root@localhost ~]#

-m #指定創建文件的權限

[root@localhost ~]# mkdir -m 222 test
[root@localhost ~]# ll
total 0
drwxr-xr-x. 3 root root 14 Jul 9 04:34 a
d-w--w--w-. 2 root root 6 Jul 9 04:36 test
[root@localhost ~]#
(5),cp :復制命令

cp 用法格式

~]# cp [-adfilprsu] 源文件(source) 目的文件(destination) 
~]# cp [options] source1 source2 source3 .... directory

-a :相當于 -pdr 的意思,用于實現歸檔

[root@localhost ~]# cp -a /etc/ /tmp/
[root@localhost ~]# ls /tmp/etc/
abrt gssproxy profile
adjtime hba.conf profile.d
aliases highlight protocols
aliases.db host.conf pulse
alsa hostname purple
alternatives hosts python
amanda hosts.allow qemu-ga
anacrontab hosts.deny qemu-kvm
asound.conf hp radvd.conf
at.deny idmapd.conf rc0.d
at-spi2 init.d rc1.d
audisp inittab rc2.d
audit inputrc rc3.d
autofs.conf ipa rc4.d
autofs_ldap_auth.conf iproute2 rc5.d
auto.master ipsec.conf rc6.d

-d :若來源文件為鏈接文件的屬性(link file),則復制鏈接文件屬性而非檔案本身;
-f :為強制 (force) 的意思,若有重復或其他疑問時,不會詢問使用者,而強制復制;
-i :若目的文件(destination)已經存在時,在覆蓋時會先詢問是否真的動作!
-l :進行硬式連結 (hard link) 的連結文件建立,而非復制文件本身;
-p :連同文件的屬性一起復制過去,而非使用默認屬性;
-r :遞歸持續復制,用于目錄的復制行為;

[root@localhost ~]# cp -r abc/ /tmp/
[root@localhost ~]# tree /tmp/abc
/tmp/abc
├── abc.txt
└── abc.txtls

0 directories, 2 files
[root@localhost ~]# tree abc/
abc/
├── abc.txt
└── abc.txtls

0 directories, 2 files
[root@localhost ~]#
(6),mv :移動文件

-f #force 強制的意思,強制直接移動而不詢問;

-i #若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!

-u #若目標文件已經存在,且 source 比較新,才會更新 (update)

移動文件

[root@localhost ~]# mv abc.txt /tmp/
[root@localhost ~]# ls /tmp/
abc.txt
[root@localhost ~]# ls 
a
[root@localhost ~]#

文件改名

[root@localhost tmp]# ls
abc.txt
[root@localhost tmp]# mv abc.txt test.txt
[root@localhost tmp]# ls
test.txt
[root@localhost tmp]#
(7),rm :刪除文件

-f #就是 force 的意思,強制移除;

[root@localhost tmp]# touch abc.txt
[root@localhost tmp]# ls
abc.txt
[root@localhost tmp]# rm -f abc.txt 


[root@localhost tmp]# mkdir test
[root@localhost tmp]# rm -rf test/
[root@localhost tmp]# ls
[root@localhost tmp]#

-i #互動模式,在刪除前會詢問使用者是否動作

[root@localhost tmp]# rm  -i abc.txt 
rm: remove regular empty file ‘abc.txt’? n
[root@localhost tmp]# ls
abc.txt


[root@localhost tmp]# rm  -i abc.txt 
rm: remove regular empty file ‘abc.txt’? y
[root@localhost tmp]# ls
[root@localhost tmp]#

-r #遞歸刪除!最常用在目錄的刪除了

[root@localhost tmp]# tree 
.
└── a
    └── b
        └── c
            └── d
                └── e
                    └── f

6 directories, 0 files
[root@localhost tmp]# rm -r a/
rm: descend into directory ‘a/’? y
rm: descend into directory ‘a/b’? y
rm: descend into directory ‘a/b/c’? y
rm: descend into directory ‘a/b/c/d’? y
rm: descend into directory ‘a/b/c/d/e’? y
rm: remove directory ‘a/b/c/d/e/f’? y
rm: remove directory ‘a/b/c/d/e’? y
rm: remove directory ‘a/b/c/d’? y
rm: remove directory ‘a/b/c’? y
rm: remove directory ‘a/b’? y
rm: remove directory ‘a/’? y
[root@localhost tmp]# y
failed to load config file: No such file or directory
bash: y: command not found...
[root@localhost tmp]# ls
[root@localhost tmp]#
(8),rmdir :僅可以刪除空目錄
[root@localhost ~]# tree a/
a/
└── b
    └── c
        └── d
            └── e
                └── f

5 directories, 0 files
[root@localhost ~]# rmdir a/
rmdir: failed to remove ‘a/’: Directory not empty
[root@localhost ~]# rmdir a/b/c/d/e/f
[root@localhost ~]# tree a/
a/
└── b
    └── c
        └── d
            └── e

4 directories, 0 files
[root@localhost ~]#

-p #刪除上級空目錄

[root@localhost ~]# tree
.
├── a
│       └── b
│               └── c
│                        └── d
│                                 └── e
└── test

6 directories, 0 files
[root@localhost ~]# rmdir -p a/b/c/d/e/
[root@localhost ~]# ls
test
[root@localhost ~]#
(9),pwd :顯示當前的所工作的路徑

pwd #查看當前所在的路徑

[root@localhost Desktop]# pwd
/home/danry/Desktop
[root@localhost Desktop]#

-P #顯當前所在位置的完整的路徑

[root@localhost mail]# pwd -P
/var/spool/mail
[root@localhost mail]# ls -l /var/mail
lrwxrwxrwx. 1 root root 10 Jun 22 19:56 /var/mail -> spool/mail
[root@localhost mail]#

(10),tree

第二題: bash的工作特性之命令執行狀態的返還值和命令行展開所涉及到的內容及示例演示。

命令或程序的返還值:

命令執行狀態返回值范圍:0-255

其中0代表命令執行結果的正確,1-255代表命令執行結果的錯誤

[root@localhost tmp]# ls
[root@localhost tmp]# echo $?
0


[root@localhost tmp]# asdf
failed to load config file: No such file or directory
bash: asdf: command not found...
[root@localhost tmp]# echo $?
127
[root@localhost tmp]#

命令行展開;

以某些bash能夠解釋的符號來代替命令中的某些參數。

~:展開為用戶的家目錄;

例:切換至家目錄

cd ~;pwd

/root

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

例:在/tmp/d目錄下創建f1,f2,f3三個文件

ttouch /tmp/d/f{1,2,3}

[root@localhost tmp]# touch /tmp/d/f{1,2,3} 
[root@localhost tmp]# tree 
.
└── d
    ├── f1
    ├── f2
    └── f3

1 directory, 3 files
[root@localhost tmp]#

第三題:請使用一下命令行展開功能來完成一下聯系:

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

mkdir -v /tmp/{a,b}_{c,d}

[root@localhost ~]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: created directory ‘/tmp/a_c’
mkdir: created directory ‘/tmp/a_d’
mkdir: created directory ‘/tmp/b_c’
mkdir: created directory ‘/tmp/b_d’
[root@localhost ~]# tree /tmp/
/tmp/
├── a_c
├── a_d
├── b_c
└── b_d

4 directories, 0 files
[root@localhost ~]#

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

mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│   └── network-soripts
├── lib
│   └── modiles
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│   ├── bin
│   └── sbin
└── var
    ├── log
    ├── look
    └── run

mkdir -p
/tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-soripts},lib/modiles,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}}

[root@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-soripts},lib/modiles,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}}
[root@localhost ~]# tree /tmp/
/tmp/
└── mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│   └── network-soripts
├── lib
│   └── modiles
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│   ├── bin
│   └── sbin
└── var
├── log
├── look
└── run

25 directories, 0 files
[root@localhost ~]#

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

元數據包括:文件的大小,權限,屬主屬組,時間戳,inode等屬性。

stat #查看元數據信息

[root@localhost tmp]# stat d/f1
  File: ‘d/f1’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 170         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/ UNKNOWN)   Gid: (    0/ UNKNOWN)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-07-09 10:03:13.648705432 +0000
Modify: 2017-07-09 10:03:13.648705432 +0000
Change: 2017-07-09 10:03:13.648705432 +0000
 Birth: -
[root@localhost tmp]#

access time:訪問時間,atime,即:通過cat,more等讀取其內容。

modify time:修改時間,mtime,即:改變文件內容。

change time:改變時間,ctime,即:元數據發生改變。

原創文章,作者:N27_Danry,如若轉載,請注明出處:http://www.www58058.com/79627

(0)
N27_DanryN27_Danry
上一篇 2017-07-09
下一篇 2017-07-09

相關推薦

  • 計算機的組成及其功能

    計算機系統由硬件系統和軟件系統兩大部分組成。馮諾依曼奠定了現代計算機的基本結構。 馮諾依曼體系的計算機,必須具有如下功能: #1 把需要的程序和數據送至計算機中; #2 具有長期記憶程序、數據、中間結果及最終運算結果的能力; #3 能夠完成各種算術運算、邏輯運算和數據傳送等數據加工處理的能力; #4 能夠根據需要控制程序走向,并能根據指令控制機器的各部件協調…

    Linux干貨 2016-08-15
  • 程序包管理:rpm , yum ,與編譯

    1.RPM,Redhat Package Manager。是Redhat和CentOS等Linux系統上常見的軟件安裝工具。 軟件安裝: 常見選項 -i                #install…

    Linux干貨 2016-03-26
  • nginx 基礎筆記

    一、Nginx 優點 高性能web,可以支持反向代理 比Apache性能優越,支持更多的并發連接,但資源占用很少,輕量級的web服務器??梢灾С指哌_50000個并發連接數的響應 Nginx 在Linux 2.6+ 使用epoll模型,提供卓越性能 做為負載均衡服務器,可以在內部直接支持PHP和Rails,也可以支持作為HTTP代理服務器對外進行服務 Ngin…

    Linux干貨 2016-03-19
  • FHS文件系統各目錄功能

        FHS文件系統各目錄功能 前言                  FHS (Files system Hiserarchy Standard)…

    Linux干貨 2016-10-17
  • grep、egrep正則表達式之初窺門徑

    何謂正則表達式 正則表達式,又稱正規表示法、常規表示法(Regular Expression,在代碼中常簡寫為regex、regexp或RE),是一類字符所書寫的模式,其中許多字符不表示其字面意義,而是表達控制或通配等功能。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的…

    2015-03-19
  • 【N25第六周作業】VIM、crontab、簡單腳本

    請詳細總結vim編輯器的使用并完成以下練習題 第二周有寫過vim的用法,請查看連接: 周期性任務計劃:cron 服務程序: cronie:主程序包,提供了crond守護進程及相關輔助工具; 確保crond守護進程(daemon)處于運行狀態: CentOS 7: systemctl  status  cron…

    Linux干貨 2016-12-27

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-07-13 17:08

    不錯,非常認真,再接再勵。

欧美性久久久久