一僵控、 開關(guān)機(jī):
1、sync: 把內(nèi)存中的數(shù)據(jù)寫到磁盤中(關(guān)機(jī)渺杉,重啟前都需要先執(zhí)行sync)
2悼泌、shutdown -r now 或reboot: 立刻重啟
3垛耳、shutdown -h now :立刻關(guān)機(jī)
4瓶珊、shutdown -h 20:00 :預(yù)定時間關(guān)閉系統(tǒng)(晚上8點(diǎn)自動關(guān)機(jī)啸箫,如果現(xiàn)在已經(jīng) 過了8點(diǎn),則明晚8點(diǎn))
5伞芹、shutdown -h +20 : 預(yù)定時間關(guān)閉系統(tǒng)(10分鐘后關(guān)機(jī))
6忘苛、shutdown -c :取消按預(yù)定時間關(guān)閉系統(tǒng)
二、系統(tǒng)信息
1唱较、who 或w : 查看所有終端
2扎唾、who am i : 查看當(dāng)前使用的終端
3、uname -m : 顯示機(jī)器的處理器架構(gòu)(如X86-64)
4南缓、cat /proc/version : 查看linux版本信息
5胸遇、uname -r : 顯示正在使用的內(nèi)核版本
6、date : 顯示系統(tǒng)時間
7汉形、ifconfig
8纸镊、ping -c 3 www.baidu.com
9、cat /proc/cpuinfo:顯示CPU的信息
10概疆、cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l:查看物理CPU個數(shù)
11逗威、cat /proc/cpuinfo| grep "cpu cores"| uniq:查看每個物理CPU的核數(shù)
12、cat /proc/cpuinfo| grep "processor"| wc -l:查看邏輯CPU個數(shù)即線程數(shù)
三届案、系統(tǒng)性能:
1庵楷、top:動態(tài)實(shí)時顯示cpu、內(nèi)存楣颠、進(jìn)程等使用情況(類似windows下的任務(wù)管理器)
2尽纽、top -d 2 -p 7427:-d為畫面更新的秒數(shù),默認(rèn)5秒童漩,-p為指定進(jìn)程pid的信息
3弄贿、vmstat 2 10:每隔2秒采集一次服務(wù)器狀態(tài),采集10次(查看內(nèi)存矫膨、io讀寫狀態(tài)差凹、cpu)
4、free -h:查看系統(tǒng)內(nèi)存及虛擬內(nèi)存使用情況
5侧馅、df -h:顯示磁盤的空間使用情況
6危尿、iostat:可查io讀寫、cpu使用情況
7馁痴、sar -u 3 5:查看cpu使用情況(3秒一次谊娇,共5次)
8、sar -d 2 3:評估磁盤性能
9罗晕、ps aux|grep firefox:獲取火狐的進(jìn)程號(PID)(可查看進(jìn)程占用cpu济欢、內(nèi)存百分比及進(jìn)程觸發(fā)指令的路徑)
10赠堵、kill -9 進(jìn)程號:強(qiáng)制殺死進(jìn)程
11、systemctl:查看正在運(yùn)行的服務(wù)
四法褥、磁盤管理
1茫叭、df -h:顯示磁盤的空間使用情況 及掛載點(diǎn)
2、df -h /var/log:(顯示log所在分區(qū)(掛載點(diǎn))半等、目錄所在磁盤及可用的磁盤容量)
3揍愁、du -sm /var/log/* | sort -rn: 根據(jù)占用磁盤空間大小排序(MB)某目錄下文件和目錄大小
4、fdisk -l:查所有分區(qū)及總?cè)萘拷囱迹?dev/sda為查硬盤a的分區(qū))
5吗垮、fdisk /dev/sdb:對硬盤sdb進(jìn)行分區(qū)
6、mount /dev/sda1 /mnt:硬盤sda1掛載到/mnt目錄(mount 裝置文件名 掛載點(diǎn))
7凹髓、mount -t cifs -o username=luolanguo,password=win用戶賬號密碼,vers=3.0?//10.2.1.178/G?/mnt/usb:遠(yuǎn)程linux 共享掛載windows的U盤,G為U盤共享名烁登,需設(shè)置U盤共享
8、mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS:掛載iso文件
9蔚舀、umount /dev/sda1:取消掛載(umount 裝置文件名或掛載點(diǎn))
五饵沧、文件和目錄
? 1、cd:是Change Directory的縮寫赌躺,用來切換工作目錄狼牺,語法:cd [相對或絕對路徑或特殊符號]
cd:進(jìn)入該用戶的主目錄 ~(root用戶為/root,其他用戶為/home/用戶名)
cd ..:返回上一級目錄(注意要空格)
cd -:返回上次所在目錄
cd /:返回根目錄 (絕對路徑)
cd ./目錄1/目錄2:進(jìn)入當(dāng)前目錄下的子目錄(相對路徑)
2、pwd:顯示工作路徑(Print Working Directory 的縮寫)
3礼患、?ls:是List的縮寫是钥,用于列出目錄下的文件,語法:ls [選項][目錄或文件名]
ls -a:列出文件下所有的文件缅叠,包括以“.“開頭的隱藏文件
*ls -lh?.log?:列出文件的詳細(xì)信息(.log結(jié)尾悄泥,*為通配符代表任意多個字符)
4、file 文件或目錄:顯示文件的類型(目錄肤粱、text弹囚、zip、shell腳本等)
5领曼、mkdir dir1:創(chuàng)建目錄(dir1)(mkdir為make directory的縮寫)
mkdir -p ./dir1/dir2:遞歸創(chuàng)建目錄(-p:父目錄不存在時鸥鹉,同時建立)
6、touch a.txt:創(chuàng)建文件a.txt
7庶骄、?rm:可以刪除一個目錄中的一個或多個文件或目錄毁渗,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉; 語法:rm (選項)(參數(shù))(注:如果參數(shù)中含有目錄,則必須加上-r選項)单刁;
rm 文件:刪除文件
rm -r 目錄或文件:刪除目錄(及目錄下所有文件)(非空也可以)
rm -rf 目錄或文件:強(qiáng)制刪除灸异,如:rm -rf * 為刪除當(dāng)前目錄下所有文件
8、find -inum 1842601 -exec rm -rf {} ;:刪除亂碼文件或目錄(會提示找不到此文件或文件夾但其實(shí)已經(jīng)刪除了)(上傳中文文件會亂碼,rm命令刪除不了)(先使用ls -i命令找到inode绎狭,即文件或目錄前面的數(shù)字字符串,如1842601;)
9、?mv:是move的縮寫褥傍,可以用來剪切移動文件儡嘶、目錄或者將文件改名;
語法:mv 源文件 目標(biāo)文件(改名)或目錄(移動)恍风;
mv a b:移動或者重命名一個文件或者目錄(存在即移動目錄或覆蓋文件蹦狂,不存在即改名)
mv /opt/git/g /opt/a:移動g到opt目錄下并改名為a(a目錄不存在,若存在則為移動g到a目錄下)
mv -t ./test a.txt b.txt:移動多個文件到某目錄下
10朋贬、?cp:復(fù)制文件或目錄凯楔;cp命令可以將單個或多個文件復(fù)制到一個已經(jīng)存在的目錄下;
常用:cp -ai 文件或目錄 目標(biāo)目錄;
cp -ai /opt/abc /opt/git/:復(fù)制abc目錄(或文件)到git目錄下(選項a表示文件的屬性也復(fù)制锦募、目錄下所有文件都復(fù)制摆屯;i表示覆蓋前詢問)
11、?ln:link的縮寫糠亩,用于建立硬(軟)鏈接虐骑,常用于軟件安裝時建軟鏈接(類似快捷方式)到PATH;
語法:ln [-s] 源文件 目標(biāo)文件
ln -s /opt/a.txt /opt/git/:對文件創(chuàng)建軟鏈接(快捷方式不改名還是a.txt)
ln -s /opt/a.txt /opt/git/b:(快捷方式改名為b)(下面的一樣可以改名)
ln -s /opt/mulu /opt/git/:對目錄創(chuàng)建軟鏈接
ln /opt/a.txt /opt/git/:對文件創(chuàng)建硬鏈接
六、文件權(quán)限
chmod [-R] 777文件或目錄:設(shè)置權(quán)限(chmod a+rwx a=chmod ugo +rwx a=chmod 777 a)
?注: r(read)對應(yīng)4赎线,w(write)對應(yīng)2廷没,x(execute)執(zhí)行對應(yīng)1;
-R:遞歸更改文件屬組垂寥,就是在更改某個目錄文件的屬組時颠黎,如果加上-R的參數(shù),那么該目錄下的所有文件的屬組都會更改)
chmod [{ugoa}{+-=}{rwx}][文件或目錄]:如chmod u-w,g+x,o=r test.txt為user(擁有者)去掉寫權(quán)限滞项,group(所屬組)加上執(zhí)行權(quán)限狭归,other(其他人)權(quán)限等于只讀;
chown [-R] admin:root /opt/:變更文件及目錄的擁有者和所屬組(-R遞歸處理所有文件和文件夾蓖扑,admin為擁有者唉铜,root為所屬者)
七、文件查找
1律杠、locate a.txt:在系統(tǒng)全局范圍內(nèi)查找文件名包含a.txt字樣的文件(比find快);
?locate:原理是updatedb會把文件系統(tǒng)中的信息存放到數(shù)據(jù)庫databases中(但一般一天才執(zhí)行一次潭流,所以locate找不到新創(chuàng)建的文件,需要先手動執(zhí)行updatedb柜去,再執(zhí)行l(wèi)ocate),locate從數(shù)據(jù)庫中讀數(shù)據(jù);
? 2灰嫉、find:在目錄結(jié)構(gòu)中搜索文件,并執(zhí)行指定的操作
語法:find pathname -options [-print -exec ...]
3嗓奢、pathname :為 find命令所查找的目錄路徑讼撒。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄(find查找范圍為目標(biāo)目錄及其子目錄所有文件及目錄);
-exec: find命令對匹配的文件執(zhí)行該參數(shù)所給出的shell命令根盒。相應(yīng)命令的形式為'command' { } ;钳幅,注意{ }和;之間的空格炎滞;
-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出敢艰;
4、find /home -mtime -2:在/home下查最近2*24小時內(nèi)改動過的文件
find . -size +100M:在當(dāng)前目錄及子目錄下查找大于100M的文件
find . -type f:f表示文件類型為普通文件(b/d/c/p/l/f 分別為塊設(shè)備册赛、目錄钠导、字符設(shè)備、管道森瘪、符號鏈接牡属、普通文件)
find . -mtime +2 -exec rm {} ;:查出更改時間在2*24小時以前的文件并刪除它**
find . -name '*.log' -exec grep -i hello {} ; -print:在當(dāng)前目錄及子目錄下查出文件名后綴為.log的文件并且該文件內(nèi)容包含了hello字樣并打印,-exec 命令 {} \表示對查出文件操作扼睬,-i表示不區(qū)分大小寫逮栅;
find . -name '*.log'|grep hello:在當(dāng)前目錄及子目錄下查出文件名后綴為.log的文件并且文件名包含了hello字樣(grep用來處理字符串);
5痰驱、grep -i 'HELLO' . -r -n:在當(dāng)前目錄及子目錄下查找文件內(nèi)容中包含hello的文件并顯示文件路徑(-i表示忽略大小寫)
6证芭、which java:在環(huán)境變量$PATH設(shè)置的目錄里查找符合條件的文件,并顯示路徑(查詢運(yùn)行文件所在路徑)
whereis java:查看安裝的軟件的所有的文件路徑(whereis 只能用于查找二進(jìn)制文件担映、源代碼文件和man手冊頁废士,一般文件的定位需使用locate命令)
八、查看文件的內(nèi)容
1蝇完、cat [-n] 文件名:顯示文件內(nèi)容官硝,連行號一起顯示
2、less 文件名:一頁一頁的顯示文件內(nèi)容(搜索翻頁同man命令)
3短蜕、head [-n] 文件名:顯示文件頭n行內(nèi)容氢架,n指定顯示多少行
4、tail [-nf] 文件名:顯示文件尾幾行內(nèi)容,n指定顯示多少行,f用于實(shí)時追蹤文件的所有更新朋魔,常用于查閱正在改變的日志文件(如tail -f -n 3 a.log 表示開始顯示最后3行岖研,并在文件更新時實(shí)時追加顯示,沒有-n默認(rèn)10行)
5警检、sed -n '2,$p' ab:顯示第二行到最后一行孙援;
sed -n '/搜索的關(guān)鍵詞/p' a.txt:顯示包括關(guān)鍵詞所在行
6、cat filename |grep abc -A10:查看filename中含有abc所在行后10行(A10)扇雕、前10行(B10)內(nèi)容
7拓售、less a.txt|grep git:顯示關(guān)鍵詞所在行,管道符”|”它只能處理由前面一個指令傳出的正確輸出信息镶奉,對錯誤信息信息沒有直接處理能力础淤。然后傳遞給下一個命令崭放,作為標(biāo)準(zhǔn)的輸入;
cat /etc/passwd |awk -F ':' '{print $1}':顯示第一列
文本處理
8鸽凶、ls -l>file:輸出重定向>(改變原來系統(tǒng)命令的默認(rèn)執(zhí)行方式):ls -l命令結(jié)果輸出到file文件中币砂,若存在,則覆蓋
9玻侥、cat file1 >>file:輸出重定向之cat命令結(jié)果輸出追加到file文件(>表示覆蓋原文件內(nèi)容道伟,>>表示追加內(nèi)容)
10、ls fileno 2>file: 2>表示重定向標(biāo)準(zhǔn)錯誤輸出(文件不存在使碾,報錯信息保存至file文件);
**cowsay ?:重定向標(biāo)準(zhǔn)輸入’命令<文件’表示將文件做為命令的輸入(為從文件讀數(shù)據(jù)作為輸入)
11祝懂、sed -i '4,$d' a.txt:刪除第四行到最后一行($表示最后一行)(sed可以增刪改查文件內(nèi)容)
sed -i '$a 增加的字符串' a.txt:在最后一行的下一行增加字符串
sed -i 's/old/new/g' a.txt:替換字符串票摇;格式為sed 's/要替換的字符串/新的字符串/g' 修改的文件
12、vim 文件:編輯查看文件(同vi)
九砚蓬、用戶與權(quán)限
useradd 用戶名:創(chuàng)建用戶
userdel -r 用戶名:刪除用戶:(-r表示把用戶的主目錄一起刪除)
usermod -g 組名 用戶名:修改用戶的組
usermod -aG 組名 用戶名:將用戶添加到組
groups test:查看test用戶所在的組
cat /etc/group |grep test:查看test用戶詳情:用戶名:口令:用戶標(biāo)識號:組標(biāo)識號:注釋性描述:主目錄:登錄Shell
passwd [ludf] 用戶名:用戶改自己密碼矢门,不需要輸入用戶名,選項-d:指定空口令,-l:禁用某用戶灰蛙,-u解禁某用戶祟剔,-f:強(qiáng)迫用戶下次登錄時修改口令
groupadd 組名:創(chuàng)建用戶組
groupdel 用戶組:刪除組
groupmod -n 新組名 舊組名:修改用戶組名字
su - 用戶名:完整的切換到一個用戶環(huán)境(相當(dāng)于登錄)(建議用這個)(退出用戶:exit)
su 用戶名:切換到用戶的身份(環(huán)境變量等沒變,導(dǎo)致很多命令要加上絕對路徑才能執(zhí)行)
sudo 命令:以root的身份執(zhí)行命令(輸入用戶自己的密碼摩梧,而su為輸入要切換用戶的密碼物延,普通用戶需設(shè)置/etc/sudoers才可用sudo)
十、壓縮仅父、解壓和打包備份
? 單純tar僅為打包(多個文件包成一個大文件)叛薯,加上參數(shù)-j(bzip2格式.bz2)、-z(gzip格式.gz)可以備份笙纤、壓縮(-c)耗溜、解壓(-x),備份一般比壓縮多加參數(shù)-p(保留原本文件的權(quán)限與屬性)省容,-C可以指定解壓到特定目錄抖拴;bzip2、gzip只能對單一文件壓縮腥椒;
file 文件名:查文件類型(可看是用哪一種方式壓縮的)
tar -zxvf a.tar.gz -C ./test:解壓tar.gz到當(dāng)前目錄下的test目錄
tar -zcvf /opt/c.tar.gz ./a/:壓縮tar.gz(把當(dāng)前目錄下的a目錄及目錄下所有文件壓縮為 /opt/目錄下的c.tar.gz阿宅,這樣tar -zxvf c.tar.gz解壓出來帶有目錄a)
tar -jxvf a.tar.bz2:解壓tar.bz2(到當(dāng)前目錄)
tar -jcvf c.tar.bz2 ./a/:壓縮tar.bz2(把當(dāng)前目錄下的a目錄及目錄下所有文件壓縮到當(dāng)前目錄下為c.tar.gz2)
unzip a.zip:解壓zip(到當(dāng)前目錄)
unzip -o mdmtest.war -d /opt/mdm:推薦使用unzip解壓war包(-o覆蓋原有文件,-d指定文件解壓后存儲的目錄)
zip -r c.zip ./a/:壓縮zip(把當(dāng)前目錄下的a目錄及目錄下所有文件壓縮到當(dāng)前目錄下為c.zip
bzip2 -k file1: 壓縮一個 'file1' 的文件(-k表示保留源文件)(bzip2格式寞酿,比gzip好)
bzip2 -d -k file1.bz2: 解壓一個叫做 'file1.bz2'的文件
gzip file1: 壓縮一個叫做 'file1'的文件(gzip格式)(不能保留源文件)
gzip -9 file1: 最大程度壓縮
gzip -d file1.gz: 解壓縮一個叫做 'file1'的文件
十一家夺、軟件安裝
盡量用yum源(apt-get)安裝,不行就rpm伐弹、deb包安裝拉馋,能不手動編譯的就不要手動編譯榨为;
dpkg只能安裝已經(jīng)下載到本地機(jī)器上的deb包. apt-get能在線下載并安裝deb包,能更新系統(tǒng),且還能自動處理包與包之間的依賴問題,這個是dpkg工具所不具備的;
rpm 只能安裝已經(jīng)下載到本地機(jī)器上的rpm 包. yum能在線下載并安裝rpm包,能更新系統(tǒng),且還能自動處理包與包之間的依賴問題,這個是rpm 工具所不具備的;
yum煌茴、rpm安裝文件分布在/usr的bin随闺、lib、share不同目錄蔓腐,不用配置PATH矩乐,直接用命令,但可用命令卸載更新回论;
手動編譯軟件散罕,默認(rèn)位置為/usr/local下不同子目錄下,不用配置PATH直接用命令(手動指定安裝路徑需要加PATH),使得軟件更新和刪除變得很麻煩傀蓉。編譯安裝的軟件沒有卸載命令欧漱,卸載就是把所有這個軟件的文件刪除。
十二葬燎、二進(jìn)制(Binaries)包
1误甚、yum安裝
? 在線下載并安裝rpm包,適用于CentOS谱净、Fedora窑邦、RedHat及類似系統(tǒng)
yum install epel-releas:安裝第三方y(tǒng)um源EPEL(企業(yè)版 Linux 附加軟件包的簡稱)
yum repolist enabled:顯示可用的源倉庫(/etc/yum.repos.d/目錄下配置)
yum install yum-fastestmirror:自動選擇最快的yum源
yum list installed |grep java:列出已安裝的軟件(查看已安裝的JDK)
yum remove java-1.8.0-openjdk.x86_64:卸載軟件(卸載JDK)
**yum list java*?**:列出已安裝和可安裝的軟件(查看yum庫中的JDK包)
yum install [-y] java-1.8.0-openjdk:安裝軟件JDK(-y自動安裝)(推薦這種方式安裝)
yum install docker-ce-18.03.1.ce:安裝指定版本的軟件(已知docker-ce.x86_64 18.03.1.ce-1.el7.centos,則rpm包名為docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm)
**yum check-update [kernel]?**:列出所有可更新的軟件(檢查更新kernel)
yum update tomcat:更新軟件(可所有)
rpm -ql 軟件名稱:查詢yum安裝路徑(軟件名稱可通過rpm -qa|grep java)
yum info kernel:查看軟件(kernel)的信息
yum clean all:(清除緩存壕探,使最新的yum配置生效)
2冈钦、rpm包手動下載安裝
? yum中沒有時用,適用于CentOS李请、Fedora派继、RedHat及類似系統(tǒng);
wget -P /opthttps://網(wǎng)址:下載到/opt目錄
rpm -ivh wps-office-版本.x86_64.rpm:安裝rpm包(包要先下載)(要先裝依賴包)
rpm -e wps-office:卸載軟件(注意不要軟件名不要版本號)
rpm -qa |grep wps:查看安裝的rpm包
rpm -ql 軟件名稱:查看rpm包安裝路徑(軟件名稱可通過rpm -qa|grep java)
3捻艳、apt方式安裝
? 安裝deb包驾窟,類似yum安裝,適用于Debian, Ubuntu 以及類似系統(tǒng)认轨;
apt-get install aptitude:安裝aptitude工具,實(shí)現(xiàn)依賴自動安裝绅络,依賴版本自動降級或升級
aptitude install 軟件:安裝軟件(推薦這種方式安裝)
apt-cache search 軟件:搜索軟件
apt-get install 軟件:安裝軟件
apt-get purge 軟件:卸載軟件(包括配置文件,只刪除軟件purge換成remove)
apt-get upgrade:更新所有已安裝的軟件包
apt-get update:升級列表中的軟件包
apt-get clean:從下載的軟件包中清理緩存
4嘁字、deb包安裝
? 適用于Debian, Ubuntu 以及類似系統(tǒng)恩急;
dpkg -i package.deb:安裝一個 deb 包
dpkg -r package_name:從系統(tǒng)刪除一個 deb 包
dpkg -l |grep chrome:查詢系統(tǒng)中所有已經(jīng)安裝的 deb 包
dpkg -L 軟件名稱:查軟件安裝的文件
5、解壓即用
? 大多數(shù)非開源的商業(yè)軟件都采取這種辦法纪蜒;
? 二進(jìn)制(Binaries)包如apache-jmeter-3.3.tgz衷恭,下載復(fù)制解壓到/opt,然后然后將該軟件的 bin 目錄加入到 PATH 中即可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin)纯续;
6随珠、軟件自己的模塊/包管理器
? 如python:系統(tǒng)的源中不可能包含該軟件的所有模塊灭袁; 系統(tǒng)的源中該軟件的模塊的更新要遠(yuǎn)遠(yuǎn)滯后于最新版本;手動安裝python窗看,并用Python 自帶的 pip 安裝模塊(類似yum)茸歧;
**pip install?redis?**:安裝python軟件包redis
**pip unstall?redis?**:卸載
**pip show --files?redis?**:pip查看已安裝的包
pip list --outdated:檢查更新
十三、源代碼(Source)包
編譯安裝
? 源代碼包(一般有install文件)如hello-2.2.tar.bz2显沈,下載復(fù)制到/opt;
tar -jxvf hello-2.2.tar.bz2:解壓
./configure --prefix=/opt/軟件目錄名稱:為編譯做好準(zhǔn)備软瞎,加上 prefix 手動指定安裝路徑
make:編譯
make install:安裝
make clean:刪除安裝時產(chǎn)生的臨時文件
vim /etc/profile export PATH=$PATH:/opt/目錄/bin:手動指定安裝路徑需要加path
hello:執(zhí)行軟件:看INSTALL和README文件(是否源碼包、如何安裝拉讯、執(zhí)行都看這兩個)
rm -rf 軟件目錄名稱:卸載軟件