管道符「|」將兩個命令隔開,左邊命令的輸出做爲右邊命令的輸入。連續使用管道意味着第一個命令的輸出會做爲 第二個命令的輸入,第二個命令的輸出又會做爲第三個命令的輸入,依此類推php
用於查找文件
會在環境變量$PATH設置的目錄裏查找符合條件的文件。前端
which [文件...]複製代碼
-n<文件名長度> 指定文件名長度,指定的長度必須大於或等於全部文件中最長的文件名。
-p<文件名長度> 與-n參數相同,但此處的<文件名長度>包括了文件的路徑。
-w 指定輸出時欄位的寬度。
-V 顯示版本信息。複製代碼
使用指令"which"查看指令"bash"的絕對路徑,輸入以下命令:java
上面的指令執行後,輸出信息以下所示:node
複製文件或目錄
cp [options] source dest
cp [options] source... directory
-a:此選項一般在複製目錄時使用,它保留連接、文件屬性,並複製目錄下的全部內容。其做用等於dpR參數組合。
-d:複製時保留連接。這裏所說的連接至關於Windows系統中的快捷方式。
-f:覆蓋已經存在的目標文件而不給出提示。
-i:與-f選項相反,在覆蓋目標文件以前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。
-p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。
-r:若給出的源文件是一個目錄文件,此時將複製該目錄下全部的子目錄和文件
-l:不復制文件,只是生成連接文件。
使用指令"cp"將當前目錄"test/"下的全部文件複製到新目錄"newtest"下
$ cp –r test/ newtest
mysql
文件調用權限三級 : 文件擁有者、羣組、其餘
利用 chmod 控制文件如何被他人所調用。linux
chmod也能夠用數字來表示權限如 :
chmod abc file
其中a,b,c各爲一個數字,分別表示User、Group、及Other的權限。ios
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5。
將文件 file1.txt 設爲全部人皆可讀取 :sql
chmod ugo+r file1.txt
將文件 file1.txt 設爲全部人皆可讀取
chmod a+r file1.txt
將文件 file1.txt 與 file2.txt 設爲該文件擁有者,與其所屬同一個羣體者可寫入,但其餘之外的人則不可寫入 :
chmod ug+w,o-w file1.txt file2.txt
將 ex1.py 設定爲只有該文件擁有者能夠執行
chmod u+x ex1.py
將目前目錄下的全部文件與子目錄皆設爲任何人可讀取
chmod -R a+r *
此外chmod也能夠用數字來表示權限如 :
chmod 777 file
語法爲:
chmod abc file
其中a,b,c各爲一個數字,分別表示User、Group、及Other的權限。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5。
chmod a=rwx file
和
chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
chmod 771 file複製代碼
功能:鏈接文件並打印到標準輸出設備
cat [-AbeEnstTuv] [--help] [--version] fileName
-n 或 --number:由 1 開始對全部輸出的行數編號
-b 或 --number-nonblank:和 -n 類似,只不過對於空白行不編號shell
實例:
把 textfile1 的文檔內容加上行號後輸入 textfile2 這個文檔裏:
cat -n textfile1 > textfile2
vim
把 textfile1 和 textfile2 的文檔內容加上行號(空白行不加)以後將內容附加到 textfile3 文檔裏:
cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文檔內容:
cat /dev/null > /etc/test.txt
cat 也能夠用來製做鏡像文件。例如要製做軟盤的鏡像文件,將軟盤放好後輸入:
cat /dev/fd0 > OUTFILE
相反的,若是想把 image file 寫到軟盤,輸入:
cat IMG_FILE > /dev/fd0
相似 cat
,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,並且還有搜尋字串的功能(與 vi 類似),使用中的說明文件,請按 h
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
-num 一次顯示的行數
-d 提示使用者,在畫面下方顯示 [Press space to continue, 'q' to quit.] ,若是使用者按錯鍵,則會顯示 [Press 'h' for instructions.] 而不是 '嗶' 聲
-l 取消碰見特殊字元 ^L(送紙字元)時會暫停的功能
-f 計算行數時,以實際上的行數,而非自動換行事後的行數(有些單行字數太長的會被擴展爲兩行或兩行以上)
-p 不以捲動的方式顯示每一頁,而是先清除螢幕後再顯示內容
-c 跟 -p 類似,不一樣的是先顯示內容再清除其餘舊資料
-s 當遇到有連續兩行以上的空白行,就代換爲一行的空白行
-u 不顯示下引號 (根據環境變數 TERM 指定的 terminal 而有所不一樣)
+/pattern 在每一個文檔顯示前搜尋該字串(pattern),而後從該字串以後開始顯示
+num 從第 num 行開始顯示
fileNames 欲顯示內容的文檔,可爲複數個數
逐頁顯示 testfile 文檔內容,若有連續兩行以上空白行則以一行空白行顯示。
more -s testfile
從第 20 行開始顯示 testfile 之文檔內容。
more +20 testfile複製代碼
從最後一行開始顯示內容,並將全部內容輸出
查看文件的內容,有一個經常使用的參數 -f 經常使用於查閱正在改變的日誌文件
tail -10 someFile
查看文件後 10 行內容
head -10 someFile
查看文件前 10 行內容
tail -f someFile
用於調試,實時查看文件內容,會把 filename 文件裏的最尾部的內容顯示在屏幕上,而且不斷刷新,只要 filename 更新就能夠看到最新的文件內容
tail [參數] [文件]
-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的字節數
-n<行數> 顯示行數
--pid=PID 與-f合用,表示在進程ID,PID死掉以後結束.
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒複製代碼
要顯示 notes.log 文件最後 10 行
tail notes.log
要跟蹤名爲 notes.log 的文件增加狀況
tail -f notes.log
此命令顯示 notes.log 文件最後 10 行
當將某些行添加至 notes.log 文件時,tail 命令會繼續顯示這些行
顯示一直繼續,直到您按下(Ctrl-C)組合鍵中止顯示。
顯示文件 notes.log 的內容,從第 20 行至文件末尾:
tail +20 notes.log
顯示文件 notes.log 的最後 10 個字符:
tail -c 10 notes.log複製代碼
編譯
-j :指定做業數。
查看幫助
顯示工做目錄
執行pwd指令可馬上得知您目前所在的工做目錄的絕對路徑名稱。
切換當前工做目錄至 dirName
若目錄名稱省略,則變換 home 目錄
創建名稱爲 dirName 子目錄
顯示指定工做目錄下以內容(列出目前工做目錄所含之文件及子目錄)。
ls [-alrtAFR] [name...]
-a 顯示全部文件及目錄 (ls內定將文件名或目錄名稱開頭爲"."的視爲隱藏檔,不會列出)
-h 用"K","M","G"來顯示文件和目錄的大小。
-l 除文件名稱外,亦將文件型態、權限、擁有者、文件大小等資訊詳細列出 = ll
-r 將文件以相反次序顯示(原定依英文字母次序)
-t 將文件依創建時間之前後次序列出
-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
-F 在列出的文件名稱後加一符號;例如可執行檔則加 "*", 目錄則加 "/"
-R 若目錄下有文件,則如下之文件亦皆依序列出複製代碼
列出根目錄()下的全部目錄:
# ls /
bin dev lib media net root srv upload www
boot etc lib64 misc opt sbin sys usr
home lost+found mnt proc selinux tmp var複製代碼
列出目前工做目錄下全部名稱是 s 開頭的文件,越新的排越後面 :
ls -ltr s*
將 /bin 目錄如下全部目錄及文件詳細資料列出 :
ls -lR /bin
列出目前工做目錄下全部文件及目錄;目錄於名稱後加 "/", 可執行檔於名稱後加 "*" :
ls -AF
find / -name libNativeMethod.so
等同 ll |grep someFile
用於查找文件裏符合條件的字符串。
grep指令用於查找內容包含指定的範本樣式的文件,若是發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名爲"-",則grep指令會從標準輸入設備讀取數據。
-r或--recursive 此參數的效果和指定"-d recurse"參數相同。
-v或--revert-match 反轉
反向查找。前面各個例子是查找並打印出符合條件的行,經過"-v"參數能夠打印出不符合條件行的內容。
查找文件名中包含 test 的文件中不包含test 的行,此時,使用的命令爲:
grep -v test *test*
建立一個新的工做組,新工做組的信息將被添加到系統文件中
g:指定新建工做組的[id](http://man.linuxde.net/id "id命令");
-r:建立系統工做組,系統工做組的組ID小於500;
-K:覆蓋配置文件「/ect/[login](http://man.linuxde.net/login "login命令").defs」;
-o:容許添加組ID號不惟一的工做組。</pre>複製代碼
groupadd -g 344 linuxde複製代碼
此時在/etc/passwd文件中產生一個組ID(GID)是344的項目
顯示當前進程 (process) 的狀態
-A 顯示進程信息
-u user 顯示指定用戶信息
-ef 顯示全部命令,連帶命令行
pstree |grep java
查看進程樹
IP 地址配置,可使用 setup 命令啓動字符界面來配置
用於顯示系統信息
uname可顯示電腦以及操做系統的相關信息。
uname [-amnrsv][--help][--version]複製代碼
-a或--all 顯示所有的信息。
-m或--machine 顯示電腦類型。
-n或-nodename 顯示在網絡上的主機名稱。
-r或--release 顯示操做系統的發行編號。
-s或--sysname 顯示操做系統名稱。
-v 顯示操做系統的版本。
--help 顯示幫助。
--version 顯示版本信息。複製代碼
顯示系統信息
顯示計算機類型
顯示計算機名
顯示操做系統發行編號
顯示操做系統名稱
顯示系統時間
查看安裝介質
在當前目錄全部文本中查找
環境配置,至關 window 下 set
env |grep PATH
查看環境變量
至關於 set classpath
輸出變量名
查看端口
查看端口進程
拷貝文件
cp -fr ./j2sdk1.4.2_04 /usr/java
拷貝目錄
用來爲文件或目錄更名、或將文件或目錄移入其它位置。
mv [options] source dest
mv [options] source... directory
參數說明:
mv 文件名 文件名 :將源文件名改成目標文件名
mv 文件名 目錄名 :將文件移動到目標目錄
mv 目錄名 目錄名 :目標目錄已存在,將源目錄移動到目標目錄;目標目錄不存在則更名
mv 目錄名 文件名 :出錯
將文件 aaa 改名爲 bbb :
mv aaa bbb
將info目錄放入logs目錄中。注意,若是logs目錄不存在,則該命令將info更名爲logs。
mv info/ logs
再如將/usr/student下的全部文件和目錄移到當前目錄下,命令行爲:
$ mv /usr/student/* .
遞歸刪除, -f 表示 force
somefile
清空文件內容
which java
查看 java 進程對應的目錄
顯示當前用戶
顯示當前會話
某個文件夾打 zip 包
解壓 zip 文檔到當前目錄
gunzip somefile.cpio.gz
解壓 .gz
cpio -idmv < somefile.cpio
CPIO 操做
ps auxwww|sort -n -r -k 5|head -5
按資源佔用狀況來排序,第一個 5 表示第幾列,第二個 5 表示前幾位
hostname -i
顯示本機機器名,添加 i ,顯示 etc/hosts 對應 ip 地址
rpm -ivh some.rpm
安裝軟件
rpm -Uvh some.rpm
更新軟件
rpm -qa |grep somesoftName
是否已安裝某軟件
備份文件
是用來創建,還原備份文件的工具程序,它能夠加入,解開備份文件內的文件。
-f<備份文件>或--file=<備份文件> 指定備份文件。
-v或--verbose 顯示指令執行過程。
-x或--extract或--get 從備份文件中還原文件。
-z或--gzip或--ungzip 經過gzip指令處理備份文件。
壓縮文件 非打包
# touch a.c
# tar -czvf test.tar.gz a.c //壓縮 a.c文件爲test.tar.gz
a.c複製代碼
列出壓縮文件內容
# tar -tzvf test.tar.gz
-rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c複製代碼
解壓文件
tar -xzvf test.tar.gz a.c
打包
tar –cvzf somefile.tar.gz fileDir
當即重啓服務器
當即重啓服務器,至關於 shutdow –r now
當即關機, shutdown -h
shutdonw -r 23:30
shutdown -r +15
shutdonw -r +30
定時重啓
gdmsetup
啓動系統配置管理界面,須要在圖形界面執行
setup
啓動文字配置管理界面
vi /etc/sysconfig/network
修改機器名 , 而後要重啓機器或者 service network restart
顯示系統語言
export LANG=zh_CN.GBK
設定系統語言,解決 consol 中文亂碼
ln -s src_full_file the_link_name
建立軟連接
last
倒序查看已登錄用戶歷史
history
查看歷史命令
date -s 10/09/2009
修改日期
date -s 13:24:00
修改時間,直接 date 顯示時間
df -k
查看文件磁盤空間
df -v
查看文件空間
du
查看磁盤空間使用狀況
查看內存使用狀況
實時顯示 process 的動態
d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s
q : 沒有任何延遲的顯示速度,若是使用者是有 superuser 的權限,則 top 將會以最高的優先序執行
c : 切換顯示模式,共有兩種模式,一是隻顯示執行檔的名稱,另外一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來
s : 安全模式,將交談式指令取消, 避免潛在的危機
i : 不顯示任何閒置 (idle) 或無用 (zombie) 的行程
n : 更新的次數,完成後將會退出 top
b : 批次檔模式,搭配 "n" 參數一塊兒使用,能夠用來將 top 的結果輸出到檔案內
顯示進程信息
顯示完整命令
以批處理模式顯示程序信息
以累積模式顯示程序信息
設置信息更新次數
top -n 2
//表示更新兩次後終止更新顯示
設置信息更新時間
//表示更新週期爲3秒
顯示指定的進程信息
//顯示進程號爲139的進程信息,CPU、內存佔用率等
顯示更新十次後退出
top -n 10
使用者將不能利用交談式指令來對行程下命令
top -s
將更新顯示二次的結果輸入到名稱爲 top.log 的檔案裏
top -n 2 -b < top.log
vmstat 5 10
沒 5 秒刷新一次,刷新 10 次; time 、 timex 、 uptime 、 iostat 、 sar
cat /proc/cpuinfo|grep processor|wc – l
獲取 cpu 個數
service <service>
打印指定服務<service>的命令行使用幫助。
service <service> start
啓動指定的系統服務<service>
service <service> stop
中止指定的系統服務<service>
service <service> restart
從新啓動指定的系統服務<service>,即先中止(stop),而後再啓動(start)。
chkconfig --list
查看系統服務列表,以及每一個服務的運行級別。
chkconfig <service> on
設置指定服務<service>開機時自動啓動。
chkconfig <service> off
設置指定服務<service>開機時不自動啓動。
ntsysv
以全屏幕文本界面設置服務開機時是否自動啓動。
service mysqld start
啓動 mysql 服務,其餘如
service mysqld stop
中止 mysql 服務
serice mysqld status
顯示 mysql 服務狀態
service –status-al
查看已有服務
設計目標是,爲系統的啓動和管理提供一套完整的解決方案。
根據 Linux 慣例,字母d是守護進程(daemon)的縮寫。 Systemd 這個名字的含義,就是它要守護整個系統。
Systemd 並非一個命令,而是一組命令,涉及到系統管理的方方面面。
是 Systemd 的主命令,用於管理系統。
Systemd 能夠管理全部系統資源。不一樣的資源統稱爲 Unit(單位)。
Unit 一共分紅12種。
Service unit:系統服務
Target unit:多個 Unit 構成的一個組
Device Unit:硬件設備
Mount Unit:文件系統的掛載點
Automount Unit:自動掛載點
Path Unit:文件或路徑
Scope Unit:不是由 Systemd 啓動的外部進程
Slice Unit:進程組
Snapshot Unit:Systemd 快照,能夠切回某個快照
Socket Unit:進程間通訊的 socket
Swap Unit:swap 文件
Timer Unit:定時器
systemctl list-units命令能夠查看當前系統的全部 Unit 。
netstat -nap | grep port
是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。
基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟體包,無須繁瑣地一次次下載、安裝。
yum提供了查找、安裝、刪除某一個、一組甚至所有軟件包的命令,並且命令簡潔而又好記。
yum [options] [command] [package ...]複製代碼
1.列出全部可更新的軟件清單命令:yum check-update
2.更新全部軟件命令:yum update
3.僅安裝指定的軟件命令:yum install <package_name>
4.僅更新指定的軟件命令:yum update <package_name>
5.列出全部可安裝的軟件清單命令:yum list
6.刪除軟件包命令:yum remove <package_name>
7.查找軟件包 命令:yum search <keyword>
8.清除緩存命令:
yum clean packages: 清除緩存目錄下的軟件包
yum clean headers: 清除緩存目錄下的 headers
yum clean oldheaders: 清除緩存目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除緩存目錄下的軟件包及舊的headers
用於管理套件。
本來是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程序,因爲它遵循 GPL 規則且功能強大方便,於是廣受歡迎。逐漸受到其餘發行版的採用。RPM 套件管理方式的出現,讓 Linux 易於安裝,升級,間接提高了 Linux 的適用度。
-a 查詢全部套件
-q 使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶
檢查,設置系統的各類服務。
查詢操做系統在每個執行等級中會執行哪些系統服務
chkconfig [--add][--del][--list][系統服務] 或 chkconfig [--level <等級代號>][系統服務][on/off/reset]複製代碼
--add 增長所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啓動的敘述文件內增長相關數據。
--del 刪除所指定的系統服務,再也不由chkconfig指令管理,並同時在系統啓動的敘述文件內刪除相關數據。
--level<等級代號> 指定讀系統服務要在哪個執行等級中開啓或關畢。複製代碼
列出chkconfig所知道的全部命令。
# chkconfig -list複製代碼
開啓服務。
# chkconfig telnet/mysqld on //開啓Telnet/mysql服務
# chkconfig -list //列出chkconfig所知道的全部的服務的狀況複製代碼
關閉服務
# chkconfig telnet off //關閉Telnet服務
# chkconfig -list //列出chkconfig所知道的全部的服務的狀況複製代碼
kill foreground process
發送 SIGINT 信號給前臺進程組中的全部進程,強制終止程序的執行
suspend foreground process
發送 SIGTSTP 信號給前臺進程組中的全部進程,經常使用於掛起一個進程,而並不是結束進程,用戶可使用使用fg/bg操做恢復執行前臺或後臺的進程。fg命令在前臺恢復執行被掛起的進 程,此時可使用ctrl-z再次掛起該進程,bg命令在後臺恢復執行被掛起的進程,而此時將沒法使用ctrl-z 再次掛起該進程;一個比較經常使用的功能:
正在使用vi編輯一個文件時,須要執行shell命令查詢一些須要的信息,可使用ctrl-z掛起vi,等執行 完shell命令後再使用fg恢復vi繼續編輯你的文件(固然,也能夠在vi中使用!command方式執行shell命令, 可是沒有該方法方便)。
Terminate input, or exit shell
一個特殊的二進制值,表示 EOF,做用至關於在終端中輸入exit後回車
發送 SIGQUIT 信號給前臺進程組中的全部進程,終止前臺進程並生成 core 文件
中斷控制檯輸出
恢復控制檯輸出
清屏
其實,控制字符都是能夠經過stty命令更改的,可在終端中輸入命令"stty -a"查看終端配置
kill PID
殺掉某進程
kill -9 PID
此命令將信號 9(SIGKILL 信號)發送到有效用戶擁有的全部進程,即便是那些在其餘工做站上啓動以及屬於其餘進程組的進程也是如此。若是一個您請求的列表正被打印,它也被中止。
也稱爲「點命令」,也就是一個點符號(.)
經常使用於從新執行剛修改的初始化文件,使之當即生效,而沒必要註銷並從新登陸。
source filename 或 . filename複製代碼
source命令除了上述的用途以外,還有一個另一個用途。在對編譯系統核心時經常須要輸入一長串的命令,如:
make mrproper
make menuconfig
make dep
make clean
make bzImage
…………複製代碼
若是把這些命令作成一個文件,讓它自動順序執行,對於須要屢次反覆編譯系統核心的用戶來講會很方便,而用source命令就能夠作到這一點,它的做用就是把一個文件的內容當成shell來執行,
先在linux的源代碼目錄下(如/usr/src/linux-2.4.20)創建一個文件,如make_command,在其中輸入一下內容:
make mrproper &&
make menuconfig &&
make dep &&
make clean &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImage /boot/vmlinuz_new &&
cp System.map /boot &&
vi /etc/lilo.conf &&
lilo -v複製代碼
文件創建好以後,每次編譯核心的時候,只須要在/usr/src/linux-2.4.20下輸入:
source make_command
便可,若是你用的不是lilo來引導系統,能夠把最後兩行去掉,配置本身的引導程序來引導內核。
順便補充一點,&&命令表示順序執行由它鏈接的命令,可是隻有它以前的命令成功執行完成了以後才能夠繼續執行它後面的命令。
解答:
只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息。
查詢文件、目錄、socket端口和文件系統的使用進程
fuser最基本的用法是查詢某個文件或目錄被哪一個進程使用:
# fuser -v ./
USER PID ACCESS COMMAND
./: dailidong 17108 ..c.. bash
root 25559 ..c.. sudo
root 26772 ..c.. bash複製代碼
# fuser -vn tcp 3306
USER PID ACCESS COMMAND
3306/tcp: mysql 2535 F.... mysqld複製代碼
:noh 取消/ sth 的搜索結果高亮特效
查看本機的 IP 地址
ip addr show複製代碼
apt-get是Debian、Ubuntu、Linux Mint、elementary OS等Linux發行版的默認軟件包管理器
apt-get purge packagename 等同於 apt-get remove packagename --purge
只刪除軟件包,不刪除配置文件
刪除軟件包並刪除配置文件
配置文件只包括/etc目錄中的軟件服務使用的配置信息,不包括home目錄中的