1、顯示日期與時間的命令:date
2、顯示日歷的命令:cal
3、簡單好用的計算器:bc
4、熱鍵“命令補全或文件補齊”:Tab
5、熱鍵“中斷目前程序”:Ctrl+C
6、熱鍵“鍵盤輸入結束(End of File)相當與輸入exit”:Ctrl+D
7、在線求助:man 【command】或 info 【command】,按q退出
8、數據同步寫入磁盤:sync
9、關機命令:shutdown -h 【now | 10(分鍾) | 20:25】
10、重啟命令:reboot
11、改變文件所屬用戶組:chgrp
12、改變文件所有者:chown [-R] ‘groupname’ ‘dirname/filename’
chgrp -R usergroup /home/yang/a.txt
13、改變文件的屬性:chmod
chmod [-R] 帳號名稱 文件或目錄
chmod [-R] 帳號名稱:組名 文件或目錄
chmod yangyuqin:root /home/hadoop/bb.txt
14、改變權限:chmod
chmod [-R] xyz 文件或目錄
u,g,o表示user,group,other這3種身份的權限,a表示all,即全部的身份。+加入,-除去,=設置。r讀,w寫,x執行,4讀,2寫,1執行。
chmod 777 /home/hadoop/a.txt
chmod u+rwx,g+rx,o+r /home/hadoop/a.txt
15、目錄
1). 代表此層目錄
2)… 代表上一層目錄
3)- 代表前一個工作目錄
4)~ 代表“目前用戶身份”所在的主文件夾
5)~account 代表account這個用戶的主文件夾(account是個帳號名稱)
16、切換目錄:cd
cd 【相對路徑或絕對路徑】
17、顯示目前所在的目錄:pwd
pwd [-P]
-P 如果是連接文件,會不以連接文件的數據顯示,而是顯示正確的完整路徑,即獲取連接文件的真正路徑。
18、新建新目錄:mkdir
mkdir [-mp] 目錄名稱
-m : 配置文件的權限,mkdir -m 711 test1;
-p : 幫助你直接將所需要的目錄(包含上層目錄)遞歸創建起來,如果沒有這個參數,只能一層一層建立目錄,mkdir -p /home/a/b/c/d.
19、刪除“空”的目錄:rmdir
rmdir [-p] 目錄名稱
20、查看文件與目錄:ls
ls [-aAdfFhilnrRSt] 目錄名稱
ls [–color={never,auto,always}] 目錄名稱
ls [–full-time] 目錄名稱
-a:全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(
-d:僅列出目錄本身,而不是列出目錄內的文件數據(常用
-f:直接列出結果,而不進行排序(ls默認會以文件名排序)
-F:根據文件、目錄等信息給予附加數據結構,例如:*:代表可執行文件,/:代表目錄,=:代表socket文件,|:代表FIFO文件
-h:將文件容量以人類較易讀的方式(例如GB,KB等)列出來
-l:列出長數據串,包含文件的屬性與權限等數據(常用)
-r:將排序結果反向輸出,例如:原本文件名由小到大,反向則為由大到小
-R:連同子目錄內容一起列出來,等於該目錄下的所有文件都會顯示出來
-S:以文件容量大小排序,而不是用文件名排序
-t:依時間排序,而不是用文件名
–color=never:不要依據文件特性給予顏色顯示
–color=always:u顯示顏色
–color=auto:讓系統自行依據設置來判斷是否給予顏色
–full-time:以完整時間模式(包含年、月、日、時、分)輸出
–time={atime,ctime}:輸出訪問時間或改變權限屬性時間(ctime),而非內容更改時間(modification time)
21、復制文件或目錄:cp
cp [-adfilprsu] 源文件(source) 目標文件(destination)
cp [option] source1,source2,source3, … directory
-a:相當於-pdr 的意思
-d:若源文件為連接文件的屬性(link file),則復制連接文件屬性而非文件本身
-p:連同文件的屬性一起復制過去,而非使用默認屬性(備份常用)
-r:遞歸持續復制,用於目錄的復制行為(常用)
-i:若目標文件(destination)已經存在時, 在覆蓋時會先詢問操作的進行(常用)
-l:進行硬鏈接(hard link)的連接文件創建,而非復制文件本身
-s:復制成為符號鏈接文件(symbolic link),即“快捷方式”文件
-u:若destination 比source舊才更新destination
注意:如果源文件有兩個以上,則最后一個目的文件一定要是“目錄”才行
1
2
22、移除文件或目錄:rm
rm [-fir] 文件或目錄
-f:就是force的意思,忽略不存在的文件,不會出現警告信息
-i:互動模式,在刪除前會詢問用戶是否操作
-r:遞歸刪除。最常用在目錄的刪除。但是很危險!!!
23、移動文件或目錄,或更名:mv
mv [-fiu] source destination
mv [options] source1,source2,source3,…,directory
24、直接查看文件內容:cat(concatenate)
cat [-AbEnTv]
-A:相當於-vET的整合參數,可列出一些特殊字符,而不是空白而已
-n:打印出行號,連同空白行也會有行號,與-b的參數不同
-b:列出行號,僅針對非空白行做行號顯示,空白行不標行號
-E:將結尾的斷行字符$顯示出來
-T:將[Tab]按鍵以^I顯示出來
-v:列出一些看不出來的特殊字符
25:反向列示:tac
26、添加行號打印:nl
27、可翻頁查看(只向后):more,按q停止
28、可翻頁查看(可向前或向后):less,按q停止
29、取出前面幾行:head
head [-n number] 文件
head -n 20 /home/test
head -n -100 /home/test //不打印后面100行的數據,只是顯示前面的數據
30、取出后面幾行:tail
tail [-n number] 文件
tail -n 20 /home/test
tail -n +100 /home/test //只是列出100行以后的數據
31、文件時間:
1)modification time(mtime):當該文件的“內容數據”更改時,就會更新這個時間。內容數據指的是文件的內容,而不是文件的屬性或權限。
2)status time(ctime):當該文件的“狀態”(status)改變時,就會更新這個時間,舉例來說,像是權限與屬性被更改了,都會更新這個時間。
3)access time(atime):當“該文件的內容被取用”時,就會更新這個讀取時間(access)。舉例來說,我們使用cat去讀取文件的時候,就會更新該文件的atime。
32、修改文件時間或創建新文件:touch
33、查看文件類型:file
34、尋找“執行文件”:which
which [-a] command
-a:將所有由PATH目錄中可以找到的命令均列出,而不只第一個被找到的命令名稱
which ipconfig
which hadoop
35、從whereis數據庫文件中尋找特定的文件:whereis
whereis [-bmsu] 文件或目錄
-b:只找二進制格式的文件
-m:只找在說明文件manual路徑下的文件
-s:只找source源文件
-u:查找不在上述三個選項當中的其他特殊文件
whereis ifconfig
36、從以創建的數據庫/var/lib/mlocate/數據庫中尋找特定的文件:locate
locate [-ir] keyword
-i:忽略大小寫的差異
-r:后面可接正則表達式的顯示方式
locate passwd //從系統中找出與passwd相關的文件名
37、從文件系統尋找特定的文件:find
find [PATH] [option] [action]
參數:
1)與時間有關的參數:共有-atime、-ctime、-mtime,以-mtime說明
-mtime n:n為數字,意義為n天之前的“1天之內”被更改過的文件
-mtime +n:列出在n天之前(不含n天本身)被更改過的文件名
-mtime -n:列出在n天之內(含n天本身)被更改過的文件名
-newer file:file為一個存在的文件,列出比file還要新的文件名
find / -mtime 0 //將過去系統上24小時內有改動(mtime)的文件列出,數字0代表目前的時間,所以是從現在開始到24小時前
find / -mtime 3 //列出3天前的24小時內有改動的文件
find /etc -newer /etc/passwd //尋租/etc目錄下的文件,如果文件日期比/etc/passwd新的就列出來,可用於分辨兩個文件之間的新舊關系
2)與用戶或用戶組名有關的參數:
-uid n:n為數字,這個數字是用戶的帳號ID,即UID ,這個UID 是記錄在/etc/passwd里面與帳號名稱對應的數字
-gid n:n為數字,這個數字是用戶組名的ID,即GID,這個GID 記錄在/etc/group中
-user name:name為用戶帳號名稱,例如dmtsai
-group name:name為用戶組名,例如users
-nouser:尋找文件的所有者不存在/etc/passwd的人
-nogroup:尋找文件的所有用戶組不存在與/etc/group的人
find /home -user vbird //查找/home下面屬於bird用戶的文件,可將屬於某個用戶的所有文件都找出來
find / -nouser //查找系統中不屬於任何人的文件
3)與文件權限及名稱有關的參數:
-name filename:查找文件名為filename的文件
-size [±]SIZE:查找比SIZE 還要大(+)或小(-)的文件。這個SIZE的規格有:c:代表byte,k:代表1024bytes。所以,要找比50KB還要大的文件,就是“-size +50k”
-type TYPE:查找文件的類型為TYPE的,類型主要有:一般正規文件(f)、設備文件(b,c)、目錄(d)、連接文件(l)、socket(s)及FIFO§等屬性
-perm mode:查找文件權限"剛好等於"mode的文件,這個mode為類似chmod的屬性值,舉例來說,-rwxr-xr-x的屬性為0755
-perm -mode:查找文件權限“必須要全部包含mode的權限”的文件,舉例來說,我們要查找-rwxr–r–,即0744的文件,使用-perm -0744,當一個文件的權限為-rwxr-xr-x,即755時,也會被列出來,因為-rwxr-xr-x的屬性已經包括了-rwxr–r–的屬性 了
-perm +mode:查找文件權限“包含任一mode的權限”的我文件,舉例來說,我們查找-rwxr-xr-x,即-perm +0755,但一個文件是-rw-------也會被列出來,因為它有-rw…的屬性存在
find / -name passwd //找出文件名為passwd的這個文件
find /var -type s //找出/var目錄下文件類型為socket的文件名
find / -perm +0755 //查找文件當中含有-rwxr-xr-x中的任一屬性
4)其他可進行的操作:
-exec command:command為其他命令,-exec后面可再接其他的命令來處理查找到的結果
-print:將結果打印到屏幕上,這個操作是默認值
find /etc -name passwd -exec cat {} ; //將找到文件名為passwd的文件作為命令的輸入
38、列出文件系統的整體磁盤使用量:df
df [-ahikHTm] [目錄或文件名]
-a:列出所有的文件系統,包括系統特有的/proc等文件系統;
-k:以KB的容量顯示各文件系統
-m:以MB的容量顯示各文件系統
-h:以人們較易閱讀的GB、MB、KB等格式自行顯示
-H:以M=1000K 替代M=1024K 的進位方式
-T:連同該分區的文件系統名稱(例如ext3)也列出
-i:不用硬盤容量,而已inode的數量來顯示
df //將系統內所有的文件系統列出來,在Linux下如果df沒有加任何參數,那么默認會將系統內所有的(不含特殊內存內的文件系統與swap)都以1KB的容量列出來。
df -h //將容量結果以易讀的容量格式顯示出來
df -aT //將系統內所有的特殊文件格式及名稱都列出來
df -h /etc //將/etc下面的可用的磁盤容量以易讀的容量格式顯示,這樣就可以知道某個目錄下還有多少容量可以使用了
df -ih //將目前各個分區當中可用的inode數量列出來
39、評估文件系統的磁盤使用量(常用於評估目錄所占容量):du
du [-ahskm] 文件或目錄名稱
-a:列出所有的文件與目錄容量,因為默認僅統計目錄下面的文件量而已
-h:以人們較易讀的容量格式(G/M)顯示
-s:列出容量而已,而不列出每個各別的目錄占用容量
-S:不包含子目錄下的總計,與-s有點差別
-k:以KB列出容量顯示
-m:以MB列出容量顯示
du //列出當前目錄下的所有文件容量,但僅會顯示目錄容量(不含文件)
du -a //除了顯示目錄容量,還會顯示文件容量
du -sm ./* //檢查當前目錄下面每個目錄所占用的容量,可檢查某個目錄下那個子目錄占用最大的容量
40、連接文件:ln
1)硬連接或實際連接:hard link
ln /etc/crotab .
2)符號連接,也即是快捷方式:symbolic link
ln -s /etc/crotab1 crotab2
41、變量的顯示:echo
echo $PATH
echo helloworld
42、查看環境變量與常見環境變量說明:env
43、查看所有變量(含環境變量與自定義變量):set
44、查看歷史命令:history
45、提示符的設置:PS1
46、顯示結果的語系變量:locale
47、命令別名設置:alias
alias lm=‘ls -l | more’
48、管道命令:pipe
ls -al /etc | less
49、將同一行里面的數據進行分解,取出想要的數據:cut
cut -d’分隔字符’ -f fields //用於分隔字符
cut -c 字符范圍 //用於排列整齊的信息
-d:后面接分隔字符,與-f一起使用
-f:依據-d的分隔字符將一段信息切割成為數據,與-f取出第幾段的意思
-c:以字符(characters)的單位取出固定字符區間
echo $PATH | cut -d ‘:’ -f 5 //將PATH變量取出,以:為分割符,取出第五個路徑
echo $PATH | cut -d ‘:’ -f 3,5 //將PATH變量取出,以:為分割符,取出第3到第5個路徑
export | cut -c 12- //將export輸出的信息取得第12字符以后的所有字符串,但是在處理多空格相連的數據時會比較復雜
50、分析一行信息,若匹配想找的數據則將該行取出來:grep
grep [-acinv] [–color=auto] ‘查找字符串’ filename
-a:將binary文件以text文件的方法查找數據
-c:計算找到“查找字符串”的次數
-i:忽略大小寫的不同,所以大小寫視為相同
-n:順便輸出行號
-v:順便輸出行號
–color=auto:可以將找到的關鍵字部分加上顏色顯示
history | grep ‘ls’
51、排序命令:sort
sort [-fbMnrtuk] [file or stdin]
-f:忽略大小寫的差異,例如A與a視為編碼相同
-b:忽略最前面的空格符部分
-M:以月份的名字來排序,例如JAN,DEC等的排序方法
-n:使用“純數字”進行排序(默認是以文字類型來排序的)
-r:反向排序
-u:就是uniq,相同的數據中,僅出現一行代表
-t:分隔符,默認是用[Tab]鍵來分隔
-k:以那個區間(field)來進行排序的意思
cat /etc/passwd | sort
cat /etc/passwd | sort -t ‘:’ -k 3
52、排序完成但是將重復的數據僅列出一個顯示:uniq
uniq [-ic]
-i:忽略大小寫字符的不同
-c:進行計數
last | cut -d ’ ’ -f 1 | sort | uniq -c
53、統計文件的字、行、字符:wc
wc [-lwm]
-l:僅列出行
-w:僅列出多少字(英文單字)
-m:多少字符
cat /etc/man.config | wc //輸出三個數字分別為行、字數、字符數
54、數據的替換、刪除、新增、選取工具:sed
sed [-nefr] [動作]
1)參數:
-n:使用安靜(silent)模式。在一般sed的用法中,所有來自STDIN的數據一般都會被列出到屏幕上。但如果加上-n參數后,則只有經過sed特殊處理的那一行(或者操作)才會被列出來
-e:直接在命令模式上進行sed的動作編輯
-f:直接將sed的動作寫在一個文件內,-f filename則可以在filename內的sed動作
-r:sed的動作支持的是擴展型正則表達式的語法(默認是基礎正則表達式語法)
-i:直接修改讀取的文件內容,而不是由屏幕輸出
2)動作說明:[n1 [,n2]] function
n1,n2:不見得會存在,一般代表選擇進行動作的行數,舉例來說,如果我的動作是需要在10到20行之間進行的,則“10,20[動作行為]”
function常用的參數:
a:新增,a的后面可以接字符串,而這些字符串會在新的一行出現(目前的下一行)
c:整行替換,c的后面可以接字符串,這些字符串可以替換n1,n2之間的行
d:刪除,因為是刪除,所以d后面通常不接任何參數
i:插入,i的后面可以接字符串,而這些字符串會在新的一行出現(目前上一行)
p:打印,也就是將某個選擇的數據打印出來,通常p會與參數sed -n一起運行
s:部分替換,可以直接進行替換的工作,通常這個s的動作可以搭配正則表達式!例如1,20s/old/new/g
3)以行為單位的新增/刪除功能
nl /etc/passwd | sed ‘2,5d’ //將/etc/passwd的內容列出並且打印行號,同時,將第2~5行刪除
4)在第二行后面(即加在第3行)加上“drink tea?“字樣
nl /etc/passwd | sed ‘2a drink tea?’
5)在第二行前面(即加在第2行)插入“drink tea?“字樣
nl /etc/passwd | sed ‘2i drink tea?’
6)在第二行后面加入兩行字,例如"Drink tea or " 與"drink beer?"
-> nl /etc/passwd | sed '2a Drink tea or
-> dirnk beer? ’
7)以行為單位的替換與顯示功能
nl /etc/passwd | sed ‘2,5c No 2-5 number’ //將第2-5行的內容替換成為“No 2-5 number”
8)僅打印部分數據
nl /etc/passwd | sed -n ‘5,7p’ //-n表示只會打印處理后的數據,如果不加-n,那處理后的數據會打印兩次
9)部分數據的查找並替換的功能
sed ‘s/要被替換的字符串/新的字符串/g’
hadoop@hadoop-ThinkPad:~$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr b8:88:e3:3c:89:f9
inet addr:10.130.26.21 Bcast:10.130.26.127 Mask:255.255.255.128
inet6 addr: fe80::ba88:e3ff:fe3c:89f9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:143999 errors:0 dropped:1 overruns:0 frame:0
TX packets:88285 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:39104286 (39.1 MB) TX bytes:39602666 (39.6 MB)
1| sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g' //從ifconfig文件中抽取出本機的ip地址
2| cat /etc/man.config | grep 'MAN' | sed 's/#.*$//g' | sed '/^$/d'
55、數據處理工具:awk
sed常常作用於一整行的處理,awk則比較傾向於將一行分成數個“字段”來處理,awk相當適合處理小型的數據處理。
awk ‘條件類型1{動作1} 條件類型2{動作2} … ’ filename
awk 主要是處理每一行的字段內的數據,而默認的字段的分隔符為空格鍵或[tab]鍵
awk的處理流程是:
1)讀入第一行,並將第一行的數據填入$0,$1,$3等變量當中,$0代表一整行數據
2)依據條件類型的限制,判斷是否需要進行后面的動作
3)做完所有的動作與條件類型
4)所還有后續的“行”的數據,則重復上面1~3的步驟,直到所有的數據都讀完為止
awk的內置變量:
NF : 每一行($0)擁有的字段總數
NR : 目前awk所處理的是“第幾行”數據
FS : 目前的分隔字符,默認是空格鍵
awk運算符:
:大於 <:小於 >=:大於或等於 <=:小於或等於 :等於 !=:不等於
last -n 5 | awk ‘{print $1 “\t” $3}’ //打印第一列和第3列
last -n 5 | awk ‘{print $1 “\t lines: " NR “\t columes:” NF}’ //打印第一列,第幾行,每一行的列數
cat /etc/passwd | awk '{FS=”:"} $3 < 10 {print $1 “\t” KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 2: 3}̲’ //分隔為:,… cat pay.txt | awk 'NR1{printf “%10s %10s %10s %10s %10s\n”,$1,$2,$3,$4,“Total”}
NR>=2{total=$2+$3+$4
printf “%10s %10d %10d %10d %10.2f\n”,$1,$2,$3,$4,total}’
Name 1st 2nd 3th Total
VBird 23000 24000 25000 72000.00
DMTsai 21000 20000 23000 64000.00
Bird2 43000 42000 41000 126000.00
56、文件比較工具:diff
diff [-bBi] from-filr to-file
57、新增用戶:useradd
useradd [-u UID] [-g 初始化用戶組] [-G 次要用戶組] [-mM] [-c 說明欄] [-d 主文件夾絕對路徑] [-s shell] 用戶帳號名
useradd vbird1
useradd -u 123 -g users vbird2
58、設置密碼:passwd
passwd 123456
59、刪除用戶:userdel
userdel vbird1
60、新增用戶組:groupadd
groupadd [-g gid] [-r] 用戶組名
61、刪除用戶組:groupdel
groupdel [groupname]
62、切換身份:su
su [-lm] [-c 命令] [username]
- :單純使用 - 如“su - ”,代表使用login-shell的變量文件讀取方式來登錄系統,若用戶名稱沒有加上去,則代表切換為root身份
-l:與 - 類似,但后面需要加欲切換的用戶帳號,也是login-shell的方式
-m:-m與-p是一樣的,表示使用目前的環境設置,而不讀取新用戶的配置文件
-c:僅進行一次命令
63、切換到root身份:sudo
64、查看當前用戶的id:id
65、查看目前登錄在系統上的用戶:who或w
66、每個帳號的最近登錄時間:lastlog
67、直接將命令丟到后台中“執行”:&
tar -zvf /tmp/etc.tar.gz /etc &
68、將目前的工作丟到后台中“暫停‘:Ctrl+z
69、查看目前的后台工作狀態:jobs
jobs [-lrs]
-l:除了列出job number與命令串之外,同時列出PID的號碼
-r:僅列出正在后台run的工作
-s:僅列出正在后台當中暫停(stop)的工作
70、管理后台當中的工作:kill
kill -signal %jobnumber
kill -l //-l列出目前kill能夠使用的信號(signal)有哪些,signal代表給予后面接的那個工作什么樣的指示。
-1:重新讀取一次參數的配置文件(reload)
-2:代表與由鍵盤輸入[ctrl]-c同樣的操作;
-9:立即強制刪除一個工作
-15:以正常的程序方式終止一項工作,與-9不同
kill -9 %2; jobs
71、查看某個時間點的進行狀況:ps
ps aux //查看系統所有的進程數據
ps -lA //也是能夠查看所有系統的數據
ps axjf //連同部分進行樹狀態
-A:所有的進程均顯示出來,與-e具有相同的作用
-a:不與termial有關的所有進程
-u:有效用戶相關的進程
x:通常與a這個參數一起使用,可列出較完整的信息
輸出格式:
l:較長、較詳細地將該PID的信息列出
j:工作的格式(jobs format)
-f:做一個更為完整的輸出
1)僅查看自己的bash相關進程:ps -l
2)查看系統所有進程:ps aux
ps aux | grep ‘syslog’
72、查看內存使用情況:free
free [-b|-k|-m|-g] [-t]
-b:直接輸入free時,顯示的是KB ,我們可以使用b(bytes)、m(MB),k(KB)及g(GB)來顯示單位
-t:在輸出的最終結果中顯示物理內存與swap的總量
73、查看系統與內核相關信息:uname
uname [-asrmpi]
-a:所有系統相關的信息
74、查看系統啟動時間與工作負載:uptime
75、跟蹤網絡:netstat
76、查看網卡信息:ifconfig
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 //配置網卡ip地址
77、遠程登錄linux主機:ssh
ssh [-l login_name] [-p port] [user@]hostname
ssh 192.168.0.11
ssh -l root 192.168.0.11 或 ssh root@192.168.0.11 //指定用戶
ssh -l root -p 12333 216.230.230.114
78、遠程拷貝:scp
scp -r /home/administrator/test/ root@192.168.1.100:/root/ //拷貝本機/home/administrator/test整個目錄至遠程主機192.168.1.100的/root目錄下
scp /home/administrator/Desktop/old/driver/test/test.txt root@192.168.1.100:/root/ //拷貝單個文件至遠程主機
scp -r root@192.168.62.10:/root/ /home/administrator/Desktop/new/ //遠程文件/文件夾下載
79、查看服務:service
service --status-all
————————————————
版權聲明:本文為CSDN博主「睶先森」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Butterfly_resting/article/details/89668744