歡迎前往CSND查看,我的博客原文https://blog.csdn.net/smilehappiness/article/details/105176667
@
Linux使用總結
1.Linux介紹
- 摘自-百度百科
Linux,全稱GNU/Linux,是一套免費使用和自由傳播的類UNIX操作系統,其內核由林納斯·本納第克特·托瓦茲於1991年第一次釋出,它主要受到Minix和Unix思想的啟發,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的Unix工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。Linux有上百種不同的發行版,如基於社區開發的debian、archlinux,和基於商業開發的Red Hat Enterprise Linux、SUSE、oracle linux等。
- 歷史背景
Linux內核kernel最初是由芬蘭人李納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的,在1991年10月5日第一次正式向外公布;
在linux發布之前,有一種操作系統叫unix,由於價格昂貴不開放源碼,所以李納斯·托瓦茲(Linus Torvalds)決心要開發自己免費的操作系統,Linux借鑒了unix的思想,但沒有一行unix的代碼,linux系統是從unix系統發展出來的;
Linux 英文解釋為Linux is not Unix,現在業界有一種說法叫:類Unix;
- Linux構成
Linux是由Linux Kernel+軟件包構成;
- 發行版本
Linux的發行版就是將Linux內核與應用軟件做一個打包。
目前市面上比較知名的Linux發行版有:
RedHat、CentOS、Ubuntu、Fedora、Debian、Aliyun Linux、SUSE Linux、Open SUSE、CoreOS、FreeBSD等;
一般來講Web應用都選擇CentOS,像Java、PHP等都是CentOS操作系統;ASP、.NET、SQL Server微軟的一系列組件選擇Windows Server操作系統;
2.Linux常用遠程連接工具
建議童鞋們買個服務器,阿里雲、華為雲都可以,Linux使用必須多練習,才能達到熟練掌握。
- 遠程連接工具
SecureCRT
官網下載:https://www.vandyke.com
XShell
官網下載:https://www.netsarang.com/zh/xshell/
Putty
下載鏈接:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
XFTP
下載鏈接:https://www.netsarang.com/zh/xftp/
WinSCP
下載鏈接:https://winscp.net/eng/download.php
以上幾個遠程連接工具簡單說明一下:
SecureCRT這個工具可以直接連接並且上傳文件,當然,如果上傳文件到服務器,建議使用XFTP或者WinSCP,速度會快一些。
XShell和Putty,使用哪個都行,可以連接遠程Linux服務器。
推薦使用:Xshell + WinSCP組合
3.Linux常用命令總結
3.1 Linux特色目錄
...-~
一個點是表示當前目錄,兩個點是表示上一級目錄,一個橫杠表示上一個工作目錄,比如你cd -就返回到上一個工作目錄,~表示用戶的根目錄(/root);
3.2 磁盤管理
cd目錄進入某個目錄
cd /info/a進入多個目錄
cd該命令可以切換目錄
pwd顯示當前目錄
cd ..返回上一級目錄
cd /返回根目錄
fdisk -l查看新的分區
ll縱向列出當前目錄下目錄及文件
ll -a可以額外展示隱藏的目錄和文件
ls橫向列出當前目錄下目錄及文件
ls -a可以額外展示隱藏的目錄和文件
ll 和 ls命令區別:ll縱向展示目錄和文件,並且展示目錄的組、擁有者和權限,而ls僅僅橫向展示目錄和文件
ll -h可以列出目錄以及目錄的大小
dir列出當前目錄下的目錄及文件
df查看系統磁盤空間使用情況,df命令可以查看一級文件夾大小、使用比例、檔案系統及其掛入點,但對文件卻無能為力
df -h查看系統磁盤空間使用情況,參數-h 表示使用「Human-readable」的輸出,也就是在檔案系統大小使用 GB、MB 等易讀的格式,使得看起來更直觀
上面的命令輸出的第一個字段(Filesystem)及最后一個字段(Mounted on)分別是檔案系統及其掛入點。我們可以看到 /dev/sda1 這個分割區被掛在根目錄下。接下來的四個字段 Size、Used、Avail、及 Use% 分別是該分割區的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,當硬盤容量已滿時,您可能會看到已使用的百分比超過 100%,因為 FreeBSD 會留一些空間給 root,讓 root 在檔案系統滿時,還是可以寫東西到該檔案系統中,以進行管理。
df -T可以用來查看分區的文件系統
du查看文件和目錄的磁盤空間使用情況,du可以查看文件及文件夾的大小
du -h查看文件和目錄的磁盤空間使用情況
3.3 文件管理
mkdir創建目錄(文件夾)mkdir -p file1/file2遞歸創建多個目錄mkdir -v file4創建新目錄都顯示創建信息mkdir -vp {hello/,maven/}一個命令創建多個目錄結構參數解釋:
-p, --parents 可以是一個路徑名稱。
此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄
-v, --verbose 每次創建新目錄都顯示信息

touch創建空文件或將文件的最后修改時間改為當前時間rm -f刪除文件或目錄rm -rf遞歸刪除目錄以及目錄包含的所有文件mv 文件(夾)重命名或者將文件(夾)移動到指定目錄
命令格式: mv [參數] 源文件或目錄 目標文件或目錄參數說明:
-b :若需覆蓋文件,則覆蓋前先行備份。
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標文件已經存在,且 source 比較新,才會更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在后。
-v:顯示過程cat 文件名將整個文件內容輸出到控制台more 文件名逐屏輸出(按空白鍵space就往下一頁)less 文件名逐屏輸出(按PgUp、PgDn上下翻頁),到結束的時候退出按 qhead 文件名顯示頭10行tail 文件名顯示末尾10行cp文件復制cp -rf遞歸復制目錄find查找文件,比如:find ./ -name 文件名稱

find ./ -mtime +5查找5天前修改過的文件which在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果,這條命令主要是用來查找系統 PATH目錄下 的可執行文件。說白了就是查找那些我們已經安裝好的可以直接執行的命令。比如which mkdirwhereis查找文件,主要用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s),如果省略參數,則返回所有信息。
3.4 系統設置
-
ps -aux查看系統進程 -
ps -ef查看系統進程 -
kill pid殺掉進程 -
kill -9 pid強制殺掉進程 -
date顯示或設置系統日期和時間 -
echo $LANG顯示當前語言環境 -
locale查看是否有中文語言包,如有zh cn表示已經安裝了中文語言包 -
uname查看系統信息 -
cat /etc/centos-release查看當前centos版本(CentOS Linux release 7.6.1810 (Core)) -
who顯示當前已登錄的用戶信息 -
whoami當前登錄的是那個用戶 -
su 用戶名切換用戶 -
shutdown –h now關機 -
reboot重啟 -
clear清除屏幕,實際上內容並沒有清除,是移到最上面 -
Tab可以自動補齊命令或者文件名 -
top查看系統運行負載情況,Linux系統可以通過top命令查看系統的CPU、內存、運行時間、交換分區、執行的線程等信息。通過top命令可以有效的發現系統的缺陷出在哪里。是內存不夠、CPU處理能力不夠、IO讀寫過高。 詳細介紹可以參考我另一篇博文

-
uptime系統運行負載情況,這個相當於top第一行看到的信息
系統平均負載定義:在特定時間間隔內運行隊列中的平均進程數。
如果一個進程滿足以下條件則其就會位於運行隊列中:
a、它沒有在等待I/O操作的結果
b、它沒有主動進入等待狀態(也就是沒有調用'wait')
c、沒有被停止(例如:等待終止)一般來說,每個CPU內核當前活動進程數不大於3,則系統運行表現良好!當然這里說的是每個cpu內 核,也就是如果你的主機是四核cpu的話,那么只要uptime最后輸出的一串字符數值小於12即表示系統負載不是很嚴重.當然如果達到20,那就表示當前系統負載非常嚴重,估計打開執行web腳本非常緩慢
-
free顯示內存的使用情況 (kb) -
free -m顯示內存的使用情況 (m) -
free -h顯示內存的使用情況 (G)
3.5 Linux下的定時任務
Linux crontab 命令詳細使用,可參考我另一篇博文。
crontab -e 創建或者編輯crontab
crontab -l 查看crontab
crontab -r 刪除crontab,注意,這個命令會刪除所有的任務,一般不會使用
crontab使用舉例
*/1 * * * * echo "hello world" >> /opt/crontab.log
> 重定向覆蓋輸出,比如 > abc.txt
>> 重定向輸出追加,比如 >>abc.txt
| 這個豎線表示管道符號,用於把管道左邊的輸出作為右邊的輸入,如常見的ps -ef | grep tomcat
> a.log 清空日志
重定向這塊,可以參考博文:https://blog.csdn.net/smilehappiness/article/details/105181739
3.6 用戶管理
這里不做詳細介紹,具體的可以參考鏈接:https://www.runoob.com/linux/linux-user-manage.html
我只列幾個常用的命令:
-
用戶操作
useradd用戶名 添加用戶
userdel -r zhangsan刪除用戶(userdel 常用的選項是 -r,它的作用是把用戶的主目錄一起刪除)
passwd修改用戶密碼,修改當前登錄用戶密碼passwd
passwd zhangsan修改指定用戶zhangsan密碼,這個只有root有該權限
id 用戶名可以獲取用戶的id等信息,如:uid=1001(用戶名) gid=1002(test) groups=1002(test) -
用戶組操作
cat /etc/passwd查看系統中的所有用戶
cat /etc/group查看系統中的所有用戶組
groupadd 組名創建用戶組
groupdel 組名刪除用戶組
groups查看當前用戶所在組
groups 用戶名查看指定用戶所在組
usermod -g 組名(A) 用戶名(B)給已有的用戶增加工作組,將用戶B加入組A(該命令用於修改用戶的基本信息)或者使用命令:gpasswd -a 用戶名 組名
gpasswd -d user group將一個用戶從某個組中刪除,注意:需要保證 group 不是 user 的主組
3.7 文件權限
-
文件權限總結介紹
使用ll命令,可以查看當前目錄下,所有目錄和文件的用戶、組以及權限等信息

在Linux常見的文件類型有7種,如下圖所示:

文件類型和權限
-rw-rw-rw-表示文件
drw-rw-rwd表示目錄文件夾
srw-rw-rws表示socket套接字文件
brw-rw-rwb表示Block device塊設備
crw-rw-rwc表示Character Device字符設備文件的權限只有3種:r,讀權限;w,寫權限;x,執行權限。權限的值可以用數字表示分別為,r:4,w:2,x:1
r--read 表示讀權限,對應的值為4
w--write 表示寫權限,對應的值為2
x--execute 表示可執行權限,對應的值為1
rwx=7表示擁有所有的讀、寫、可執行權限
常見644、755、777三種權限 -
drwxr-xr-x詳細介紹:

第1個字母:代表文件類型
第2~4字母:代表用戶的權限,這三個字母對應的為屬主位,表示創建該文件者或被指定的文件所屬者
第5~7字母:代表用戶組的權限,這三個字母對應的為屬組位,表示文件的所屬組,在該組內的非屬主用戶對該文件擁有該屬組權限
第8~10字母:代表其他的用戶的權限,既不屬於屬主又不在屬組的用戶
>文件中rwx的具體含義:
r:可以使用類似cat等命令查看文件內容
w:可以編輯或刪除此文件
x:可以在命令提示符下當做命令提交給內核運行
>目錄中rwx的具體含義:
r:可以對此目錄執行ls以列出內部的所有文件
w:可以在此目錄創建文件
x:可以使用cd切換進此目錄,也可以使用ls -l查看內部文件的詳細信息
-
設置文件的讀寫執行權限
chmod 640 aa.txt
-R遞歸,將設置的權限應用到目錄以及目錄下面的所有文件,如:chmod -R 755 /usr/local -
修改文件所屬用戶
chown centos aa.txt
-R 遞歸修改文件及其下的子文件的所屬用戶
chown -R centos /usr/local -
修改文件所屬組
chgrp centos aa.txt
-R 遞歸修改文件及其下的子文件的所屬組
chgrp -R centos /usr/localhost -
一次性修改屬主和屬組
chown [OWNER]:[GROUP]] FILE
chown centos:centos aa.txt
chown -R centos:centos /usr/local -
查看用戶所在組
groups
3.8 文檔處理
grep 對文本進行匹配,搜索,如:ps -ef | grep tomcat
sort 排序,如:cat aa.log | sort
uniq 去除相鄰重復的行,如:cat aa.txt| sort | uniq
wc 依次輸出 行數、單詞數、字符數,如:cat aa.txt| wc
日志打印輸出、日志內容查找
grep -A 100 'Exception' catalina.out 匹配關鍵詞的后面100行 after
grep -B 100 'Exception' catalina.out 匹配關鍵詞的前面100行 befer
grep -C 100 'Exception' catalina.out 匹配關鍵詞的上下100行 center
或者
cat catalina.out | grep -C 100 'Exception'
cat catalina.out | grep -A 100 'Exception'
cat catalina.out | grep -B 100 'Exception'
tail -f catalina.out實時查看日志文件
tail -100f catalina.out實時查看日志文件末尾一百行
tail -f -n 100 catalina.out 實時查看日志末尾100行
3.9 網絡通訊
curl
抓取網絡文件內容,比如網頁
wget 網絡下載
yes、y 對linux命令執行后的接受、肯定、是、確認,如果不接受、不確認、否定 就輸入 no 或者 n
ifconfig 查看系統IP
curl ipinfo.io/ip或者curl ifconfig.me 查看外網ip
ping 測試某個地址是否可以連通
lsof -i 端口號 用於查看某一端口的占用情況,比如查看8000端口使用情況,lsof -i 8000,如果不存在的話,安裝:yum -y install lsof
netstat 查看所有網絡端口,如:netstat -nlp
netstat -tunlp | grep 端口號,用於查看指定的端口號的進程情況,如查看8000端口的情況,netstat -tunlp | grep 8000
netstat 相關參數說明:
-t (tcp) 僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化為數字
-l 僅列出在Listen(監聽)的服務狀態
-p 顯示建立相關鏈接的程序名
3.10 備份壓縮
-
tar 壓縮與解壓縮
解壓
tar -zxvf xxx.tar.gz
tar -zxvf xxx.tar.gz -C /usr/local(可以通過-C執行把文件解壓到哪里去)
tar -xvf xxx.tar
壓縮:
tar -zcvf xxx.tar.gz ./file/*
tar -cvf xxx.tar ./file/* -
zip 壓縮與解壓縮
zip a.zip a.txt壓縮為zip格式
unzip a.zip解壓zip格式的壓縮包 -
Windows里面:rar zip
壓縮文件類型:tartar.gztar.bz2tar.xz,他們依次壓縮得越厲害,壓縮速度當然就越來越慢
解壓都可以使用:tar -xvf壓縮(記住他們是z j J):
-zcvf file.tar.gz filenameOrDir這個壓縮成tar.gz格式
-jcvf file.tar.gz filenameOrDir壓縮成tar.bz2格式
-Jcvf file.tar.gz filenameOrDir壓縮成tar.xz格式
3.11 Linux上rz和sz的使用
小文件同步到Linux服務器上,有時候不需要使用XFTP或者WinSCP等,可以使用rz和sz操作。
安裝:yum -y install lrzsz
rz 上傳文件
sz下載文件
本文參考鏈接:菜鳥教程
寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,希望盡自己的努力,做到更好,大家一起努力進步!
如果有什么問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!




