linux主要特徵 :一切且文件(目錄、硬盤等都是文件);硬件都在/dev 目錄,如硬盤、U盤爲/dev/sd[a-d]; /dev/sr0(/dev/cdrom)是光驅的設備名(df命令查看),爲設備文件,表明的是光驅自己,得把這個設備掛載到目錄下(通常爲/mnt)(文件系統的臨時掛載點),才能對設備上的文件進行讀寫等操做;java
不懂的命令 :man 命令(查用法、全稱),只記得關鍵詞,可用man -k 關鍵詞;python
Linux命令經常使用結構 :Command [-option] [argument]
Command:便是要運行的命令的自己,說白了就是一個軟件(程序);
Option:是選項(可選),選項是控制命令運行狀態和行爲的(可多個選項一塊兒,如df -hT);
Argument:是參數(可選),是命令要操做對象如文件、路徑、數據、目錄等;
在指令的第一部分按[tab]鍵一下爲[命令補全],兩下爲全部命令選擇,在非第一部分按[tab]鍵兩下爲[文件補全];linux
linux命令區分大小寫;ios
cd:是Change Directory的縮寫,用來切換工做目錄,語法:cd [相對或絕對路徑或特殊符號]git
pwd :顯示工做路徑(Print Working Directory 的縮寫)redis
ls:是List的縮寫,用於列出目錄下的文件,語法:
ls [選項][目錄或文件名]
chrome
file 文件或目錄 :顯示文件的類型(目錄、text、zip、shell腳本等)shell
touch a.txt :建立文件a.txt數據庫
rm:能夠刪除一個目錄中的一個或多個文件或目錄,也能夠將某個目錄及其下屬的全部文件及其子目錄均刪除掉; 語法:rm (選項)(參數)(注:若是參數中含有目錄,則必須加上-r選項);apache
rm -rf 目錄或文件 :強制刪除,如:rm -rf * 爲刪除當前目錄下全部文件
mv:是move的縮寫,能夠用來剪切移動文件、目錄或者將文件更名;
語法:mv 源文件 目標文件(更名)或目錄(移動);
mv -t ./test a.txt b.txt :移動多個文件到某目錄下
cp:複製文件或目錄;cp命令能夠將單個或多個文件複製到一個已經存在的目錄下;
經常使用:cp -ai 文件或目錄 目標目錄;
cp -ai /opt/abc /opt/git/ :複製abc目錄(或文件)到git目錄下(選項a表示文件的屬性也複製、目錄下全部文件都複製;i表示覆蓋前詢問)
ln:link的縮寫,用於創建硬(軟)連接,經常使用於軟件安裝時建軟連接(相似快捷方式)到PATH;
語法:ln [-s] 源文件 目標文件
ln /opt/a.txt /opt/git/ :對文件建立硬連接
chmod [-R] 777文件或目錄 :設置權限(chmod a+rwx a=chmod ugo +rwx a=chmod 777 a)
注: r(read)對應4,w(write)對應2,x(execute)執行對應1;
-R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,若是加上-R的參數,那麼該目錄下的全部文件的屬組都會更改)
chmod [{ugoa}{+-=}{rwx}][文件或目錄]
:如chmod u-w,g+x,o=r test.txt爲user(擁有者)去掉寫權限,group(所屬組)加上執行權限,other(其餘人)權限等於只讀;chown [-R] admin:root /opt/ :變動文件及目錄的擁有者和所屬組(-R遞歸處理全部文件和文件夾,admin爲擁有者,root爲所屬者)
locate:原理是updatedb會把文件系統中的信息存放到數據庫databases中(但通常一天才執行一次,因此locate找不到新建立的文件,須要先手動執行updatedb,再執行locate),locate從數據庫中讀數據;
find:在目錄結構中搜索文件,並執行指定的操做
語法:find pathname -options [-print -exec …]
pathname :爲 find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄(find查找範圍爲目標目錄及其子目錄全部文件及目錄);
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲’command’ { } ;,注意{ }和;之間的空格;
-print: find命令將匹配的文件輸出到標準輸出;
**find . -name ‘*.log’|grep hello** :在當前目錄及子目錄下查出文件名後綴爲.log的文件而且文件名包含了hello字樣(grep用來處理字符串);
grep -i ‘HELLO’ . -r -n :在當前目錄及子目錄下查找文件內容中包含hello的文件並顯示文件路徑(-i表示忽略大小寫)
which java :在環境變量$PATH設置的目錄裏查找符合條件的文件,並顯示路徑
cat [-n] 文件名 :顯示文件內容,連行號一塊兒顯示
less 文件名 :一頁一頁的顯示文件內容(搜索翻頁同man命令)
head [-n] 文件名 :顯示文件頭n行內容,n指定顯示多少行
tail [-nf] 文件名:顯示文件尾幾行內容,n指定顯示多少行,f用於實時追蹤文件的全部更新,經常使用於查閱正在改變的日誌文件(如tail -f -n 3 a.log 表示開始顯示最後3行,並在文件更新時實時追加顯示,沒有-n默認10行)
sed -n ‘/搜索的關鍵詞/p’ a.txt :顯示包括關鍵詞所在行
less a.txt|grep git :顯示關鍵詞所在行,管道符」|」它只能處理由前面一個指令傳出的正確輸出信息,對錯誤信息信息沒有直接處理能力。而後傳遞給下一個命令,做爲標準的輸入;
cat /etc/passwd |awk -F ‘:’ ‘{print $1}’ :顯示第一列
ls -l>file :輸出重定向>(改變原來系統命令的默認執行方式):ls -l命令結果輸出到file文件中,若存在,則覆蓋
cat file1 >>file :輸出重定向之cat命令結果輸出追加到file文件
ls fileno 2>file : 2>表示重定向標準錯誤輸出(文件不存在,報錯信息保存至file文件);
cowsay <a.txt :重定向標準輸入’命令<文件’表示將文件作爲命令的輸入(爲從文件讀數據做爲輸入)
sed -i ‘s/old/new/g’ a.txt :替換字符串;格式爲sed ‘s/要替換的字符串/新的字符串/g’ 修改的文件
vim 文件:編輯查看文件(同vi)
usermod -g 組名 用戶名 :修改用戶的組
passwd [ludf] 用戶名 :用戶改本身密碼,不須要輸入用戶名,選項-d:指定空口令,-l:禁用某用戶,-u解禁某用戶,-f:強迫用戶下次登陸時修改口令
groupmod -n 新組名 舊組名 :修改用戶組名字
sudo 命令 :以root的身份執行命令(輸入用戶本身的密碼,而su爲輸入要切換用戶的密碼,普通用戶需設置/etc/sudoers纔可用sudo)
df -h /var/log :(顯示log所在分區(掛載點)、目錄所在磁盤及可用的磁盤容量)
du -sm /var/log/* | sort -rn : 根據佔用磁盤空間大小排序(MB)某目錄下文件和目錄大小
fdisk /dev/sdb :對硬盤sdb進行分區
umount /dev/sda1 :取消掛載(umount 裝置文件名或掛載點)
單純tar僅爲打包(多個文件包成一個大文件),加上參數-j(bzip2格式.bz2)、-z(gzip格式.gz)能夠備份、壓縮(-c)、解壓(-x),備份通常比壓縮多加參數-p(保留本來文件的權限與屬性),-C能夠指定解壓到特定目錄;bzip二、gzip只能對單一文件壓縮;
file 文件名 :查文件類型(可看是用哪種方式壓縮的)
tar -zcvf /opt/c.tar.gz ./a/ :壓縮tar.gz(把當前目錄下的a目錄及目錄下全部文件壓縮爲 /opt/目錄下的c.tar.gz)
tar -jcvf c.tar.bz2 ./a/ :壓縮tar.bz2(把當前目錄下的a目錄及目錄下全部文件壓縮到當前目錄下爲c.tar.gz2)
zip -r c.zip ./a/ :壓縮zip(把當前目錄下的a目錄及目錄下全部文件壓縮到當前目錄下爲c.zip
bzip2 -d -k file1.bz2 : 解壓一個叫作 ‘file1.bz2’的文件
gzip -d file1.gz : 解壓縮一個叫作 ‘file1’的文件
- 儘可能用yum源(apt-get)安裝,不行就rpm、deb包安裝,能不手動編譯的就不要手動編譯;
- dpkg只能安裝已經下載到本地機器上的deb包. apt-get能在線下載並安裝deb包,能更新系統,且還能自動處理包與包之間的依賴問題,這個是dpkg工具所不具有的;
- rpm 只能安裝已經下載到本地機器上的rpm 包. yum能在線下載並安裝rpm包,能更新系統,且還能自動處理包與包之間的依賴問題,這個是rpm 工具所不具有的;
- yum、rpm安裝文件分佈在/usr的bin、lib、share不一樣目錄,不用配置PATH,直接用命令,但可用命令卸載更新;
- 手動編譯軟件,默認位置爲/usr/local下不一樣子目錄下,不用配置PATH直接用命令(手動指定安裝路徑須要加PATH),使得軟件更新和刪除變得很麻煩。編譯安裝的軟件沒有卸載命令,卸載就是把全部這個軟件的文件刪除。
在線下載並安裝rpm包,適用於CentOS、Fedora、RedHat及相似系統
yum中沒有時用,適用於CentOS、Fedora、RedHat及相似系統;
wget -P /opt https://網址 :下載到/opt目錄
rpm -ql 軟件名稱 :查看rpm包安裝路徑(軟件名稱可經過rpm -qa|grep java)
安裝deb包,相似yum安裝,適用於Debian, Ubuntu 以及相似系統;
aptitude install 軟件 :安裝軟件(推薦這種方式安裝)
apt-get clean :從下載的軟件包中清理緩存
適用於Debian, Ubuntu 以及相似系統;
大多數非開源的商業軟件都採起這種辦法;
二進制(Binaries)包如apache-jmeter-3.3.tgz,下載複製解壓到/opt,而後而後將該軟件的 bin 目錄加入到 PATH 中便可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin);
如python:系統的源中不可能包含該軟件的全部模塊; 系統的源中該軟件的模塊的更新要遠遠滯後於最新版本;手動安裝python,並用Python 自帶的 pip 安裝模塊(相似yum);
源代碼包(通常有install文件)如hello-2.2.tar.bz2,下載複製到/opt;