Linux 在工作中的使用(持續(xù)更新)

注意:Linux 腳本的編輯,最好是在服務(wù)器里面新建好文件再進(jìn)行編輯,否則會有很多的因為格式引起的問題,不管怎么改,都改不好的。

【重點】
1、在Linux里面,每一個目錄,都可以有它自己的權(quán)限,他們之間可以完全獨立也可以有所關(guān)聯(lián),你可以只訪問某一個目錄,也可以從根目錄訪問;即使你擁有dapp目錄的訪問權(quán)限,但是你可能沒有/dapp/sftp/esimsftp/的訪問權(quán)限,因為每個目錄都是可以獨立的;
2、如果沒有權(quán)限執(zhí)行某些命令,那么可能你要去申請并使用sudo權(quán)限了;

1.查看文件的大小 【 Disk Usage 】
(1) 查看某個文件或者文件夾大小 :du -sh 文件或者文件夾名
(2) 查看當(dāng)前目錄的所有文件的大小和列出當(dāng)前目錄的子目錄的大小 :du -h
(3) 目錄及其子目錄下所有目錄和文件的大?。篸u -ah 目錄名
(4) 整體目錄按照文件夾大小升序排序:du * -sh|sort -h
(5) 所有子文件夾大小按照升序排序: du * |sort -h

2.刪除文件【 remove 】
"rm -f" 強行刪除,忽略不存在的文件,不提示確認(rèn)。(f為force的意思)
"rm -i" 進(jìn)行交互式刪除,即刪除時會提示確認(rèn)。(i為interactive的意思)
"rm -r" 將參數(shù)中列出的全部目錄和子目錄進(jìn)行遞歸刪除。(r為recursive的意思)
"rm -v" 詳細(xì)顯示刪除操作進(jìn)行的步驟。(v為verbose的意思)
常用的刪除操作都是組合的,比如 : rm -rf 文件或者文件夾
【注意 : 要進(jìn)入到要刪除的文件或者文件夾的目錄里面】
" rm -f info.log.2020-08-.log " 批量刪除 刪除8月份的所有日志
" rm -f info.log.2020-{10,09}-
.log " 批量刪除 刪除9月和10月的全部日志
"/bin/rm" : 徹底刪除文件,被刪除的文件不進(jìn)入回收站 : /bin/rm 【文件名或文件范圍。e.g : /bin/rm info-2020-10-01.log 或者 /bin/rm info-2020-10-*.log】

3.壓縮和解壓文件或者文件夾
(1) 壓縮文件的大小,耗CPU : tar -jcvf warn.tar.bz2 info 把info文件夾里面的文件全部壓縮成 warn.tar.bz2 并保存在當(dāng)前目錄下
(2) 壓縮文件的大小,耗CPU (指定壓縮路徑) : tar -jcvf test/info.tar.bz2 info 這里表示把info文件夾的所有內(nèi)容壓縮到test文件夾下的info.tar.bz2文件中
(3) 解壓文件到指定的目錄 : tar -zxvf warn.tar.bz2 -C 【目錄路徑,前面不需要斜杠/,如果是多級目錄,要用/分割,如test/t1/t11】
(4) 批量壓縮:tar -vczf logbak/info-2020-02.tar.gz info-2020-02-*.log 把二月份所有的日志都壓縮到logbak路徑下的info-2020-02.log.gz文件中。
(5) 解壓tgz : tar zxvf 文件名
(6) 解壓和壓縮tar.gz : tar -zcvf 文件名(壓縮)tar -zxvf 文件名(解壓)

4.創(chuàng)建目錄或者文件
(1) mkdir 【文件夾名或者文件名】

5.復(fù)制
(1) 復(fù)制當(dāng)前文件到文件夾:
cp 【要移動的文件名】 【目標(biāo)路徑:../文件夾名 表示上級目錄的文件夾; ./文件夾名 當(dāng)前目錄的文件夾】
復(fù)制到當(dāng)前目錄的testInner文件夾 :cp info.tar.bz2 ./testInner
復(fù)制到上級目錄的debug文件夾 :cp info.tar.bz2 ../debug

(2) 復(fù)制當(dāng)前文件在當(dāng)前目錄,并修改名字
cp 【文件夾名1】 【文件夾名2】
復(fù)制當(dāng)前文件在當(dāng)前目錄 :cp info.tar.bz2 info2.tar.bz2

6.剪切
跟復(fù)制文件的語句相同,只是把cp 換成 mv

7.覆蓋上傳
rz -y 【回車,選擇同名文件】

8.上傳
rz 【回車,選擇文件】

9.下載
sz + 文件【回車】

10.查看當(dāng)前的目錄路徑 : pwd

11.重命名
把a重命名為b:mv a b

12.跳到日志結(jié)尾 shift+G

13.【進(jìn)入回收站】
查看文件系統(tǒng) : df -h
進(jìn)入回收站:cat /etc/pro cat ~/. => 得到 => cat ~/.bashrc => 得到 => alias rm=/bin/rmtrash.sh => cat /bin/rmtrash.sh => 得到 =>/tmp/.rmtrash/ => ll /tmp/.rmtrash/ => 可以對回收站的文件進(jìn)行操作了

14.【定時任務(wù)編寫】
        *  command
分  時  日  月  周  命令
解 釋:
第1列:分鐘1~59 每分鐘
第2列:小時1~23(0表示0點)
第3列:日期1~31
第4列:月份1~12
第5列:星期0~6(0表示星期天)
第6列:要運行的命令
例如每天三點定時請求某一個url : 00 03 * * * /usr/bin/curl http://crmpay.com/mpdown
crontab每分鐘定時執(zhí)行:
*/1 * * * * service mysqld restart //每隔1分鐘執(zhí)行一次
*/10 * * * * service mysqld restart //每隔10分鐘執(zhí)行一次

crontab每小時定時執(zhí)行:
0 */1 * * * service mysqld restart //每1小時執(zhí)行一次
0 */2 * * * service mysqld restart //每2小時執(zhí)行一次

crontab每天定時執(zhí)行:
0 10 * * * service mysqld restart //每天10點執(zhí)行
30 19 * * * service mysqld restart //每天19點30分執(zhí)行

crontab每周定時執(zhí)行:
0 10 * * 1 service mysqld restart //每周一10點執(zhí)行
30 17 * * 5 service mysqld restart //每周五17點30分執(zhí)行

15.【清空日志文件】
echo "" > 日志文件名 eg:echo "" > account.log

16.查看當(dāng)前目錄完整路徑 : pwd

17、新建和刪除文件夾和文件
(1) 新建:mkdir 文件夾名 touch 文件名,然后回車
(2) 刪除:rm -rf 文件夾路徑 eg: rm -rf /var/log/httpd(刪除/var/log/httpd目錄以及其下所有文件、文件夾)
rm -f 文件 eg /var/log/httpd/access.log (會強制刪除這個文件)
注意:在linux中是沒有設(shè)置回收站的,因此在使用rm命令的時候一定要小心些,刪除之后的文件是無法恢復(fù)的。

18、清除xxx.out,
如果xxx.out是沒有用的,那可以用echo "" > xxx.out清除

19、解壓tar.gz壓縮文件
sudo tar -zxvf xxx.tar.gz

20、獲取root 權(quán)限
sudo -s

21、更改文件所屬的權(quán)限
在Linux中,文件的路徑變了,但是權(quán)限是不會變的,所以要更改權(quán)限,比如從zhaocl權(quán)限中的文件移動到/app目錄下,權(quán)限也還是zhaocl的權(quán)限文件,一樣無權(quán)操作;

例如:chown qq /home/qq (把home目錄下的qq目錄的擁有者改為qq用戶)
例如:chown -R qq /home/qq (把home目錄下的qq目錄下的所有子文件的擁有者改為qq用戶)

22、刪除文件夾|目錄或者文件(不會進(jìn)回收站)
sudo rm -rf db-monitor/

23、測試網(wǎng)絡(luò)是否是通的
(1) telnet ip port 例如:telnet api.atxtm.my 443 ---- telnet IP 端口
(2) ping + ip 例如:ping 10.32.35.42 ---- ping IP

24、退出命令
exit --- 退出dos窗口
q!,wq --- 退出vi編輯器
ctrl+c --- 退出telnet界面
quit --- 退出

25、日志搜索
Linux 中輸入搜索內(nèi)容:【/:搜索內(nèi)容】
搜索下一個出現(xiàn)的關(guān)鍵字的地方:【N】鍵
不停的刷日志文件內(nèi)容:【tail -f 文件名】
跳到文件頂部:【gg】
跳到文件底部:【shift+g】

26、修改文件的權(quán)限:chmod 權(quán)限等級 文件名
chmod 766 com_test_sh.sh
7 7 7 對應(yīng)表示如下:
d rwx rwx rwx

權(quán)限 rwx

7 讀+寫+執(zhí)行 rwx
6 讀+寫 rw-
5 讀+執(zhí)行 r-x
4 只讀 r–
3 寫+執(zhí)行 -wx
2 只寫 -w-
1 只執(zhí)行 –x
0 無權(quán)限 —

27、nginx 修改后驗證和加載
niginx目錄一般都是在:用戶組名(比如/app)/nginx/sbin

  1. 驗證nginx配置是否正確

cd /app/nginx/sbin
./nginx -t

  1. 重啟nginx

cd /app/nginx/sbin
./nginx -s reload

28、隱藏nginx 和 tomcat 版本號:
參考鏈接:https://blog.csdn.net/wanglei_storage/article/details/49802237

29、找到該項主機下部署的所有服務(wù)(java項目) --- 也能找到服務(wù)的根目錄

ps -ef|grep java

30、sftp 的使用
連接遠(yuǎn)程服務(wù)器:sftp -oPort=端口號 用戶名@主機 eg:sftp -oPort=443 CA_PROD@103.1.65.41
上傳文件:put 本機文件路徑 遠(yuǎn)程文件夾 eg:put /home/dapp/remove_sftp_file.sh /app/
下載文件:get 遠(yuǎn)程服務(wù)器文件 本機文件夾 eg: get CDR.GS.CA.202207* /home/dapp/test_222/

31、cd 的使用
返回上一級目錄:cd ..
進(jìn)入一個目錄:cd 目錄路徑
返回上次的目錄:cd -

32、查看某個服務(wù)所占用的端口
ps -ef|grep 服務(wù)名
netstat -anp|grep 端口號
如下圖所示,可以看到服務(wù)占用的端口為:8081


61850196fac801b34d654c67738c16a.png

33、Java服務(wù)啟動
首先找到startup.sh所在的目錄,一般在/app/disconf-tomcat/bin目錄下,然后ll或者ls看下有沒有startup.sh文件,有則執(zhí)行語句 :
sh startup.sh
關(guān)閉服務(wù)
sh shutdown.sh

34、查看服務(wù)的端口是否正常
(1)查看服務(wù)所屬的端口,按照第32點的方法去查;
(2)查看所有的在使用的端口號情況:netstat -tunlp;
(3)查看所查詢的端口號情況:netstat -tunlp | grep 端口號;

35、虛擬IP查看:ifconfig


image.png

36、通過域名查看IP,只要ping以下這個域名就可以了。


image.png

image.png

37、防火墻相關(guān)問題:
(1) 首先要清楚防火墻的原理是什么:
1、防火墻可以拒絕所有IP訪問;
2、防火墻可以對指定的IP做端口限制訪問;
3、10.0.0.0/8表示的是整個內(nèi)網(wǎng)IP,也就是localhost的訪問
4、都有哪些IP連了這臺機:netstat -lantp | grep ESTABLISH
5、都有哪些IP訪問了這臺機子的redis:netstat -lantp | grep -E "63790|26379" | awk '{print 5}' wak -F ':' '{print1}' | sort -u
6、對某個端口的所有IP進(jìn)來都是放行的:iptables -D INPUT -p tcp --dport 63790 -j ACCEPT
7、對某個端口的所有IP進(jìn)來都是拒絕的:iptables -D INPUT -p tcp --dport 63790 -j DROP
8、白名單如果什么策略都沒有配置,那么默認(rèn)所有的IP能訪問所有的端口。白名如果設(shè)置了IP對某個端口的訪問限制,那就是只限制讓那個IP訪問指定的端口,其他的IP將不能訪問該端口,其他端口沒有設(shè)置的,就都是能訪問的,只是對設(shè)置策略的端口進(jìn)行限制。
(2) 查看某臺主機防火墻中的黑白名單添加情況:
(在受到SSH攻擊的時候,就需要在防火墻加黑白名單,進(jìn)行防止攻擊)
查看當(dāng)前防火墻策略:sudo iptables -nvL(sudo iptables -t filter -nL INPUT)
加黑名單:iptables -I INPUT -s 攔截的IP -j DROP
(eg.. iptables -I INPUT -s 10.17.40.5 -j DROP)
加白名單:iptables -I INPUT 3 -s 允許訪問的IP -p tcp --dport 允許的端口 -j ACCEPT
(eg.. iptables -I INPUT 3 -s 136.6.231.163 -p tcp --dport 1521 -j ACCEPT)
說明:--dport 允許的端口:本機對外部開放的端口
-s 勻速訪問的IP:外部訪問進(jìn)來的IP地址
了解更多請參考:
(1)Linux 防火墻白名單添加 --- 帶IP:
https://blog.csdn.net/weixin_45299145/article/details/122499499
(2)Linux 防火墻黑白名單設(shè)置 --- 不帶IP:
https://blog.csdn.net/weixin_40918067/article/details/117869158
(3)Linux 防火墻+Linux學(xué)習(xí)資料:
https://zhuanlan.zhihu.com/p/447288815
(4)防火墻IP黑名單:
https://blog.csdn.net/weixin_39878646/article/details/116777253

38、查看Linux版本是不是CentOS
cat /etc/redhat-release 或者 cat /proc/version

39、建立軟鏈
格式:ln -s 鏈接到的實際地址 軟鏈
ln -s /usr/local/tools/Python-3.7.12/bin/python3.7 /usr/bin/python3

40、刪除軟鏈
unlink 軟鏈名稱
rm 軟鏈名稱1 軟鏈名稱2 ...

41、查看服務(wù)進(jìn)程
未知進(jìn)程名:ps -elf
已知進(jìn)程名或者部分進(jìn)程名:ps -elf|grep '進(jìn)程名'

42、結(jié)束某個進(jìn)程:
首先通過 ps -elf|grep '進(jìn)程名' 找到這個進(jìn)程,再找到這個進(jìn)程的PID,然后:
kill -9 PID (-9:表示強制刪除)

43、Python 卸載
whereis pythonx找到安裝目錄,然后用rm -rf xxx刪除根目錄,再把軟鏈刪了就行了

44、統(tǒng)計文件夾下的文件個數(shù)
ls -l |grep "^-"|wc -l

45、統(tǒng)計路徑下目錄數(shù)量
ls -l |grep "^d"|wc -l

46、防火墻
(1) 安裝: yum install iptables-services
(2) 查看是否啟動:service iptables status(Centos7以前) / systemctl status firewalld.service(Centos7及以后)
(3) 啟動和停止:service iptables restart(Centos7以前) / systemctl start firewalld.service / systemctl stop firewalld.service (Centos7及以后)
注意:Centos7 以后都用 firewalld 取代了 iptables ,systemctl取代了service

47、重啟服務(wù)器
(1) reboot
(2) shutdown -r now
說明:
-h:停止系統(tǒng)服務(wù)并關(guān)機
-r: 停止系統(tǒng)服務(wù)后重啟
擴展:
shutdown -h now --立即關(guān)機
shutdown -h 10:53 --到10:53關(guān)機,如果該時間小于當(dāng)前時間,則到隔天
shutdown -h +10 --10分鐘后自動關(guān)機
shutdown -r now --立即重啟
shutdown -r +30 'The System Will Reboot in 30 Mins' --30分鐘后重啟并并發(fā)送通知給其它在線用戶

48、設(shè)置自啟動
(1) cd /etc
(2) sudo vi rc.local
(3) 加入要執(zhí)行的語句,比如加入防火墻開機自動啟動:sudo service iptables restart

49、查看出口IP
(1) 登錄到內(nèi)網(wǎng)IP的服務(wù)器
(2) 執(zhí)行 curl cip.cc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容