一、Linux上的文件管理類命令,其常用的使用方法和相關示例
1、ls:查看文件與目錄
作用:ls命令用于顯示目錄內容,類似于DOS下的dir命令,它的使用權限是所有用戶。
用法:ls [選項]…[文件]…
主要選項如下:
-a:全部的文件,連同隱藏文件(開頭為 .的文件)一起列出來
-A:列出全部的文件(連同隱藏文件,但不包括.與..這兩個目錄)
-d:僅列出目錄本身,而不是列出目錄內的文件數據
-f:直接列出結果,而不進行排序
-F:根據文件、目錄等信息給予附加數據結構,例如:*:代表可執行文件; /:代表目錄; =:代表socket文件; |:代表FIFO文件
-h:將文件容量以人類較易讀的方式列出來
-i:–inode,顯示每個文件的inode號
-l:使用較長格式列出信息,包含文件的屬性與權限等數據
-n:–numeric-uid-gid,類似-l,但列出UID與GID,而非用戶與用戶組的名稱
-r:–reverse,逆序排列,將排序結果反向輸出
-R:–recursive,遞歸顯示子目錄
-S:根據文件大小排序
-t:根據時間排序,而不是文件名
示例:
[root@localhost ~]# ls -al #列出用戶所在主目錄下的所有文件與目錄
total 36
dr-xr-x—. 2 root root 4096 Dec 8 19:03 .
dr-xr-xr-x. 17 root root 4096 Dec 8 18:58 ..
-rw——-. 1 root root 1186 Dec 8 18:58 anaconda-ks.cfg
-rw——-. 1 root root 152 Dec 8 19:50 .bash_history
-rw-r–r–. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r–r–. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r–r–. 1 root root 176 Dec 28 2013 .bashrc
-rw-r–r–. 1 root root 100 Dec 28 2013 .cshrc
-rw-r–r–. 1 root root 129 Dec 28 2013 .tcshrc
[root@localhost ~]# ls -alt #列出用戶所在主目錄下的所有文件按時間排序
total 36
-rw——-. 1 root root 152 Dec 8 19:50 .bash_history
dr-xr-x—. 2 root root 4096 Dec 8 19:03 .
-rw——-. 1 root root 1186 Dec 8 18:58 anaconda-ks.cfg
dr-xr-xr-x. 17 root root 4096 Dec 8 18:58 ..
-rw-r–r–. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r–r–. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r–r–. 1 root root 176 Dec 28 2013 .bashrc
-rw-r–r–. 1 root root 100 Dec 28 2013 .cshrc
-rw-r–r–. 1 root root 129 Dec 28 2013 .tcshrc
2、cat:顯示文本文件內容
作用:將[文件]或標準輸入組合輸出到標準輸出。
用法:cat [選項] [文件]…
主要選項如下:
-A:–show-all,相當于-vET的整合參數,可列出一些特殊字符,而不是空白
-b:–number-nonblank,列出行號,僅針對非空白行做行號顯示,空白行不標行號
-E:–show-ends,在每行結束處顯示”$“
-n:–number,對輸出所有行編號
-T:–show-tabs,將TAB按鍵以“^I”顯示出來
-v:–show-nonprinting,使用“^”和“M-”引用,除LFD和TAB之外
示例:
[root@localhost ~]# cat /etc/issue #查看/etc/issue這個文件的內容
\S
Kernel \r on an \m
[root@localhost ~]# cat -n /etc/issue #加印行號查看/etc/issue這個文件的內容
1 \S
2 Kernel \r on an \m
3
[root@jl ~]# cat -A /etc/issue #將/etc/issue這個文件的內容完整顯示出來(包含特殊字母)
CentOS release 6.5 (Final)$
Kernel \r on an \m$
$
3、cp:復制文件
作用:文件或目錄的復制
用法:cp [選項]… [-T] 源文件 目標文件
cp [選項]… 源文件… 目錄
cp [選項]… -t 目錄 源文件…
將<源文件>文件復制至<目標文件>, 或將多個<源>復制至<目錄>
主要選項如下:
-a:等同于-dpR參數一起使用,在復制過程中盡可能保留源文件或目錄的屬性
-d:若源文件為連接文件的屬性(link file),則復制連接文件屬性而非文件本身
-f:為強制(force)的意思,若目標文件已經存在且無法開啟,則刪除后再嘗試一次
-i:若目標文件(destination)已經存在時,在覆蓋時會先詢問操作的進行
-l:進行硬鏈接(hard link)的連接文件創建,而非復制文件本身
-p:連同文件的屬性一起復制,而非使用默認屬性(備份常用)
-r:遞歸持續復制,用于目錄的復制行為(常用)
-s:復制成為符號鏈接文件(symbolic link),即”快捷方式“文件
示例:
[root@jl ~]# cp ~/install.log /home/jl/xxx #將~目錄下的install.log文件復制到/home/jl下并更名為xxx文件
[root@jl ~]# ls /home/jl #查看結果
Desktop Documents Downloads Music Pictures Public Templates Videos xxx
[root@jl ~]# cd /home/jl #切換目錄至/jl
[root@jl jl]# cp ~/install.log . #將~目錄下的install.log文件復制到/jl目錄下
[root@jl jl]# ls #查看結果
Desktop Downloads Music Public Videos
Documents install.log Pictures Templates xxx
4、rm:刪除文件
作用:刪除指定的文件
用法:rm [選項]…文件…
主要選項如下:
-f:–force,強制刪除,忽略不存在的文件,不提示確認
-i:互動模式,在刪除前需要用戶確認
-r:-R,–recursive,遞歸刪除目錄及內容
示例:
[root@jl jl]# rm -i install.log #刪除目錄/jl下的install.log文件
rm: remove regular file `install.log'? y #是否刪除
[root@jl jl]# ls #查看是否已刪除install.log
Desktop Documents Downloads Music Pictures Public Templates Videos xxx
[root@jl jl]# touch ./-a- #創建一個-a-的空文件
[root@jl jl]# ls
-a- Desktop Documents Downloads Music Pictures Public Templates Videos xxx # -a-空文件創建成功
[root@jl jl]# rm -a- #刪除-a-的空文件,提示無法刪除,因為“-”是參數,系統誤判
rm: invalid option — 'a'
Try `rm ./-a-' to remove the file `-a-'.
Try `rm –help' for more information.
[root@jl jl]# rm ./-a- #通過在./-a-的形式可以正常刪除
rm: remove regular empty file `./-a-'? y
[root@jl jl]# ls
Desktop Documents Downloads Music Pictures Public Templates Videos xxx
5、mv:移動或更改文件名
作用:mv可以將源文件重命名為目標文件,或將源文件移動至指定目錄
用法:mv [選項]… [-T] 源文件 目標文件
mv [選項]… 源文件… 目錄
mv [選項]… -t 目錄 源文件..
主要選項如下:
-f:–force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i:–interactive,若目標文件已經存在,就會詢問是否覆蓋
-u:–update,若源文件比目標文件新,或目標文件不存在時才進行移動或更新
示例:
[root@jl jl]# mv xxx Public #將/home/jl下的xxx文件移動到/home/jl/Public目錄下
[root@jl jl]# ls Public #查看是否完成上述操作
xxx
[root@jl jl]# cd Public
[root@jl Public]# ls
xxx
[root@jl Public]# mv xxx yyy #將xxx文件改名為yyy文件
[root@jl Public]# ls
yyy
6、tac:和cat用法一樣,只是將cat顯示內容由最后一行到第一行反向在屏幕上顯示出來
示例:
[root@localhost ~]# cat /etc/issue #用cat查看/etc/issue這個文件的內容
\S
Kernel \r on an \m
[root@jl Public]# tac /etc/issue #用tac查看/etc/issue的結果
Kernel \r on an \m
CentOS release 6.5 (Final)
7、file:查看文件類型
作用:通過探測文件內容來判斷文件類型
用法:file [選項]文件名
示例:
[root@jl Public]# file yyy #查看yyy文件的類型
yyy: ASCII text #yyy:是純文本文件
8、echo:顯示文本
作用:顯示文本內容
用法:echo [-neE] [字符串]
主要選項如下:
-n:不輸出行尾的換行符
-E:禁止對在STRINGs中的那些序列進行解釋
-e:允許對加反斜線轉義的字符進行解釋
\n:換行且光標移至行首
\t:插入TAB字符
二、bash的工作特性命令執行狀態返回值和命令行展開所涉及的內容及示例
1、命令執行狀態返回值:返回值用于判斷命令執行正確與否
成功:0
失敗:1-255之間的數字
示例:
[root@jl ~]# ls
anaconda-ks.cfg install.log install.log.syslog
[root@jl ~]# echo $?
0
[root@jl ~]# lsl
-bash: lsl: command not found
[root@jl ~]# echo $?
127
2、命令行展開
以bash能夠解釋的符號來代替命令中的一些重復字段,一定要用{}引起來。
示例:
[root@jl Public]# touch aa,bb,cc,dd #錯誤的展開方式
[root@jl Public]# ls
aa,bb,cc,dd yyy
[root@jl Public]# touch {aa,bb,cc,dd} #正確的展開方式
[root@jl Public]# ls
aa aa,bb,cc,dd bb cc dd yyy
三、請使用命令行展開功能完成以下練習
1、創建/tmp目錄下的:a_c,a_d,b_c,b_d
示例:
[root@jl tmp]# mkdir -p {a_{c,d},b_{c,d}} #創建題目所示目錄
[root@jl tmp]# ls
{ab}_{cd} a_d b_d orbit-gdm pulse-mVv73u248BxO
a_c b_c mkdir pulse-1WkG75eehMWV yum.log
2、創建/tmp目錄下的子目錄
示例:
[root@jl var]# mkdir -pv 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}}
mkdir: created directory `mylinux'
mkdir: created directory `mylinux/bin'
mkdir: created directory `mylinux/boot'
mkdir: created directory `mylinux/boot/grub'
mkdir: created directory `mylinux/dev'
mkdir: created directory `mylinux/etc'
mkdir: created directory `mylinux/etc/rc.d'
mkdir: created directory `mylinux/etc/rc.d/init.d'
mkdir: created directory `mylinux/etc/sysconfig'
mkdir: created directory `mylinux/etc/sysconfig/network-scripts'
mkdir: created directory `mylinux/lib'
mkdir: created directory `mylinux/lib/modules'
mkdir: created directory `mylinux/lib64'
mkdir: created directory `mylinux/proc'
mkdir: created directory `mylinux/sbin'
mkdir: created directory `mylinux/sys'
mkdir: created directory `mylinux/tmp'
mkdir: created directory `mylinux/usr'
mkdir: created directory `mylinux/usr/local'
mkdir: created directory `mylinux/usr/local/bin'
mkdir: created directory `mylinux/usr/local/sbin'
mkdir: created directory `mylinux/var'
mkdir: created directory `mylinux/var/lock'
mkdir: created directory `mylinux/var/log'
mkdir: created directory `mylinux/var/run'
四、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的 時間戳信息
在Linux文件管理中,文件除了自身數據之外,還有附屬信息,即文件的元數據;這個元數據用于記錄文件的許多信息,比如文件大小,屬主,屬組,修改日期等等。元數據并不包含在文件數據中,由系統維護,也就是包含在inode中。每個inode有一個唯一的整數編號表示(inode number)。
查看文件元數據信息:ls -l,stat
示例:
[root@jl var]# stat /mylinux
File: `/mylinux'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 802h/2050d Inode: 521573 Links: 14
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-11 11:50:39.155526394 -0500
Modify: 2016-12-11 11:49:08.483526598 -0500
Change: 2016-12-11 11:49:08.483526598 -0500
[root@jl var]# ls -l /mylinux
total 48
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 bin
drwxr-xr-x. 3 root root 4096 Dec 11 11:49 boot
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 dev
drwxr-xr-x. 4 root root 4096 Dec 11 11:49 etc
drwxr-xr-x. 3 root root 4096 Dec 11 11:49 lib
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 lib64
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 proc
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 sbin
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 sys
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 tmp
drwxr-xr-x. 3 root root 4096 Dec 11 11:49 usr
drwxr-xr-x. 5 root root 4096 Dec 11 11:49 var
修改文件的時間戳:
[root@jl ~]# touch [-acdmt] 文件
參數:
-a : 僅修改access time。
-c : 僅修改時間,而不建立文件。
-d : 后面可以接日期,也可以使用 –date="日期或時間"
-m : 僅修改mtime。
-t : 后面可以接時間,格式為 [YYMMDDhhmm]
五、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
指令:alias
設置指令的別名
語法:# alias name='command line'
參數:-p: 打印出現有的別名(唯一的參數)
若不加任何參數,則列出目前所有的別名設置
用法:# alias cp='cp -i'或alias l='ll'
這樣就可以用cp來代替cp -i,而且cp -i這條命令依舊有效
查看alias:
列出目前所有的別名設置。
# alias 或 # alias -p
查看具體一條指令的別名
# alias cp
別名永久化:
alias的作用僅在該次登入的操作,即輸入一次alias后,這個修改只在當前的Shell生效。如果重新開啟一個 Shell,或者重新登錄,則這些alias將無法使用。好在linux中提供alias永久化的方法:
<1>.若要每次登入就自動生效別名,則把別名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要讓每一位用戶都生效別名,則把別名加在/etc/bashrc最后面,然后# source /etc/bashrc
重新設置別名:
alias重置的方法與第一次設置的時候一樣
# alias cp='cp -i'
刪除別名:
格式:unalias name
# unalias cp
如何在命令中引用另一個命令的執行結果
命令是ficonfig eth0,變量是ip,則:
#!/bin/bash
ip=`ifconfig eth0`
echo $ip
這樣就把命令生成的字符串賦值給ip了,echo $ip,看到的就是命令執行的結果
六、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,中間出現至少一位數字(可以有其他字符)的文件或目錄
# ls –d /var/l*[0-9]*[[:lower:]]
七、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
# ls –d /etc/[0-9]*[^0-9]
八、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度任意字符的文件或目錄
# ls –d /etc/[^[:alpha:]][[:alpha:]]*
九、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
touch /tmp/tfile-$(date +"%F-%H-%M-%S")
十、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
cp -r /etc/p*[^0-9] /tmp/mytest1/
十一、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
cp -r /etc/*.d /tmp/mytest2/
十二、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
cp -r /etc/[lmn]*.conf /tmp/mytest3/
原創文章,作者:jindizang,如若轉載,請注明出處:http://www.www58058.com/63234
贊~寫的不錯~~排版上能注意下會更好~