前言
學(xué)前須知
適用人群:開發(fā)搭儒、測試提茁、運維等等
文檔用途:linux入門學(xué)習(xí)茴扁、命令備忘錄、面試復(fù)習(xí)
學(xué)習(xí)途徑:書籍(鳥哥的Linux私房菜)毁习、視頻:慕課網(wǎng)等、百度谷歌搜索盏道、qq群等
學(xué)習(xí)環(huán)境:虛擬機VirtualBox+centos7
學(xué)習(xí)記錄:多動手载碌,多聯(lián)想嫁艇,多記錄,特別是遇到問題時
遇到問題:百度谷歌搜索论皆、系統(tǒng)日志(/var/log/)歧斟、qq群
學(xué)前理論
linux主要特征 :一切且文件(目錄静袖、硬盤等都是文件);硬件都在/dev 目錄,如硬盤坠陈、U盤為/dev/sd[a-d];
/dev/sr0(/dev/cdrom)是光驅(qū)的設(shè)備名(df命令查看)仇矾,為設(shè)備文件解总,代表的是光驅(qū)本身,得把這個設(shè)備掛載到目錄下(一般為/mnt)(文件系統(tǒng)的臨時掛載點)刻盐,才能對設(shè)備上的文件進行讀寫等操作;
不懂的命令 :man 命令(查用法敦锌、全稱)佳簸,只記得關(guān)鍵詞,可用man -k 關(guān)鍵詞;
Linux命令常用結(jié)構(gòu) :Command [-option] [argument]
Command:即是要運行的命令的本身听想,說白了就是一個軟件(程序);
Option:是選項(可選)哗魂,選項是控制命令運行狀態(tài)和行為的(可多個選項一起,如df -hT);
Argument:是參數(shù)(可選)朽色,是命令要操作對象如文件葫男、路徑崔列、數(shù)據(jù)、目錄等;
在指令的第一部分按[tab]鍵一下為[命令補全]盈咳,兩下為所有命令選擇鱼响,在非第一部分按[tab]鍵兩下為[文件補全];
linux命令區(qū)分大小寫;
開關(guān)機
sync :把內(nèi)存中的數(shù)據(jù)寫到磁盤中(關(guān)機组底、重啟前都需先執(zhí)行sync)
shutdown -r now或reboot :立刻重啟
shutdown -h now :立刻關(guān)機
shutdown -h 20:00 :預(yù)定時間關(guān)閉系統(tǒng)(晚上8點關(guān)機债鸡,如果現(xiàn)在超過8點,則明晚8點)
shutdown -h +10 :預(yù)定時間關(guān)閉系統(tǒng)(10分鐘后關(guān)機)
shutdown -c :取消按預(yù)定時間關(guān)閉系統(tǒng)
系統(tǒng)信息
who am i :查看當(dāng)前使用的終端
who 或 w : 查看所有終端
uname -m :顯示機器的處理器架構(gòu)(如x86_64)
cat /proc/version :查看linux版本信息
uname -r :顯示正在使用的內(nèi)核版本
lsb_release -a :查看系統(tǒng)發(fā)行版本(如CentOS7)(沒這個命令先安裝yum install -y
redhat-lsb-core)
rpm -qa | grep kernel-devel :查看kernel-devel版本(安裝軟件時編譯內(nèi)核用唬滑,故需要保持內(nèi)核版本一致性)
yum install -y "kernel-devel-uname-r == $(uname
-r)":安裝和Linux內(nèi)核版本匹配的kernel-devel
hostnamectl set-hostname
主機名:修改主機名(包括靜態(tài)晶密、瞬態(tài)和靈活主機名惹挟,如有域名解析記得手動更新/etc/hosts)
date :顯示系統(tǒng)日期 (date +%Y/%m/%d : 顯示效果如2018/01/01)
date 070314592018.00 :設(shè)置時間(格式為月日時分年.秒 )
clock -w :將時間修改保存到 BIOS
cal 2018 :顯示2018年的日歷表
clear :清空命令行
ifconfig :顯示或設(shè)置網(wǎng)卡(查ip等)(類似windows中ipconfig)
ping -c 3 www.baidu.com :測試百度與本機的連接情況( -c 3表示測試3次)
cat /proc/cpuinfo :顯示CPU的信息
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l :查看物理CPU個數(shù)
cat /proc/cpuinfo| grep "cpu cores"| uniq :查看每個物理CPU的核數(shù)
cat /proc/cpuinfo| grep "processor"| wc -l :查看邏輯CPU個數(shù)即線程數(shù)
系統(tǒng)性能
top :動態(tài)實時顯示cpu缝驳、內(nèi)存用狱、進程等使用情況(類似windows下的任務(wù)管理器)
top -d 2 -p 7427 :-d為畫面更新的秒數(shù),默認5秒摇展,-p為指定進程pid的信息
vmstat 2 10 :每隔2秒采集一次服務(wù)器狀態(tài)咏连,采集10次(查看內(nèi)存鲁森、io讀寫狀態(tài)歌溉、cpu)
free -h :查看系統(tǒng)內(nèi)存及虛擬內(nèi)存使用情況
df -h :顯示磁盤的空間使用情況
iostat :可查io讀寫、cpu使用情況
sar -u 3 5 :查看cpu使用情況(3秒一次草慧,共5次)
sar -d 2 3 :評估磁盤性能
ps aux|grep firefox :獲取火狐的進程號(PID)(可查看進程占用cpu漫谷、內(nèi)存百分比及進程觸發(fā)指令的路徑)
kill -9 進程號 :強制殺死進程
systemctl :查看正在運行的服務(wù)
文件和目錄
? cd:是Change Directory的縮寫乾胶,用來切換工作目錄识窿,語法:cd [相對或絕對路徑或特殊符號]
cd :進入該用戶的主目錄 ~(root用戶為/root,其他用戶為/home/用戶名)
cd .. :返回上一級目錄(注意要空格)
cd - :返回上次所在目錄
cd / :返回根目錄 (絕對路徑)
cd ./目錄1/目錄2 :進入當(dāng)前目錄下的子目錄(相對路徑)
pwd :顯示工作路徑(Print Working Directory 的縮寫)
?ls:是List的縮寫,用于列出目錄下的文件缩宜,語法:ls [選項][目錄或文件名]ls -a
:列出文件下所有的文件锻煌,包括以“.“開頭的隱藏文件
ls -lh *.log :列出文件的詳細信息(.log結(jié)尾姻蚓,*為通配符代表任意多個字符)
file 文件或目錄 :顯示文件的類型(目錄狰挡、text释涛、zip唇撬、shell腳本等)
mkdir dir1 :創(chuàng)建目錄(dir1)(mkdir為make directory的縮寫)
mkdir -p ./dir1/dir2 :遞歸創(chuàng)建目錄(-p:父目錄不存在時展融,同時建立)
touch a.txt :創(chuàng)建文件a.txt
?rm:可以刪除一個目錄中的一個或多個文件或目錄告希,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉; 語法:rm
(選項)(參數(shù))(注:如果參數(shù)中含有目錄,則必須加上-r選項);
rm 文件 :刪除文件
rm -r 目錄或文件 :刪除目錄(及目錄下所有文件)(非空也可以)
rm -rf 目錄或文件 :強制刪除首装,如:rm -rf * 為刪除當(dāng)前目錄下所有文件
find -inum 1842601 -exec rm -rf {} ;
:刪除亂碼文件或目錄(會提示找不到此文件或文件夾但其實已經(jīng)刪除了)(上傳中文文件會亂碼仙逻,rm命令刪除不了)(先使用ls
-i命令找到inode涧尿,即文件或目錄前面的數(shù)字字符串,如1842601;)
?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 :移動多個文件到某目錄下
?cp:復(fù)制文件或目錄;cp命令可以將單個或多個文件復(fù)制到一個已經(jīng)存在的目錄下;
常用:cp -ai 文件或目錄 目標(biāo)目錄;
cp -ai /opt/abc /opt/git/
:復(fù)制abc目錄(或文件)到git目錄下(選項a表示文件的屬性也復(fù)制园担、目錄下所有文件都復(fù)制;i表示覆蓋前詢問)
?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為所屬者)
文件查找
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ù);
? find:在目錄結(jié)構(gòu)中搜索文件顶猜,并執(zhí)行指定的操作
語法:find pathname -options [-print -exec ...]
pathname :為
find命令所查找的目錄路徑驶兜。例如用.來表示當(dāng)前目錄远寸,用/來表示系統(tǒng)根目錄(find查找范圍為目標(biāo)目錄及其子目錄所有文件及目錄);
-exec: find命令對匹配的文件執(zhí)行該參數(shù)所給出的shell命令驰后。相應(yīng)命令的形式為'command' { } ;,注意{
}和\;之間的空格;
-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出;
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用來處理字符串);
grep -i 'HELLO' . -r -n :在當(dāng)前目錄及子目錄下查找文件內(nèi)容中包含hello的文件并顯示文件路徑(-i表示忽略大小寫)
which java :在環(huán)境變量$PATH設(shè)置的目錄里查找符合條件的文件蜘腌,并顯示路徑(查詢運行文件所在路徑)
whereis java :查看安裝的軟件的所有的文件路徑(whereis
只能用于查找二進制文件、源代碼文件和man手冊頁谁鳍,一般文件的定位需使用locate命令)
查看文件的內(nèi)容
cat [-n] 文件名 :顯示文件內(nèi)容倘潜,連行號一起顯示
less 文件名 :一頁一頁的顯示文件內(nèi)容(搜索翻頁同man命令)
head [-n] 文件名 :顯示文件頭n行內(nèi)容涮因,n指定顯示多少行
tail [-nf] 文件名:顯示文件尾幾行內(nèi)容,n指定顯示多少行,f用于實時追蹤文件的所有更新伺绽,常用于查閱正在改變的日志文件(如tail -f -n
3 a.log 表示開始顯示最后3行奈应,并在文件更新時實時追加顯示,沒有-n默認10行)
sed -n '2,$p' ab :顯示第二行到最后一行;
sed -n '/搜索的關(guān)鍵詞/p' a.txt :顯示包括關(guān)鍵詞所在行
less a.txt |grep 搜索的關(guān)鍵詞 :顯示包括關(guān)鍵詞所在行
cat -n a.txt |grep 搜索的關(guān)鍵詞 :顯示包括關(guān)鍵詞所在行(連行號一起顯示)
cat filename |grep abc -A10 :查看filename中含有abc所在行后10行(A10)肩榕、前10行(B10)內(nèi)容
less a.txt|grep git
:顯示關(guān)鍵詞所在行株汉,管道符”|”它只能處理由前面一個指令傳出的正確輸出信息,對錯誤信息信息沒有直接處理能力蝙云。然后傳遞給下一個命令勃刨,作為標(biāo)準(zhǔn)的輸入;
cat /etc/passwd |awk -F ':' '{print $1}' :顯示第一列
文本處理
ls -l>file :輸出重定向>(改變原來系統(tǒng)命令的默認執(zhí)行方式):ls -l命令結(jié)果輸出到file文件中,若存在各聘,則覆蓋
cat file1 >>file
:輸出重定向之cat命令結(jié)果輸出追加到file文件(>表示覆蓋原文件內(nèi)容躲因,>>表示追加內(nèi)容)
ls fileno 2>file : 2>表示重定向標(biāo)準(zhǔn)錯誤輸出(文件不存在大脉,報錯信息保存至file文件);
cowsay
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' 修改的文件
grep -o '關(guān)鍵詞' test.log|wc -l :統(tǒng)計某個關(guān)鍵詞在某個文件中出現(xiàn)的次數(shù)(如出現(xiàn)3次輸出3)
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:強迫用戶下次登錄時修改口令
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)
SSH 免密登錄 :
#使用OpenSSH生成密鑰
ssh-keygen -t rsa
#公鑰信息寫入authorized_keys文件中并設(shè)置權(quán)限
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#生成putty的私鑰(Putty使用的私鑰格式和OpenSSH生成的有點不同茫船,需要轉(zhuǎn)換一下putty才能使用)
把私鑰id_rsa下載到本地后后綴改成.ppk扭屁,如id_rsa_ip_commonuser.ppk
使用puttygen工具的“Load”讀取id_rsa文件料滥,點擊“Save private key”保留私鑰;
putty關(guān)聯(lián)私鑰文件即可登陸服務(wù)器
磁盤管理
fdisk -l :查看磁盤信息(可查各個硬盤容量大小葵腹、可查各硬盤分區(qū)情況)(各硬盤或硬盤下分區(qū)必須掛載到某個目錄才能被使用)
fdisk /dev/sdb :對硬盤sdb創(chuàng)建分區(qū)
mkfs.ext4 /dev/vdb1 :修改格式化硬盤分區(qū)vdb1的文件系統(tǒng)類型為ext4
df -TH :顯示磁盤的空間使用情況屿岂、文件系統(tǒng)類型爷怀、掛載點(硬盤掛載了才會顯示)
df -h /var/log :(顯示log所在分區(qū)(掛載點)运授、目錄所在磁盤及可用的磁盤容量)
du -sm /var/log/ | sort -rn* : 根據(jù)占用磁盤空間大小排序(MB)某目錄下文件和目錄大小
mount /dev/sda1 /mnt :硬盤sda1掛載到/mnt目錄(mount 裝置文件名 掛載點)
mount -t cifs -o username=luolanguo,password=win用戶賬號密碼,vers=3.0
//10.2.1.178/G /mnt/usb :遠程linux 共享掛載windows的U盤,G為U盤共享名,需設(shè)置U盤共享
mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS
:掛載iso文件
umount /dev/sda1 :取消掛載(umount 裝置文件名或掛載點)
壓縮柒室、解壓和打包備份
?
單純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)下載到本地機器上的deb包.
apt-get能在線下載并安裝deb包,能更新系統(tǒng),且還能自動處理包與包之間的依賴問題,這個是dpkg工具所不具備的;
rpm 只能安裝已經(jīng)下載到本地機器上的rpm 包. yum能在線下載并安裝rpm包,能更新系統(tǒng),且還能自動處理包與包之間的依賴問題,這個是rpm
工具所不具備的;
yum弟翘、rpm安裝文件分布在/usr的bin骄酗、lib趋翻、share不同目錄睛琳,不用配置PATH,直接用命令踏烙,但可用命令卸載更新;
手動編譯軟件师骗,默認位置為/usr/local下不同子目錄下,不用配置PATH直接用命令(手動指定安裝路徑需要加PATH),使得軟件更新和刪除變得很麻煩讨惩。編譯安裝的軟件沒有卸載命令辟癌,卸載就是把所有這個軟件的文件刪除。
二進制(Binaries)包
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配置生效)
yum安裝常用工具
yum install -y unzip zip :安裝壓縮魂角、解壓縮命令(zip昵济、unzip)
rpm包手動下載安裝
? yum中沒有時用,適用于CentOS、Fedora访忿、RedHat及類似系統(tǒng);
wget -P /opt https://網(wǎng)址 :下載到/opt目錄
rpm -ivh wps-office-版本.x86_64.rpm :安裝rpm包(包要先下載)(要先裝依賴包)
rpm -e wps-office :卸載軟件(注意不要軟件名不要版本號)
rpm -qa |grep wps :查看安裝的rpm包(可用于查詢rpm包是否被安裝)
rpm -ql 軟件名稱 :查看rpm包安裝路徑(軟件名稱可通過rpm -qa|grep java)
apt方式安裝
? 安裝deb包瞧栗,類似yum安裝,適用于Debian, Ubuntu 以及類似系統(tǒng);
apt-get install aptitude :安裝aptitude工具,實現(xiàn)依賴自動安裝醉顽,依賴版本自動降級或升級
aptitude install 軟件 :安裝軟件(推薦這種方式安裝)
apt-cache search 軟件 :搜索軟件
apt-get install 軟件 :安裝軟件
apt-get purge 軟件 :卸載軟件(包括配置文件沼溜,只刪除軟件purge換成remove)
apt-get upgrade :更新所有已安裝的軟件包
apt-get update :升級列表中的軟件包
apt-get clean :從下載的軟件包中清理緩存
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 軟件名稱 :查軟件安裝的文件
解壓即用
? 大多數(shù)非開源的商業(yè)軟件都采取這種辦法;
? 二進制(Binaries)包如apache-jmeter-3.3.tgz,下載復(fù)制解壓到/opt游添,然后然后將該軟件的 bin 目錄加入到 PATH
中即可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin);
軟件自己的模塊/包管理器
? 如python:系統(tǒng)的源中不可能包含該軟件的所有模塊; 系統(tǒng)的源中該軟件的模塊的更新要遠遠滯后于最新版本;手動安裝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 軟件目錄名稱 :卸載軟件
服務(wù)與進程
netstat -ntlp :查看服務(wù)器所有被占用端口
netstat -lnp|grep 端口號/進程號/進程名 :根據(jù)查端口是否打開確認服務(wù)是否啟動廊酣,配合ps命令可查服務(wù)占用的端口
常用參數(shù):
-p:獲取進程名能耻、進程號;
-n:禁用域名解析功能,查出IP且速度快;
-l:只列出監(jiān)聽中的連接;
-t:只列出 TCP協(xié)議的連接亡驰。
示例:ps aux|grep tomcat netstat -lnp|grep 進程號 :查tomcat服務(wù)占用的端口;
ps aux|grep 進程號/進程啟動命令/服務(wù)名
:進程查看命令ps(可查進程狀態(tài);進程占用cpu晓猛、內(nèi)存;配合netstat根據(jù)某服務(wù)端口查出進程號用于殺進程,查服務(wù)啟動命令及服務(wù)路徑 )
linux的相關(guān)知識凡辱,點擊下方鏈接進行學(xué)習(xí)戒职。
http://www.makeru.com.cn/live/5413_2337.html?s=165154
1小時帶你入門Linux下C語言開發(fā)
http://www.makeru.com.cn/live/5413_2322.html?s=165154
Linux怎么玩?BAT導(dǎo)師帶你入門!
http://www.makeru.com.cn/live/5413_2171.html?s=165154
搞定Linux內(nèi)核,嵌入式開發(fā)者的必備修養(yǎng)
http://www.makeru.com.cn/live/5413_2143.html?s=165154
Linux高手必備:多線程編程技術(shù)
http://www.makeru.com.cn/live/5413_1977.html?s=165154
Linux系統(tǒng)編程面試必考:Linux多線程編程
http://www.makeru.com.cn/live/5413_1936.html?s=165154
linux系統(tǒng)編程必備:老司機帶你深入淺出linux系統(tǒng)信號
http://www.makeru.com.cn/live/5413_1937.html?s=165154
僅有30%的人了解的Linux網(wǎng)絡(luò)高并發(fā)技術(shù)之epoll
http://www.makeru.com.cn/live/5413_1908.html?s=165154
Linux系統(tǒng)編程面試必考:Linux多線程編程"陷阱"
http://www.makeru.com.cn/live/5413_1876.html?s=165154
linux驅(qū)動開發(fā)必備:全面認識設(shè)備樹