Linux命令、文件和目錄的常見用法
1、 Linux上的文件管理類命令有哪些,其常用的使用方法及其相關示例演示。
1.1、文件權限管理類命令
chown:改變文件所有者
chown [OPTINON]...[OWNRR][:[GROUP]] FILE...
常用參數 -R :遞歸修改(改目錄及改目錄中的目錄和文件)
示例:#chown -R root /tmp/ligang
# chown -R root:root /tmp/ligang
chown [OPTION]... --reference=RFILE FILE...
示例:# chmod --reference=/tmp/issue /tmp/fstab
chgrp:改變文件的所屬組
用法,參數與chown基本相同:
示例:# chgrp root /tmp/ligang
chmod:改變文件的權限,修改一類用戶的某位或某些位權限
chmod [OPTION]... MODE[,MODE]... FILE...
MODE:修改一類的權限
-u用戶、-g組、-o其他、-a全部、-R遞歸修改
示例:#chmod a=rwx /tmp/ligang
umask:文件或目錄創建時的遮罩碼(只對當前shell有效)
目錄用777-umask
文件用666-umask
注意:如果某類用戶的權限減得的結果中存在x權限,則其權限+1umask :查看
umask #:設定
1.2、文件處理工具
wc命令:統計單詞數,統計單詞數,行數,字節數
wc [OPTION]... [FILE]...
wc [OPTION]... --files0-from=F
-l:line 顯示行數
-w:words 單詞數
-c:characters 字節數
示例:wc /tmp/issue
1.3、文件基礎創建搜索等命令
常用基礎命令:cd、pwd、mkdir、touch
查看:cat,more,less,tail,head,tac
複製:cp
移動:mv
刪除:rm
創建:touch
元數據屬性:stat
查看內容類型:file
文件管理是考驗一個運維工程師最基本的職能之一、在linux中可以單獨對某個文件或者目錄進行管理,有很大的可控性及加密性,在LIUNX中對用戶的給予的文件管理權限比windows中方便許多及搜索方面可以單獨搜索每個文件及目錄的哪一快內容,但是在linux中文件的集中管理性可能就需要腳本及第三方軟件進行操作。
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
2.1命令執行完後,其狀態返回值保存於bash的特殊變量$?中。
bash通過狀態返回值來輸出此結果:
成功:0
失敗:1-255
注意,命令執行狀態返回值和命令的執行結果間的區別。如上圖,ls的執行結果是顯示當前目錄的文件名,緊接着執行echo命令用於顯示命令的執行狀態返回值,不管ls命令是否成功執行,其都會有相關數據顯示,但是命令執行狀態返回值卻是不同的。
bash的工作特性之命令行展開:
~:自動展開爲用戶的家目錄,或指定的用戶的家目錄。
{}:可承載一個以逗號分割的路徑列表,並能夠將其展開爲多個路徑。
3、請使用命令行張開功能來完成以下練習。
(1) 、創建/tmp目錄下的:a_c,a_d,b_c,b_d
mkdir -p {a,b}_{c,d}
(2) 、創建/tmp/mylinux目錄下的:
mylinux/
---bin
---boot
---grub
---dev
---etc
---rc.d
---init.d
---lib
---modvies
---lib64
---proc
---sbin
---sys
---tmp
---usr
---local
---bin
---sbin
---var
---lock
---log
---run
mkdir -pv /tmp/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
{}這個符號可以批量創建 -pv遞歸創建
4、文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息。
4.1、文件的元數據是指文件的屬性、大小、創建時間、訪問時間、屬主屬組等信息。
4.2、三個時間戳:
access time:訪問時間,簡寫atime,讀寫文件內容
modify time: 修改時間,mtime,改變文件內容(數據)
change time:改變時間,ctime,元數據發生改變
4.3、修改文件的時間戳:touch
-a:only atime
-m:only mtime
-s STAMP:[[CC]YY]MMDDhhmm[.ss]
-c:如果文件不存在,則不予創建
5、如何定義一個命令的別名,如何在命令中引用另一個命令執行的結果?
5.1、命令別名:alias
alias:顯示當前shell進程所有可用的命令別名
alias NAME="VALUE":命名別名
特別提醒:在命令行定義的別名,僅對當前shell進程生效,如果想永久生效,要進入配置文件中
僅對當前用戶:~/.bashrc
對所有生效:/etc/bashrc
5.2、使用管道命令 |
grep /etc/* | grep init* | grep initio*
注意:最後一個命令會在當前shell進程的子shell進程中執行
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
mkdir /var/1314hua
ls -d /var/1*[0-9]*[a-z]
7、顯示/etc/目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
mkdir /etc/250ligang
ls -d /etc/[0-9]*[^0-9]
8、顯示/etc/目錄下,以非字母開頭,後面跟了一個字母以及其他任意長度任意字符的文件或目錄。
mkdir /etc/123abcla
ls -d /etc/[^a-z]*[^a-z][a-z]
9、在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch /tmp/'echo tfile-$(date +%Y-%m-%d-%H-%M-%S)'
ls /tmp
10、複製/etc/目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
mkdir /tmp/mytest1
cp -a /etc/p*[^0-9] /tmp/mytest1
ls /tmp/mytest1
11、輔助/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
mkdir /tmp/mytest2
cp -a /etc/*.d /tmp/mytest2
ls /tmp/mytest2
12、複製/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
mkdir /tmp/mytest3
cp -a /etc/{1,m,n}*.conf /tmp/mytest3
ls /tmp/mytest3