1. 程式人生 > >#Linux和git中簡單的小問題

#Linux和git中簡單的小問題

linux中:

1. 進入資料夾的命令

cd 資料夾名
(當該資料夾名稱中帶有空格時,應該用雙引號將資料夾名稱括起來,不然系統會將其當成多個cd的引數而報錯,或按Tab鍵自動補全)

2.檢視本檔案下面的所有有檔案資訊

ls -al 即可
du常用的選項:
  -h:以人類可讀的方式顯示
  -a:顯示目錄佔用的磁碟空間大小,還要顯示其下目錄和檔案佔用磁碟空間的大小
  -s:顯示目錄佔用的磁碟空間大小,不要顯示其下子目錄和檔案佔用的磁碟空間大小
  -c:顯示幾個目錄或檔案佔用的磁碟空間大小,還要統計它們的總和
ls常用
	-a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
	-A:顯示除影藏檔案“.”和“..”以外的所有檔案列表;
	-C:多列顯示輸出結果。這是預設選項;
	-l:與“-C”選項功能相反,所有輸出資訊用單列格式輸出,不輸出為多列;
	-F:在每個輸出項後追加檔案的型別識別符號,具體含義:“*”表示具有可執行許可權的普通檔案,“/”表示目錄,“@”表示符號連結,“|”表示命令管道FIFO,“=”表示sockets套接字。當檔案為普通檔案時,不輸出任何識別符號;
	-b:將檔案中的不可輸出的字元以反斜線“”加字元編碼的方式輸出;
	-c:與“-lt”選項連用時,按照檔案狀態時間排序輸出目錄內容,排序的依據是檔案的索引節點中的ctime欄位。與“-l”選項連用時,則排序的一句是檔案的狀態改變時間;
	-d:僅顯示目錄名,而不顯示目錄下的內容列表。顯示符號連結檔案本身,而不顯示其所指向的目錄列表;
	-f:此引數的效果和同時指定“aU”引數相同,並關閉“lst”引數的效果;
	-i:顯示檔案索引節點號(inode)。一個索引節點代表一個檔案;
	--file-type:與“-F”選項的功能相同,但是不顯示“*”;
	-k:以KB(千位元組)為單位顯示檔案大小;
	-l:以長格式顯示目錄下的內容列表。輸出的資訊從左到右依次包括檔名,檔案型別、許可權模式、硬連線數、所有者、組、檔案大小和檔案的最後修改時間等;
	-m:用“,”號區隔每個檔案和目錄的名稱;
	-n:以使用者識別碼和群組識別碼替代其名稱;
	-r:以檔名反序排列並輸出目錄內容列表;
	-s:顯示檔案和目錄的大小,以區塊為單位;
	-t:用檔案和目錄的更改時間排序;
	-L:如果遇到性質為符號連結的檔案或目錄,直接列出該連結所指向的原始檔案或目錄;
	-R:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理;
	--full-time:列出完整的日期與時間;
	--color[=WHEN]:使用不同的顏色高亮顯示不同型別的。

3.檢視文字資訊

less [選項] 文字					#該命令通常用於檢視的內容不多的文字檔案,長檔案會因為滾動太快無法閱讀。
vim [選項]  文字                                 #通過編輯器進行檢視
cat [選項] 文字				#該命令通常用於檢視的內容不多的文字檔案,長檔案會因為滾動太快無法閱讀。
more [選項] 檔名 	    #該命令一次顯示一屏文字,顯示滿之後,停下來,並在終端底部打印出- – More- – ,
						#若要繼續顯示,按回車或空格鍵即可。 若要繼續顯示,按回車或空格鍵即可。  
 						#該命令有一個常用選項 -p ,作用是顯示下一屏之前先清屏。
head -n  檔名    #文字前n行
tail -n  檔名        #文字後n行   tail -f 動態檢視檔案
less    與more命令類似,但可以通過翻頁鍵檢視上下頁的內容
	-b<緩衝區大小> 設定緩衝區的大小
	-e 當檔案顯示結束後,自動離開
	-f 強迫開啟特殊檔案,例如外圍裝置代號、目錄和二進位制檔案
	-g 只標誌最後搜尋的關鍵詞
	-i 忽略搜尋時的大小寫
	-m 顯示類似more命令的百分比
	-N 顯示每行的行號
	-o<檔名> 將less 輸出的內容在指定檔案中儲存起來
	-Q 不使用警告音
	-s 顯示連續空行為一行
	-S 行過長時間將超出部分捨棄
	-x<數字> 將“tab”鍵顯示為規定的數字空格
more 命令引數:
	+n  從笫n行開始顯示
	-n  定義螢幕大小為n行
	-c  從頂部清屏,然後顯示
	-d  提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,禁用響鈴功能
	-l  略Ctrl+l(換頁)字元
	-p  通過清除視窗而不是滾屏來對檔案進行換頁,與-c選項相似
	-s  把連續的多個空行顯示為一行
	-u  把檔案內容中的下畫線去掉
	+/pattern 在每個檔案顯示前搜尋該字串(
pattern),然後從該字串前兩行之後開始顯示 more常用操作命令: Enter 向下n行,需要定義。預設為1行 Ctrl+F 向下滾動一屏 空格鍵 向下滾動一屏 Ctrl+B 返回上一屏 = 輸出當前行的行號 :f 輸出檔名和當前行的行號 V 呼叫vi編輯器 !命令 呼叫Shell,並執行命令 q 退出more
cat 命令
	1.一次顯示整個檔案。
	$ cat   filename
	2.從鍵盤建立一個檔案。
	$ cat  >  filename
	只能建立新檔案,不能編輯已有檔案.
	3.將幾個檔案合併為一個檔案。
	$cat   file1   file2  > file
	cat具體命令格式為 : cat [-AbeEnstTuv] [--help] [--version] fileName
	說明:把檔案串連線後傳到基本輸出(螢幕或加 > fileName 到另一個檔案)
	引數:
	-n 或 –number 由 1 開始對所有輸出的行數編號
	-b 或 –number-nonblank 和 -n 相似,只不過對於空白行不編號
	-s 或 –squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行
	-v 或 –show-nonprinting

4.動態檢視文字前十行內容

tail -f
tail 引數
	-b Number 從 Number 變量表示的 512 位元組塊位置開始讀取指定檔案。 
	-c Number 從 Number 變量表示的位元組位置開始讀取指定檔案。 
	-f 如果輸入檔案是常規檔案或如果 File 引數指定 FIFO(先進先出),那麼 tail 命令不會在複製了輸入檔案的最後的指定單元后終止,而是繼續從輸入檔案讀取和複製額外的單元(當這些單元可用時)。如果沒有指定 File 引數,並且標準輸入是管道,則會忽略 -f 標誌。tail -f 命令可用於監視另一個程序正在寫入的檔案的增長。 
	-k Number 從 Number 變量表示的1KB 塊位置開始讀取指定檔案。 
	-m Number 從 Number 變量表示的多位元組字元位置開始讀取指定檔案。使用該標誌提供在單位元組和雙位元組字元程式碼集環境中的一致結果。 
	-n Number 從首行或末行位置來讀取指定檔案,位置由 Number 變數的符號(+ 或 - 或無)表示,並通過行號 Number 進行位移。 
	-r 從檔案末尾以逆序方式顯示輸出。-r 標誌的預設值是以逆序方式顯示整個檔案。-r 標誌只有與 -n 標誌一起時才有效。否則,就會將其忽略。

5.遞迴的複製一個資料夾中的所有以log結尾的檔案或者資料夾

find good -name "*.py" -exec cp  {} te \;           #複製一個資料夾中的所有以log結尾的檔案或者資料夾到指定資料夾
													#good 和 te 是在同一個檔案下的,可以根據需要跟換絕對路徑
find good -name "*.py" -exec cp  {} ./ \;          #複製到當前檔案
find   path  -option  【 -print 】  【 -exec   -ok   |xargs  |grep  】 【  command  {} \;  】
	1)path:要查詢的目錄路徑。 
	
	      ~ 表示$HOME目錄
	       . 表示當前目錄
	       / 表示根目錄 
	2)print:表示將結果輸出到標準輸出。 
	
	3)exec:對匹配的檔案執行該引數所給出的shell命令。 
	      形式為command {} \;,注意{}與\;之間有空格 
	
	4)ok:與exec作用相同,
	      區別在於,在執行命令之前,都會給出提示,讓使用者確認是否執行 
	
	5)|xargs  與exec作用相同 ,起承接作用
	
	區別在於 |xargs 主要用於承接刪除操作 ,而 -exec 都可用 如複製、移動、重新命名等
	
	6)options :表示查詢方式
	
	options常用的有下選項:
	
		-name   filename               #查詢名為filename的檔案
		-perm                                #按執行許可權來查詢
		-user    username             #按檔案屬主來查詢
		-group groupname            #按組來查詢
		-mtime   -n +n                   #按檔案更改時間來查詢檔案,-n指n天以內,+n指n天以前
		-atime    -n +n                   #按檔案訪問時間來查詢檔案,-n指n天以內,+n指n天以前
		-ctime    -n +n                  #按檔案建立時間來查詢檔案,-n指n天以內,+n指n天以前
		-nogroup                          #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在
		-nouser                            #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存
		-type    b/d/c/p/l/f             #查是塊裝置、目錄、字元裝置、管道、符號連結、普通檔案
		-size      n[c]                    #查長度為n塊[或n位元組]的檔案
		-mount                            #查檔案時不跨越檔案系統mount點
		-follow                            #如果遇到符號連結檔案,就跟蹤連結所指的檔案
		-prune                            #忽略某個目錄
  find <dir> -name <expression> -exec <command> {} \;

 

       dir :檢索路徑

       expression: 表示式(通用模式,不是正則表示式)

       command: 二級命令

       {} : 表示find 每檢索出來一條的替代符號,(固定格式)

       \;  (固定格式)

       另:{} \; 這兩個固定格式之間是有空格的

例項轉:https://blog.csdn.net/l_liangkk/article/details/81294260
6.更改檔案的所有者

chown [-R] 所有者名稱 檔案或者目錄

-R: 進行遞迴的持續更改。也即連同子目錄下的所有檔案目錄都更新成為這個使用者組之意,常常用在更改某一目錄內所有的檔案情況

7.SHH登入 192.168.2.1埠號為9000的root使用者的機器

ssh [email protected] 192.168.2.1 -p 9000 
預設使用當前系統使用者 登入:ssh 【IP地址】 
例子:ssh 192.168.249.133 

指定 使用者 登入:ssh 【使用者名稱】@【IP地址】 
例子:ssh [email protected] 

指定 埠號 登入:ssh 【使用者名稱】 @【IP地址】 -p 【埠號】 
例子:ssh [email protected] -p 22 

祕鑰生成 ssh-keygen –t rsa
[[email protected] ~]# ssh-keygen -t rsa       <== 建立金鑰對,-t代表型別,有RSA和DSA兩種
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   <==金鑰檔案預設存放位置,按Enter即可
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):     <== 輸入金鑰鎖碼,或直接按 Enter 留空
Enter same passphrase again:     <== 再輸入一遍金鑰鎖碼
Your identification has been saved in /root/.ssh/id_rsa.    <== 生成的私鑰
Your public key has been saved in /root/.ssh/id_rsa.pub.    <== 生成的公鑰

 root 使用者的目錄中生成了一個 .ssh 的隱藏目錄,內含兩個金鑰檔案,其中id_rsa 為私鑰,id_rsa.pub 為公鑰。

8.解壓一個壓縮包到當前目錄中

tar -zxvf 壓縮包名
tar 命令詳解
  -c: 建立壓縮檔案
  -x:解壓
  -t:檢視內容
  -r:向壓縮歸檔檔案末尾追加檔案
  -u:更新原壓縮包中的檔案
  這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的引數是根據需要在壓縮或解壓檔案時可選的。
  -c: 建立壓縮檔案
  -x:解壓
  -t:檢視內容
  -r:向壓縮歸檔檔案末尾追加檔案
  -u:更新原壓縮包中的檔案
  下面的引數-f是必須的
  -f: 使用檔案名字,切記,這個引數是最後一個引數,後面只能接檔案名。
  
 1、*.tar 用 tar –xvf 解壓
 2、*.gz 用 gzip -d或者gunzip 解壓
 3、*.tar.gz和*.tgz 用 tar –xzf 解壓
 4、*.bz2 用 bzip2 -d或者用bunzip2 解壓
 5、*.tar.bz2用tar –xjf 解壓
 6、*.Z 用 uncompress 解壓
 7、*.tar.Z 用tar –xZf 解壓
 8、*.rar 用 unrar e解壓
 9、*.zip 用 unzip 解壓

9.給某個檔案加上寫許可權

chmod  a+w 檔名              #所有人使用者(包括u g o)
chmod  u+w 檔名			  #檔案擁有者
chmod  g+w 檔名			  #使用者組
chmod  0+w 檔名			#其他使用者
chmod
	u 表示該檔案的擁有者[user],
	g 表示與該檔案的擁有者屬於組(group),
	o 表示其他使用者[other],
	a 表示這三者皆是[all](常用)
	+ 表示增加許可權(常用)
	- 表示取消許可權(常用)
	= 表示唯一設定許可權。
	
	r 表示有可讀取的許可權,
	w 表示有可寫入的許可權,
	x 表示有可執行的許可權,
	X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。

  -c : 若該檔案許可權確實已經更改,才顯示其更改動作
  -f : 若該檔案許可權無法被更改也不要顯示錯誤訊息
  -v : 顯示許可權變更的詳細資料
        -R : 對目前目錄下的所有檔案與子目錄進行相同的許可權變更  (常用)
        --help : 顯示幫助
        --version : 顯示版本

        r=4,
        w=2,
        x=1
  rwx屬性則4+2+1=7;
     rw-屬性則4+2=6;
  r-x屬性則4+1=5

10.檢視網路狀態

ifconfig	#檢視網路配適器
netstat   #顯示網路各種情況的命令
ping      #檢視網路連線狀態
ifconfig的輸出內容
		1. Link encap ←
		2. HWaddr ←MAC地址
		3.inet addr ←IP地址(IPV4)
		4. Bcast ←廣播地址
		5. Mask ←衍碼
		6. inet6 addr ←IP地址(IPV6)
		7. UP ←啟動中
		8. BROADCAST ←廣播地址有效
		9. RUNNING ←動作
	   10. MTU ←網路介面的MTU(MaximumTransfer Unit:Ethernet最大傳送frame值)
	   11. Metric ←
	   12. RX packets ←受信包數
	   13. TX packets ←送信包數
	   14. collisions ←
	   15. interrupt ←IRQ號碼
	   16. Baseaddress ←I/O地址
	   17. 還可以up(開啟)和down(關閉)某個網路介面(網絡卡)
netstat 主要的選項:
	-a 顯示所有socket,包括正在監聽的。
	-c 每隔1秒就重新顯示一遍,直到使用者中斷它。
	-i 顯示所有網路介面的資訊,格式同“ipconfig -e”。
	-n 以網路IP地址代替名稱,顯示出網路連線情形。
	-r 顯示核心路由表,格式同“route -e”。
	-t 顯示TCP協議的連線情況。
	-u 顯示UDP協議的連線情況。
	-v 顯示正在進行的工作。
Ping命令的主要選項如下:
	-c 數目在傳送指定數目的包後停止。
	-d 設定SO_DEBUG的選項。
	-f 大量且快速地送網路封包給一臺機器,看它的迴應。
	-I 秒數設定間隔幾秒送一個網路封包給一臺機器,預設值是一秒送一次。
	-l 次數在指定次數內,以最快的方式送封包資料到指定機器(只有超級使用者可以使用此選項)。
	-q 不顯示任何傳送封包的資訊,只顯示最後的結果。
	-r 不經由閘道器而直接送封包到一臺機器,通常是檢視本機的網路介面是否有問題。
	-s 位元組數指定傳送的資料位元組數,預設值是56,加上8位元組的ICMP頭,一共是64ICMP資料位元組。

11.如何終止程序

kill 程序號
僅動態檢視某個程序的狀態
	top			#檢視動態程序
  	 top -p 23539     #其中23539是程序號\

  ps :靜態檢視程序的統計資訊;
		a:顯示終端下所有程序資訊,包括其他使用者的程序
		u:顯示程序的擁有者
		x:顯示當前使用者所在終端下的程序資訊,和a一起用,顯示所有程序
		-e:顯示系統內所有程序資訊
		-l:長格式顯示
		-f:完整的格式顯示
		
ps -aux 顯示結果:
USER(擁有者 )       PID(程序號)    %CPU  (佔用cpu百分比)   %MEM (佔用記憶體百分比) 
 VSZ  (佔用的虛擬記憶體的大小)      RSS(駐留記憶體大小) TTY( 終端)     STAT(程序狀態) START(開始時間)  
 TIME( 執行時間) COMMAND(命令)

STAT:程序狀態
	R:該程序正在執行
	S:休眠程序
	Z:殭屍程序,實際上該程序已經終止,但是它的父程序卻無法正常終止它,造成殭屍程序的狀態
	T:該程序正在跟蹤或者已經停止

12.搜尋Python程序的程序號

ps -ef | grep python
pidof python   #pidof 用於查詢正在執行的程式的程序 ID  第一串數字為程序號

ps [選項]
	下面對命令選項進行說明:
	-e 顯示所有程序。
	-f 全格式。
	-h 不顯示標題。
	-l 長格式。
	-w 寬輸出。
	a 顯示終端上的所有程序,包括其他使用者的程序。
	r 只顯示正在執行的程序。
	u  以使用者為主的格式來顯示程式狀況。
	x 顯示所有程式,不以終端機來區分。

grep [options][options]主要引數:
	-c:只輸出匹配行的計數。
	-I:不區分大 小寫(只適用於單字元)。
	-h:查詢多檔案時不顯示檔名。
	-l:查詢多檔案時只輸出包含匹配字元的檔名。
	-n:顯示匹配行及 行號。
	-s:不顯示不存在或無匹配文字的錯誤資訊。
	-v:顯示不包含匹配文字的所有行。
	
pidof 
	-s 表示只返回1個 pid
	-x 表示同時返回執行給定程式的 shell 的 pid
	-o 表示告訴 piod 表示忽略後面給定的 pid ,可以使用多個 -o 。

13.檢視當前使用者名稱稱

w
who
whoami 
管理使用者組(group)的工具或命令;
	groupadd 注:新增使用者組;
	groupdel 注:刪除使用者組;	
	groupmod 注:修改使用者組資訊	
	groups 注:顯示使用者所屬的使用者組
	
系統中使用者的檢視
	id       	##檢視指定使用者id資訊
	id [引數]
		-u	      ##檢視使用者的uid
		-g	      ##檢視使用者的gid
		-G	      ##檢視使用者所在的所有組的id
		-n	      ##顯示名字而不顯示id數字
		
su - 使用者名稱稱			#切換使用者
	su - 中 “-” 標示在使用者身份切換時同時切換當前使用者的環境
	su - 執行時高階使用者切換到低階使用者不需要密碼,低階使用者切換到高階需要,平級使用者切換切換也需要
	注意:每次su切換到其他使用者操作之後必須退出,然後再次切換到其他使用者
1.使用者的建立
useradd	          ##建立使用者的,建立使用者時,讀取/etc/login.defs 檔案內容確定規則

useradd -u 6666 westos	   	##指定使用者uid為6666
useradd -g 2018	westos	    ##指定使用者初始組id,“2018使用者組必須是存在的”
useradd -G 2018	westos	    	##指定使用者的附加組id “2018使用者組必須存在”
useradd -c “hello” westos	    ##指定使用者的說明
useradd -d /home/lee westos	  ##指定使用者的家目錄
useradd -s /bin/sh westos	   ##指定使用者的預設shell
注意:
可用watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -l /home'命令來監控使用者的屬性資訊


2.使用者的刪除
userdel
userdel shr	  ##刪除使用者但不刪除使用者的配置檔案
userdel -r shr	  ##刪除使用者並刪除使用者的配置檔案

3.更改使用者資訊
usermod
usermod -l 新名稱	westos	     ##更改使用者的名稱
usermod -u 6666	westos	     ##更改使用者uid
usermod -g 24	westos	     	 ##更改使用者的初始組
usermod -G 5555	westos	      ##更改使用者的附加組
usermod -aG 66	westos	     ##新增使用者的附加組
usermod -G “”	westos	      ##刪除使用者所有附加組的身份
usermod -c “hahahah”	westos	  	##指定使用者說明文字
usermod -d /home/lee	westos	   ##更改使用者家目錄的指向
usermod -md /home/lee	westos	  	##更改使用者家目錄
usermod -s /bin/sh	westos	    ##更改使用者的shell
usermod -L westos	      ##凍結使用者
usermod -U	westos	      ##解鎖使用者

14.檢視使用者的身份,所屬組等資訊

id
cat /etc/passwd  #進入檔案中檢視 所有檔案使用者的資訊
cat /etc/group  #進入檔案中檢視 檢視使用者組

未完。。。。待續