天天看點

三、正常指令

三、 正常指令

基本介紹

[root@localhost ~]# 
		~:表示目前操作位置在使用者家目錄
		#:表示超級使用者登入,普通使用者登入時顯示為“$”
           
ll -i	(顯示結果)
	130574 		drwxr-xr-x.  	2	 	root	    root 	4.0K 	6月   6 12:17 	123
	inode号		權限級别		引用數	所有者	    所屬組	大小			時間			檔案名
           

引用計數:

  對于檔案:表示檔案硬連結數

  對于目錄:目錄下一級子目錄的個數

指令選項:用于調整指令功能

參數:是指令操作的對象,若省略,則代表預設。

目錄指令

cd		切換目錄	i顯示inode		h常用機關	a顯示所有	d目前目錄
pwd		顯示目前所在目錄的路徑
mkdir	建立目錄
rmdir	删除目錄
rm		删除目錄和檔案	-r遞歸	-f強制
tree	顯示目錄樹 -L 指定層數,-d 指定目錄 如:tree -L 2 -d /
           

檔案操作

1) touch	建立或修改時間
2) rm -rf	删除
	-r		遞歸,删除目錄
	-f		強制删除
3) cat		檢視内容,所有
	-n		列出行号
4) more		分屏顯示
	空格向下翻頁,b向上翻頁,q退出
5) less		分行顯示
6) head [] 	顯示檔案頭	預設顯示前10行
		-n 20 檔案名	顯示前20行
7) tail -n 	行數 檔案名	顯示檔案尾	預設顯示前10行
		-f	監聽檔案尾
           

檔案目錄指令

rm					        删除檔案或目錄
cp [] 源檔案 目标位置        複制 
	-r				        複制目錄 
	-p				帶屬性複制
	-d				連結複制
	-a相當于-rpd
mv				剪貼或改名
shell			指令解釋器
	内部指令:shell自帶,沒有明确的可執行檔案
	外部指令:type檢視,後期開發,有執行檔案
           

連結檔案(難點)

建立連結時一定要使用絕對路徑
ln	(link)
ln -s 實際檔案  軟連接配接檔案
ln -s /root/12  /tmp/	(軟連結)
ln  /root/12  /tmp/		(硬連結)
           

注意:删除軟連接配接 rm -rf abc/ 有“/”會把源檔案删除,是以rm -rf abc 則删除軟連接配接檔案 abc

硬連結:
源檔案和硬連結檔案擁有相同的inode号和blook塊,可以看成是同一個檔案。
	修改任意一個檔案,另一個内容改變,删除任意一個,另一個正常使用。
	除非兩個都删除,才不能通路。
	不能誇分區(防止inode号重複)
	不能連結目錄。(目錄下檔案可能太多)
	特征不夠明顯,很難判斷兩個是硬連結,不推薦使用。
           
軟連結:
軟連結有自己獨立的inode和blook,但blook不記錄實際資料,隻寫入源檔案名和inode号
	軟連結大小不随源檔案大小改變而改變
	軟連接配接是最大權限,但通路受源檔案權限限制
	修改任意一個,另一個也改變
	删除軟連結,源檔案無影響,删除源檔案,軟連結無效
	軟連結可以誇分區,可以連結目錄
	軟連結特征特征明顯,推薦使用。
           

常用快捷鍵

Tab			自動補全
	ctrl+l		清屏
	ctrl+u		從光标删除到行首
	ctrl+k		從光标删除到行尾
	ctrl+y		在粘貼回來
	ctrl+a		光标移到行頭
	ctrl+e		光标移到行尾
	ctrl+s		暫停螢幕
	ctrl+q		解除暫停螢幕
	ctrl+c		強制終止
	ctrl+z		放入背景
           

注:以“.”開頭的檔案,代表隐藏檔案(系統檔案,不要亂動)

alias	檢視系統别名(别名優先級高于指令)
	/root/.bashrc		環境變量設定檔案
	ps aux				檢視任務管理器
	kill				殺死程序
	操作時先看一下在那個目錄,盡量使用絕對路徑
	設定中文字型:LANG=zh_CN.UTF-8
           

權限

-rw-r--r--.
	drwxr-xr-x.
	第1位表示檔案類型
	其中		-	普通檔案
			d	目錄檔案
			l	連結檔案
			b	裝置塊檔案
			c	字元裝置檔案
			s	套接字
			p 	管道
	第2.3.4  位表示  u(所有者)rwx(讀寫執行)	權限
	第5.6.7  位表示  g(所屬組)rwx(讀寫執行)	權限
	第8.9.10位表示  o(其他人)rwx(讀寫執行)	權限
		r 4		w 2		x 1
	最後一位點(.)代表檔案受selinux保護
	chome(權限修改)
常用權限	644		标準檔案權限
			755		檔案:執行權限
					目錄:标準權限
			777		最大權限
使用者在自己的所屬組裡,所有者權限生效;在其他所屬組裡,所屬組權限生效。
chown	修改所有者
chgrn	修改所屬組
	-R	參數	對目錄及其内所有檔案都設定權限(遞歸設定)
	chown	u:g 或chown	u.g		(同時修改所有者和所屬組)
	chown	:g	修改所屬組
           

權限的意義(隻限制普通使用者)

對檔案:r:讀取内容	cat	more	head	tail
		w:編輯		vi	echo
		x:可執行
注:對上級目錄有權限,才能操作檔案資料(檔案本身權限受上級目錄的權限管理)
對目錄:r:可以查詢目錄下檔案名	ls
		w:修改目錄結構	删除、建立、更名、複制、剪貼
		x:可以進入目錄
最大權限:	檔案x最大
				目錄w最大
對于目錄426權限沒有意義,隻能是057,0最小權限,5标準權限,7最大權限
建立的檔案初始權限為666(umask為0000時)
建立的目錄初始權限為777(umask為0000時)
umask	(系統通過umask保證預設權限)/etc/profile
	超級使用者:0022
	普通使用者:0022或0002
           
建立檔案及目錄的全選計算
UID > 199	umask 002  
UID <= 199	umask 022  

rwx  rwx  rwx		777		目錄預設權限
---  -w-  -w-		022		umask
----------------------
rwx  r-x  r-x		755		實際權限

rw-  rw-  rw-		666		檔案預設權限
---  -w-  -w-		022		umask
----------------------
rw-  r--  r--		644		實際權限


rwx  rwx  rwx		777		目錄預設權限
---  -w-  rwx		027		umask
----------------------
rwx  r-x  ---		750		實際權限

rw-  rw-  rw-		666		檔案預設權限
---  -w-  rwx		027		umask
----------------------
rw-  r--  ---		640		實際權限
           

幫助檔案

--help			檢視指令的常見選項
man			檢視幫助檔案
	man 5 passwd 			檢視passwd檔案的幫助
	man 1 passwd 			檢視passwd指令的幫助
	man -f whatis			檢視指令的幫助級别
		man幫助級别
			1 - 檢視指令的幫助
			2 - 檢視可被核心調用的函數的幫助
			3 - 檢視函數和函數庫的幫助
			4 - 檢視特殊檔案的幫助(主要是/dev目錄下檔案)
			5 - 檢視配置檔案幫助
			6 - 檢視遊戲幫助
			7 - 檢視其他雜項幫助
			8 - 檢視系統管理者可用指令幫助
			9 - 檢視和核心相關檔案的幫助
 info		最詳細的幫助檔案(u進上層,n下一節,p上一節,q退出)
           

基本查找指令

which			查找指令的指令,能看到相關别名
whereis			查找指令的指令,看到幫助文檔的位置
locate			按照檔案名在特定資料庫查找
	updatedb	強制更新資料庫 	/var/lib/mlocate/mlocate.db		資料庫檔案
	vim /etc/updatedb.conf
		PRUNE_BIND_MOUNTS = "yes"		開啟搜尋限制
		PRUNEFS =						不被搜尋的檔案系統
		PRUNENAMES = 					不被搜尋的檔案類型
		PRUNEPATHS =					不被搜尋的路徑

find			搜尋指令(在系統中搜尋符合條件的檔案名。使用通配符完全比對)
	通配符	*	任意内容
			?	任意一個内容
			[]	中括号内任意一個内容,[abc][0-9][A-Z][A-Za-z]
			[^] 取反,除了[]内的内容
grep			查找字元串(在檔案中搜尋符合條件的字元串。正規表達式包含比對)
	表達式	*	前一個字元重複任意多次
			?	前一個字元重複0次或一次(需要egrep指令)
			[]	中括号内任意一個内容
			^	限制行首
			$	限制行尾
           

注:

/etc/profile(umask環境變量配置檔案)
	/var/lib/mlocate/mlocate.db(locate指令搜尋的背景資料庫)
	/etc/updatedb.conf(定義locate指令的配置檔案)
	最大權限有安全風險,要小心賦予。
	info(更詳細的幫助檔案)
           

find查找指令

find 位置 -name 檔案名
		-mtime		修改時間(modify)
		-atime		按通路時間(access)
		-ctime		狀态修改時間,即權限等(天)+4 查找4天前的,-4查找4天内的,4查找第四天當天
			 find / -ctime -4 
		-uid		數字(按ID查找)
		-gid		數字(按組ID查找)
		-user		使用者名(按屬主使用者名查找)
		-group		組名(按屬組名查找檔案)
		-nouser		查找沒有屬主的檔案
		-name		按檔案名查找
		-size		按大小,+50k:大于50k,-50k:小于50k,50k:等于50k
		-type 		按檔案類型查找,f:普通、d目錄、i:連結
	find /etc/  -name rpm -type d	查找/etc下rpm目錄
		-perm 	444 		按權限查找)
				+444	隻要有一個大于4即可
				-444	全小于4即可
		-inum       節點數 (按i節點查找)
		-iname		(按檔案名查找,不區分大小寫)
	在查找的結果中直接以指令操作
		find /tmp/ -mtime	+10 -exec rm -rf {} ;(類似于管道符号)
					-ok(使用時會詢問使用者是否)
邏輯連接配接符:   
		-a		(and 邏輯與)     
		-o   	(or  邏輯或)
		例:find /etc -size +1k -a -size -10k  
		在etc目錄下查找大于1k并且小于10k的檔案
grep 	-i "root" /etc/passwd	(按字元串root查找,i是忽略大小寫)
	-i	(忽略大小寫)
	-v	(反向選擇,邏輯非的意思)
	-o	(統計關鍵詞有多少行)
|管道符

	cat install.log | grep lib (在顯示檔案操作中,grep搜尋含有lib的行)
	第一次的結果會因管道符以文本流形式做為參數傳給指令2
	find /etc/ -name "passwd" |xargs ls -l (在/etc目錄中查找passwd檔案,并以長格式顯示)
	第一次的結果會因管道符以任務流形式做為參數傳給指令2
		|		隻接收正确輸出文本流  |&	接收正确和錯誤輸出的文本流
		|xargs	隻接收任務流
netstat		檢視系統網絡狀态
		-t		檢視tcp協定端口
		-u		檢視udp
		-l		監聽
		-n		以ip和端口号顯示
           

壓縮和解壓縮

1) zip壓縮
		zip	-r test.zip /test	壓縮(-r是壓縮目錄)
		unzip test.zip			解壓縮
2) gz壓縮,不會打包,不保留源檔案
		gzip 源檔案				壓縮
		gzip -r 原目錄 			(隻對目錄内檔案單獨壓縮)
		gzip -c 源檔案 > 壓縮包	保留源檔案壓縮
		gunzip壓縮包				解壓縮
		gzip -d 壓縮包			解壓縮
3) bz2 不能壓縮目錄
		bzip2	源檔案		(壓縮,-k保留源檔案)
		bzip2	-d 壓縮包	(解壓,-k保留壓縮包)
		bunzip2 壓縮包		(解壓,-k保留壓縮包)
4) tar打包,不壓縮
		tar -cvf  打包名 源檔案 	 	(打包)
		tar -xvf  檔案包名			(解包,-c打包,-x解包,-v顯示過程,-f指定打封包件名)
5) 同時壓縮打包
	gz	tar -zcvf 壓縮名 源檔案		(壓縮,-z,識别.gz格式)
		tar -zxvf 壓縮包名       		(解壓)
	bz2	tar -jcvf壓縮名 源檔案		(壓縮,-j,識别bz2格式)
		tar -jxvf 壓縮包名			(解壓)
6) 檢視不解包	tar -ztvf	(gz格式,-t,隻檢視,不解壓)
		tar -jtvf	(bz2格式)
7) 指定壓縮位置
		tar -jxvf root.tar.bz2 -C /tmp/
8) 指定檔案到指定位置解壓
		tar -xzv -C /tmp -f a.tar.gz 檔案名(寫用t檢視時顯示的有路徑路徑檔案名)
9) 壓縮指定路徑下的檔案到目前目錄
		tar -zcv -C /usr/local/src/ -f 123.tar.gz 123.txt
10) tar通用解壓
		tar	-xf[v] 檔案名	(解壓)-v顯示過程
           

常用網絡指令

w			查詢目前登入伺服器的所有使用者
 		18:15:08 up 15 min,  1 user,  load average: 0.00, 0.04, 0.05
		USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
		root     pts/0    10.10.10.1       18:15    0.00s  0.00s  0.00s w
		開機時間    登入時間     登入使用者數		 平均負載 1分鐘前 5分鐘前 15分鐘前
		使用者名  登陸中端  來源ip   登陸持續時間  使用者閑置時間  所有程序占用CPU時間 正在進行的操作
	who			查詢登入使用者
	last		列出登入系統相關資訊
	lastlog		顯示所有賬戶最後一次登入時間
	write		給線上使用者寫消息 (ctrl+d 儲存發送 weith root tty1)
	wall		對所有線上使用者說話
	mail		郵件  mail 收信,h 列出标題,q 退出
	ping		網絡測試(-c指定次數,-s 指定大小 <-s 65536 死亡之ping>)
	ifconfig	查詢本機ip
		ifconfig eth0 10.10.10.11 netmask 255.255.255.0 臨時配IP
		eth0:0  第一塊網卡的第一模拟網卡
	netstat		檢視網絡狀态 -an -tuln 
	telnet ip端口	測試端口是否正常連結
		ctrl+]---> quit   退出
	netstat	tlun	(檢視本機所有監聽端口)
		-t tcp -u udp -l 監聽 -n 以ip和端口号顯示
           

關機重新開機

關機
# sync		同步資料,強制把記憶體資料儲存到硬碟
	1) shutdown	-h	無特殊情況使用
	2) init 0		調用核心關機程式,不儲存資料
	3) halt			同上
	4) poweroff		相當于直接斷電
重新開機
	shutdown -r now
	reboot			會關閉服務
	init 6			相當于強制重新開機
netstat -an | grep ESTABLTSHED | wc-l
檢視端口并查找ESTABLTSHED關鍵字,然後計數
注:沒有所有者的檔案(隻有以下兩種是正常的)
	1) 外來檔案(優盤、CD光牒、硬碟、windows下的檔案)
	2) 核心産生的檔案(/proc  /sys)
/var/log/wtmp			系統登入資訊
/var/run/utmp			系統登入資訊
/var/spool/mail/root	郵件儲存位置
不建議定時重新開機(風險大)
           

挂載

/etc/fstab	自動挂載配置檔案,設定開機自動挂載
裝置不可設定開機自動挂載
使用UUID對于系統來說其唯一性會更好
mount -a	測自動挂載檔案(準确度不高,不建議使用)
裝置檔案名
CD光牒:	redhat 5以前:/dev/hdc
		redhat 6以後:/dev/sr0
U盤:和硬碟一樣,需查詢,用	fdisk -l
CD光牒挂載:mount -t iso9600 /dev/sr0     /mnt/cdrom(-t是指定檔案系統,可不寫)
解除安裝:umount /dev/sr0	或	umount /mnt/cdrom
彈出光驅:eject
U盤挂載:	mount -t vfat /dev/sdb1    /mnt/usb(vfat=FAT32,fat=FAT16)
		 	mount -o iocharset=utf8 /dev/sdb1   /mnt/usb/(指定中文編碼UTF-8挂載U盤)
	解除安裝:	umount /dev/sbb1 或 umount /mnt/usb/
鏡像檔案挂載:	mount -t iso9660 -o loop 鏡像檔案(*.iso)	挂載點
更改挂載類型:	mount -o remount,exec 	裝置名/挂載點(remount針對已挂載的)
				mount -o remount,rw  /	重新将根挂載為讀寫
	mount 	#檢視所有已挂載的裝置資訊
	mount -t fs	 裝置名(絕對路徑)	挂載點	(fs代表檔案系統)
Linux不識别NTFS檔案系統,隻識别FAT32及以下
終端界面識别中文:	
	①  安裝中文編碼和中文字型
	② 終端要能識别中文
           

驅動

Linux驅動在核心裡自動加載,無需手工安裝,特殊的需要手工安裝
1) 常用驅動直接放入核心,(必備硬體驅動)
2) 不太常用,絕大多數驅動,以子產品方式放入硬碟 /lib/modules/2.6.32-642.el6.x86_64/kernel
3) 以子產品方式儲存在硬碟的驅動,系統認為不常用,預設不安裝,若要安裝需重新編譯核心并加載(NTFS則如此)
4) Linux徹底不識别的驅動需要手工安裝,(需要廠商提供硬體驅動)
	注:
		目前系統字型庫		echo $LANG
		修改目前系統字型庫	LANG=zh_CN.UTF-8	中文
						LANG=en_US			英文
           

ls -l 樣式改變

在Linux中使用ll或者ls -l指令過程中,日期的顯示總是顯示英文日期,覺的很不爽,那麼怎麼設定顯示的格式是按照我們定義的呢?

1、臨時更改顯示樣式,當回話結束後恢複原來的樣式
export TIME_STYLE='+%Y-%m-%d %H:%M:%S'    # 直接在指令中執行即可
2、永久改變顯示樣式,更改後的效果會儲存下來
    修改/etc/profile檔案,在檔案内容末尾加入
    export TIME_STYLE='+%Y-%m-%d %H:%M:%S'
    執行如下指令,使你修改後的/etc/profile檔案配置内容生效
source /etc/profile
3、使用ls -l --time-style=full選項
4、檢視測試
[root@localhost opt]# ll
-rw-r--r-- 1 root root 204018162 2019-05-21 09:26:16 mongodb-3.2.3.tgz
-rw-r--r-- 1 root root 194869554 2019-05-21 09:26:17 zookeeper-3.4.8.tgz