linux換源
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
linux下多版本設(shè)置
#設(shè)置多版本優(yōu)先級(jí)
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 100
update-alternatives --install /usr/bin/python python /usr/bin/python3.6 200
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 300
#打印結(jié)果:
update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python (python) in auto mode
root@6dd5bcd1cc5d:/var/lib/apt/lists# python
Python 3.8.0 (default, Feb 25 2021, 22:10:10)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
#查看設(shè)置好的優(yōu)先級(jí)
update-alternatives --config python
#打印結(jié)果:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.8 300 auto mode
1 /usr/bin/python2.7 100 manual mode
2 /usr/bin/python3.6 200 manual mode
3 /usr/bin/python3.8 300 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives --install /usr/bin/pip pip /usr/bin/pip
#查看設(shè)置好的優(yōu)先級(jí)
update-alternatives --config pip
#移除pip2
apt remove python2-pip
#查看設(shè)置好的優(yōu)先級(jí)
update-alternatives --config python
#打印結(jié)果:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.8 300 auto mode
1 /usr/bin/python2.7 100 manual mode
2 /usr/bin/python3.6 200 manual mode
3 /usr/bin/python3.8 300 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives --install /usr/bin/pip pip /usr/bin/pip
#查看設(shè)置好的優(yōu)先級(jí)
update-alternatives --config pip
#移除pip2
apt remove python2-pip</pre>
背景
經(jīng)常在 Linux 系統(tǒng)上開發(fā),尤其是 Ubuntu 系統(tǒng)痴荐,因此對(duì)系統(tǒng)的文件結(jié)構(gòu)進(jìn)行一個(gè)整理,便于開發(fā)時(shí)使用正確的方式。
目標(biāo)結(jié)構(gòu)
[圖片上傳失敗...(image-f7b1f6-1673277509673)]
在終端中使用 tree 指令驳棱,查看根目錄結(jié)構(gòu),輸出如下
/
├── bin #bin 是 Binaries (二進(jìn)制文件) 的縮寫, 這個(gè)目錄存放著最經(jīng)常使用的命令农曲,如 ps社搅、cat、cp、echo 等常用的系統(tǒng)指令
├── boot #這里存放的是啟動(dòng) Linux 時(shí)使用的一些核心文件形葬,包括一些連接文件以及鏡像文件
├── cdrom ,
├── dev #dev 是 Device(設(shè)備) 的縮寫, 該目錄下存放的是 Linux 的外部設(shè)備合呐,在 Linux 中訪問設(shè)備的方式和訪問文件的方式是相同的
├── etc #etc 是 Etcetera(等等) 的縮寫,這個(gè)目錄用來存放所有的系統(tǒng)管理所需要的配置文件和子目錄。
├── home #用戶的主目錄笙以,在 Linux 中淌实,每個(gè)用戶都有一個(gè)自己的目錄,一般該目錄名是以用戶的賬號(hào)命名的
├── initrd.img -> boot/initrd.img-5.4.0-73-generic
├── initrd.img.old -> boot/initrd.img-5.4.0-72-generic
├── lib #lib 是 Library(庫) 的縮寫源织,這個(gè)目錄里存放著系統(tǒng)最基本的動(dòng)態(tài)連接共享庫翩伪,幾乎所有的應(yīng)用程序都需要用到這些共享庫
├── lib64 #
├── lost+found #這個(gè)目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機(jī)后谈息,這里就存放了一些文件缘屹。
├── media #linux 系統(tǒng)會(huì)自動(dòng)識(shí)別一些設(shè)備,例如U盤侠仇、光驅(qū)等等轻姿,當(dāng)識(shí)別后,Linux 會(huì)把識(shí)別的設(shè)備掛載到這個(gè)目錄下逻炊。
├── mnt #系統(tǒng)提供該目錄是為了讓用戶臨時(shí)掛載別的文件系統(tǒng)的互亮,我們可以將光驅(qū)掛載在 /mnt/ 上,然后進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容了余素。
├── opt #opt 是 optional(可選) 的縮寫豹休,這是給主機(jī)額外安裝軟件所擺放的目錄。默認(rèn)是空的桨吊。
├── proc #proc 是 Processes(進(jìn)程) 的縮寫威根,/proc 是一種偽文件系統(tǒng)(也即虛擬文件系統(tǒng)),存儲(chǔ)的是當(dāng)前內(nèi)核運(yùn)行狀態(tài)的一系列特殊文件视乐,這個(gè)目錄是一個(gè)虛擬的目錄洛搀,它是系統(tǒng)內(nèi)存的映射,我們可以通過直接訪問這個(gè)目錄來獲取系統(tǒng)信息佑淀,這個(gè)目錄的內(nèi)容不在硬盤上而是在內(nèi)存里留美。
├── root #該目錄為系統(tǒng)管理員,也稱作超級(jí)權(quán)限者的用戶主目錄伸刃。
├── run #是一個(gè)臨時(shí)文件系統(tǒng)谎砾,存儲(chǔ)系統(tǒng)啟動(dòng)以來的信息。當(dāng)系統(tǒng)重啟時(shí)捧颅,這個(gè)目錄下的文件應(yīng)該被刪掉或清除棺榔。如果你的系統(tǒng)上有 /var/run 目錄,應(yīng)該讓它指向 run隘道。
├── sbin #s 就是 Super User 的意思,是 Superuser Binaries (超級(jí)用戶的二進(jìn)制文件) 的縮寫,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序谭梗。
├── snap #snap應(yīng)用程序的程序文件
├── srv #該目錄存放一些服務(wù)啟動(dòng)之后需要提取的數(shù)據(jù)忘晤。
├── swapfile #
├── sys #系統(tǒng)中的設(shè)備和文件層次結(jié)構(gòu)。文件夾中存儲(chǔ)系統(tǒng)信息激捏,用戶需要的信息也從中調(diào)用设塔。
├── tmp #tmp 是 temporary(臨時(shí)) 的縮寫這個(gè)目錄是用來存放一些臨時(shí)文件的。
├── usr #usr 是 unix shared resources(共享資源) 的縮寫远舅,這是一個(gè)非常重要的目錄闰蛔,用戶的很多應(yīng)用程序和文件都放在這個(gè)目錄下,類似于 windows 下的 program files 目錄图柏。
├── var #var 是 variable(變量) 的縮寫序六,這個(gè)目錄中存放著在不斷擴(kuò)充著的東西,我們習(xí)慣將那些經(jīng)常被修改的目錄放在這個(gè)目錄下蚤吹。包括各種日志文件例诀。
├── vmlinuz -> boot/vmlinuz-5.4.0-73-generic
└── vmlinuz.old -> boot/vmlinuz-5.4.0-72-generic
補(bǔ)充
/usr/bin:系統(tǒng)用戶使用的應(yīng)用程序與指令。
/usr/sbin:超級(jí)用戶使用的比較高級(jí)的管理程序和系統(tǒng)守護(hù)程序裁着。
/usr/src:內(nèi)核源代碼默認(rèn)的放置目錄繁涂。</pre>
ubuntu常用指令
[圖片上傳失敗.
查看當(dāng)前文件夾下的每個(gè)文件大小
du -d 1 -h
查看當(dāng)前磁盤的大小信息
df -h
常用快捷鍵
ctrl+L #清屏
vim file.txt #打開文件后, :wq保存退出二驰,:q退出 :set nu顯示行號(hào)
獲取當(dāng)次操作有效的管理員權(quán)限
sudo <命令> <參數(shù)>
文件/文件夾管理常用命令
#顯示當(dāng)前路徑
pwd
#切換目錄
cd <文件夾相對(duì)路徑> #進(jìn)入到指定目錄
cd .. #進(jìn)入到當(dāng)前目錄的上一級(jí)目錄
cd - #進(jìn)入上一次所采的目錄
cd ~ #進(jìn)入當(dāng)前用戶的主目錄
#列出目錄下所有文件
ls
ls <文件夾相對(duì)路徑> #列出指定目錄下的文件和文件夾
ls <文件夾相對(duì)路徑> -l #列出文件/文件夾的詳細(xì)信息
ls <文件夾相對(duì)路徑> -lh #列出文件/文件夾的詳細(xì)信息 以K扔罪,M,G 格式顯示,方便查看
#創(chuàng)建文件夾
mkdir <文件夾名稱> #創(chuàng)建指定名稱的文件夾
#拷貝
cp <原始路徑> <目標(biāo)路徑> #將原始路徑的文件復(fù)制到目標(biāo)路徑
cp -i <原始路徑> <目標(biāo)路徑> #將原始路徑的文件復(fù)制到目標(biāo)路徑,覆蓋前給出提示(推薦)
cp -r <原始路徑> <目標(biāo)路徑> #將原始路徑下所有文件夾及文件夾下的文件復(fù)制到目標(biāo)路徑下
#移動(dòng)
mv <原始路徑> <目標(biāo)路徑> #將原始路徑的文件移動(dòng)到目標(biāo)路徑
#刪除指定文件
rm <文件名>
rm -r <文件夾名> #刪除指定目錄下的所有文件和文件夾
rm -f <文件夾名> #強(qiáng)制刪除指定文件夾
rm -rf <文件夾名> #強(qiáng)制刪除指定目錄下的所有文件和文件夾
rm -rf * #非常危險(xiǎn)的指令桶雀,不要使用?蠼汀!背犯!</pre>
應(yīng)用安裝卸載常用命令
安裝默認(rèn)路徑
#Linux 的軟件安裝目錄是也是有講究的坏瘩,理解這一點(diǎn),在對(duì)系統(tǒng)管理是有益的
/usr:系統(tǒng)級(jí)的目錄漠魏,可以理解為C:/Windows/倔矾,/usr/lib理解為C:/Windows/System32。
/usr/local:用戶級(jí)的程序目錄柱锹,可以理解為C:/Progrem Files/哪自。用戶自己編譯的軟件默認(rèn)會(huì)安裝到這個(gè)目錄下。
/opt:用戶級(jí)的程序目錄禁熏,根目錄下的opt 給主機(jī)安裝額外的軟件壤巷,使得其他用戶可用,可以理解為D:/Software瞧毙,這里可以用于放置第三方大型軟件(或游戲)胧华,當(dāng)你不需要時(shí)寄症,直接rm -rf掉即可。在硬盤容量不夠時(shí)矩动,也可將/opt單獨(dú)掛載到其他磁盤上使用有巧。
#apt命令下載的軟件包默認(rèn)保存在"/var/cache/apt/archives"目錄下
#apt命令默認(rèn)將軟件安裝在"/usr/share"目錄下
#可執(zhí)行文件默認(rèn)安裝在"/usr/bin"目錄下
#庫文件默認(rèn)安裝在"/usr/lib"目錄下
#配置文件默認(rèn)安裝在"/etc"目錄下
#下載文件默認(rèn)會(huì)保存到"~/Downloads"目錄下
apt在線安裝
#更新安裝源
sudo apt update #從所有軟件安裝源里更新可安裝軟件信息列表
#升級(jí)
sudo apt upgrade #升級(jí)所有可升級(jí)的軟件包
#安裝
sudo apt install <軟件包名稱> #安裝指定軟件包
sudo apt -y install <軟件包名稱> #安裝指定軟件包,再命令行交互式提示[Y/N]時(shí)自動(dòng)輸入y
sudo apt -no-install-recommends install <軟件包名稱> #安裝指定軟件包,且避免安裝非必須文件
#移除
sudo apt remove <軟件包名稱> #移除指定的軟件包
sudo apt purge <軟件包名稱> #移除指定的軟件包,同時(shí)移除相關(guān)配置文件
#清理
sudo apt autoremove #移除所有曾被自動(dòng)安裝但是現(xiàn)在已經(jīng)無任何依賴關(guān)系的軟件包
sudo apt clean #刪除所有已經(jīng)下載的軟件包
#編輯源列表
sudo gedit /etc/apt/sources.list
#修復(fù)依賴損壞 非常神奇有用的指令
sudo apt-get install -f</pre>
dpkg離線安裝.deb包
#.deb格式 軟件包安裝
sudo dpkg -i <安裝包文件名>.deb
#.deb格式 軟件包卸載
sudo dpkg -r <軟件包名稱></pre>
打包解包命令
#打包.gzip格式
tar -czf <文件名>.tar.gz./* #將當(dāng)前目錄下所有文件壓縮打包
#解包.gzip格式
tar -xzf <文件名>.tar.gz #將指定文件解壓縮包
#后綴 -c 實(shí)現(xiàn)打包功能
#后綴 -x 實(shí)現(xiàn)解包功能
#后綴 -z 實(shí)現(xiàn).gzip格式的壓縮解壓功能
#后綴 -f 指定文件名悲没,這個(gè)參數(shù)必須放在最后
#解包.zip格式
unzip <文件名>.zip
#解包.rar格式
sudo apt install unrar #先安裝unrar
unrar <文件名>.rar #解壓</pre>
常用信息查詢命令
| 功能 | 命令行 |
| 查看內(nèi)核版本 | uname -a |
| 查看ubuntu版本 | cat /etc/issue |
| 查看CPU信息 | cat /proc/cpuinfo |
| 查看USB設(shè)備 | lsusb |
| 查看硬盤剩余空間 | df -h |
| 查看進(jìn)程占用資源的實(shí)時(shí)情況 | top |
| 顯示有線網(wǎng)卡當(dāng)前連接信息(常用于查ip) | ifconfig eth0 |
| 顯示無線網(wǎng)卡當(dāng)前連接信息(常用于查ip) | ifconfig wlan0 |
| 查詢當(dāng)前系統(tǒng)正在通過TCP/IP協(xié)議監(jiān)聽的進(jìn)程信息 | netstat -lt |
軟鏈接命令ln
這是linux中一個(gè)非常重要命令篮迎,請(qǐng)大家一定要熟悉。它的功能是為某一個(gè)文件在另外一個(gè)位置建立一個(gè)同步的鏈接示姿,這個(gè)命令最常用的參數(shù)是-s 是代號(hào)(symbolic)的意思甜橱。具體用法是:
#注意不需要提前創(chuàng)建目標(biāo)文件路徑
#創(chuàng)建軟連接
ln -s 源文件 目標(biāo)文件
#舉例
ln -s /home/zxl/DATA data
ln -s log2013.log link2013</pre>
當(dāng) 我們需要在不同的目錄,用到相同的文件時(shí)栈戳,我們不需要在每一個(gè)需要的目錄下都放一個(gè)必須相同的文件岂傲,我們只要在某個(gè)固定的目錄,放上該文件荧琼,然后在其它的 目錄下用ln命令鏈接(link)它就可以譬胎,不必重復(fù)的占用磁盤空間。
有兩點(diǎn)要注意:
第一命锄,ln命令會(huì)保持每一處鏈接文件的同步性堰乔,也就是說,不論你改動(dòng)了哪一處脐恩,其它的文件都會(huì)發(fā)生相同的變化镐侯;
第二,ln的鏈接又軟鏈接 和硬鏈接兩種驶冒,
軟鏈接ln -s xx xx ,它只會(huì)在你選定的位置上生成一個(gè)文件的鏡像苟翻,不會(huì)占用磁盤空間,<mark style="box-sizing: border-box; background: rgb(255, 255, 0); color: rgb(0, 0, 0);">類似于Windows操作系統(tǒng)中的快捷方式</mark>,
硬鏈接ln xx xx,沒有參數(shù)-s, 它會(huì)在你選定的位置上生成一個(gè)和源文件大小相同的文件骗污,無論是軟鏈接還是硬鏈接崇猫,文件都保持同步變化。
如果你用ls察看一個(gè)目錄時(shí)需忿,發(fā)現(xiàn)有的文件后面有一個(gè)@的符號(hào)诅炉,那就是一個(gè)用ln命令生成的文件,用ls -l命令去察看屋厘,就可以看到顯示的link的路徑了涕烧。
#刪除軟連接
rm -rf 軟鏈接地址
#舉例
rm -rf data</pre>
上述指令中,軟鏈接地址最后不能含有“/”汗洒,當(dāng)含有“/”時(shí)议纯,刪除的是軟鏈接目標(biāo)目錄下的資源,而不是軟鏈接本身溢谤。
#修改軟連接
ln -snf /home/zxl/DATA data
linux 的遠(yuǎn)程鏈接
裝好linux系統(tǒng)之后瞻凤,Windows用戶單獨(dú)安裝xshell遠(yuǎn)程連接工具
通過ip addr show 查看linux的網(wǎng)絡(luò)IP信息</pre>