學(xué)習(xí)了一段時(shí)間的linux之后,開始著手基本命令的學(xué)習(xí),這里主要記錄一些學(xué)習(xí)過程中重要的知識(shí)點(diǎn)供以后查閱。
0、命令連接符
1);
前后命令依次執(zhí)行,注意前后順序,若更變目錄,則必須在“一句”指令內(nèi)
2)&
前面一個(gè)命令無論是否執(zhí)行,后面的命令都能執(zhí)行,兩個(gè)命令都執(zhí)行
3)&&
前面一個(gè)命令執(zhí)行成功后,才能執(zhí)行后面一個(gè)命令,兩個(gè)命令都執(zhí)行
4)|
前面一個(gè)命令無論是否執(zhí)行,后面的命令都能執(zhí)行且只執(zhí)行后面一個(gè)
5)||
前面一個(gè)命令不能正常執(zhí)行后,才能執(zhí)行后面一個(gè)命令
1、系統(tǒng)資源監(jiān)控命令
1)文件系統(tǒng)查看命令df
df命令是從文件系統(tǒng)考慮的,不光要考慮文件占用的空間,還要統(tǒng)計(jì)被命令和程序占用的空間 (最常見的是文件已經(jīng)被刪除,但是程序并沒有釋放空間)
2)統(tǒng)計(jì)目錄或文件大小du
du命令是面向文件的,只會(huì)計(jì)算文件和目錄占用的空間:
du -sh * | sort -nr
如:
查看tomcat目錄下占用空間最大的前6的目錄(du -h |sort -hr|head -n 6 不包括文件)、文件(du -ha|sort -hr |head -n 6 包括目錄):
3)查看進(jìn)程命令ps
[publisher@shfttppfbdb ~]$ ps -ef|grep sync publish+ 15990 1 97 Jun30 ? 33-1236 python3.6 -u sync_bmcapp_newversion.py publish+ 40899 1 99 Jun29 ? 34-1624 python3.6 -u sync_hxapp_newversion.py publish+ 129897 129351 0 15:16 pts/1 0000 grep --color=auto sync [publisher@shfttppfbdb ~]$ ps -ef|grep sync |awk $'{print $2}' 15990 40899 129914 [publisher@shfttppfbdb ~]$
grep -v grep:從輸出結(jié)果來看,可以過濾掉查找進(jìn)程的自身這條命令。(grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行)
#!/bin/sh app_name="manage" #應(yīng)用名 app_path="/app/Assistant" #應(yīng)用位置 pid='' #應(yīng)用運(yùn)行的pid MAX_TIMEOUT=10 #最大等待次數(shù) #重啟方法 function stop(){ echo "開始停止${app_name}" pid=`ps aux|grep ${app_name}|grep -v grep|awk '{print $2}'` #獲取jar包運(yùn)行的pid echo $pid if [ -z $pid ] ;then #如果pid的長(zhǎng)度為空,說明沒有在運(yùn)行 echo "${app_name}未運(yùn)行,直接啟動(dòng)" else echo "${app_name}正在運(yùn)行中,進(jìn)程號(hào):"${pid} kill -15 $pid fi #等待60S進(jìn)行強(qiáng)殺 for((i=0;i<$MAX_TIMEOUT;i++)) do pid=`ps aux|grep ${app_name}|grep -v grep|awk '{print $2}'` if [ -z $pid ]; then break else echo "${app_name}停止中..." fi sleep 6 done if [ -z $pid ] ;then echo "${app_name}已停止" else kill -9 $pid echo "${app_name}已停止" fi } stop
2、編輯命令vi
1)命令行模式 (command mode/一般模式)
任何時(shí)候,不管用戶處于何種模式,只要按一下“ESC”鍵,即可使Vi進(jìn)入命令行模式;我們?cè)趕hell環(huán)境(提示符為$)下輸入啟動(dòng)Vi命令,進(jìn)入編輯器時(shí),也是處于該模式下。
在該模式下,用戶可以輸入各種合法的Vi命令,用于管理自己的文檔。此時(shí)從鍵盤上輸入的任何字符都被當(dāng)做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應(yīng)的動(dòng)作。但需注意的是,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會(huì)響鈴報(bào)警。
如:G跳到文本末尾,gg跳到文本開頭
2)文本輸入模式 (input mode/編輯模式)
在命令模式下輸入插入命令i(insert)、附加命令a (append)、打開命令o(open)、修改命令c(change)、取代命令r或替換命令s都可以進(jìn)入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當(dāng)做文件內(nèi)容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按"ESC"鍵即可。
如,i,a,o,c等命令
3)末行模式 (last line mode/指令列命令模式)
末行模式也稱ex轉(zhuǎn)義模式。
Vi和Ex編輯器的功能是相同的,二者主要區(qū)別是用戶界面。在Vi中,命令通常是單個(gè)鍵,例如i、a、o等;而在Ex中,命令是以按回車鍵結(jié)束的正文行。Vi有一個(gè)專門的“轉(zhuǎn)義”命令,可訪問很多面向行的Ex命令。在命令模式下,用戶按“:”鍵即可進(jìn)入末行模式下,此時(shí)Vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè)“:”作為末行模式的提示符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令執(zhí)行完后,Vi自動(dòng)回到命令模式。
如:(shift+:鍵,進(jìn)入此模式)q!強(qiáng)制退出,wq保存退出等命令。
4)Vim 字符串替換
查找和替換是任意一款文本編輯器的一組常見和必備功能。下面就來講解 Vim 中的字符串替換功能。
Vim 使用以下命令結(jié)構(gòu)實(shí)現(xiàn)替換功能。
:
range- 定義執(zhí)行“查找和替換”函數(shù)的范圍,有兩個(gè)不同的值
% - 對(duì)整個(gè)文件執(zhí)行
< start _line > < end_line > - 在一組特定的行上面執(zhí)行操作
search_string- 需要替換的字符串
replace_string- 替換舊字符串的新字符串
modifier- 確定替換行為,有幾個(gè)不同的值
g - 全局替換
gc - 在每次更換之前要求確認(rèn)
gn - 忽略替換功能并突出顯示查找結(jié)果。
例如,在 PackageList.txt 文件里用 Python3 字符串替換所有 python 字符串。
:%s/python/Python3/g
接下來,我們來試試范圍這一個(gè)域。其實(shí),我們?cè)谇懊娴睦永铮呀?jīng)使用了 % 范圍(對(duì)整個(gè)文件范圍)。
如果我們不想在整個(gè)文件范圍進(jìn)行查找替換,如果我們只想在某幾個(gè)特定行進(jìn)行這種操作,需要怎么做?我們可以采用類似于以下命令格式:
:200,250 s/python/Python3/g
執(zhí)行完以上操作,Vim 會(huì)將第 200 行開始并在第 250 行結(jié)束的所有 python 替換為 Python3 。
此功能不僅限于一個(gè)詞,還可以完成對(duì)多個(gè)關(guān)鍵詞的替換。它的命令格式如下:
:%s/
比如,讓我們想要將文本中所有 python 和 py 更改為 Python3 。
:%s/python|py/Python3/g
區(qū)分大小寫
本文前面提到的所有替換操作都是區(qū)分大小寫的。例如,Python,python ,PYTHON 等都是不同的。
如果你要忽略大小寫,可以在搜索字符串后面加上一個(gè) c ,如下:
/c :%s/ c/ /g
3、文件搜索命令
1)字符串搜索命令-grep
# 查找指定字符串string grep 'string' filename #若需要在文件夾下所有文件查找 grep 'string' dirPath/*
補(bǔ)充:若目錄下含有多級(jí)子目錄,則用 grep -r "string" ./
在文件當(dāng)中搜索符合條件的字符串,如果需要匹配,使用正則表達(dá)式進(jìn)行匹配,正則表達(dá)式時(shí)包含匹配。
2)文件搜索命令find
#搜索文件 find [搜索范圍] [搜索條件] find / -name install.log #避免大范圍搜索,會(huì)非常消耗系統(tǒng)資源
在系統(tǒng)中搜索符合條件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
#查找10天前修改的文件 find . -mtime +10 #atime 文件訪問時(shí)間 #ctime 改變文件屬性 #mtime 修改文件內(nèi)容 #查找文件大小是25KB的文件 find . -size 25k #查找i節(jié)點(diǎn)是262422的文件 find . -inum 262422 #查找/etc目錄下,大于20KB且小于50KB的文件 find /etc -size +20KB -a -size -50KB # -a and 邏輯與,兩個(gè)條件都滿足 #-o or 邏輯或,兩個(gè)條件滿足一個(gè)即可 #查找/etc目錄下,大于20KB且小于50KB的文件,并顯示詳細(xì)信息 find /etc -size +20k -a -size -50k -exec ls -lh {}; #-exec/-ok命令{}; 對(duì)搜索結(jié)果執(zhí)行操作
注:
通配符:
*匹配任意內(nèi)容
?匹配任意一個(gè)字符
[]匹配任意一個(gè)中括號(hào)內(nèi)的字符
3)命令搜索命令whereis與which
#搜索命令所在路徑及幫助文檔所在位置 whereis 命令名
-b:只查找可執(zhí)行文件
-m:只查找?guī)椭募?/p>
4)文件搜索命令locate
#在后臺(tái)數(shù)據(jù)庫(kù)中按文件名搜索,搜索速度更快 locate 文件名
/var/lib/mlocate :locate命令所搜索的后臺(tái)數(shù)據(jù)庫(kù)
updatedb:更新數(shù)據(jù)庫(kù)
4、文件傳輸命令
前提條件:
服務(wù)器要開啟寫入權(quán)限;
本地和服務(wù)器都要安裝有 scp 包;
如何傳輸:
利用 scp、rsync、rz傳輸文件
1) 從服務(wù)器上下載文件
scp username@servername:遠(yuǎn)程目錄/文件名 本地目錄
例:scp [email protected]:/var/www/test.txt .
(把 192.168.0.101 上的 /var/www/test.txt 文件下載到本地目錄 /var/www/local_dir)
2)從服務(wù)器上下載目錄
scp -r username@servername:遠(yuǎn)程目錄 本地目錄
例:scp -r [email protected]:/var/www/test .
(把 192.168.0.101 上的 /var/www/test 目錄下載到本地目錄 /var/www)
3)上傳本地文件到目標(biāo)服務(wù)器
scp /本地目錄/文件名 username@servername:遠(yuǎn)程目錄
例:scp /var/www/test.txt [email protected]:/var/www/
(把本地目錄 /var/www/ 下的 test.txt 文件上傳到 192.168.0.101 的 /var/www/ 目錄中)
4)上傳本地目錄到目標(biāo)服務(wù)器
scp -r 本地目錄 username@servername:遠(yuǎn)程目錄
例:scp -r /var/www/local_dir [email protected]:/var/www/
(把本地目錄 /var/www/local_dir 上傳到服務(wù)器的 /var/www/ 目錄)
5)rsync從遠(yuǎn)程獲取目錄
(可以加參數(shù)排除復(fù)制某些目錄);
rsync -azh -ssh --exclude 'l_temp' --exclude 'l_tmp/claimImageList' [email protected]:/t/system_temp /t/system_temp
排除復(fù)制l_temp 和l_tmp/claimImageList
目錄結(jié)構(gòu):
/t/system_temp
/t/system_temp/l_temp
/t/system_temp/l_tmp/claimImageList
rsync -az /tpsys/applications/oceanbase_check /tpsys/applications/ --log-file=./rsync_oceanbase_check.log --exclude='oceanbase-client-1.1.10.jar' --delete rsync -az /tpsys/applications/oceanbase_check [email protected]:/tpsys/applications --log-file=./rsync_oceanbase_check.log --exclude-from /tpsys/applications/conf/sync_exclude.conf --delete
6)使用rz從本地電腦傳輸文件
7)使用sftp傳輸
sftp username@ip put [本地文件的地址] [服務(wù)器上文件存儲(chǔ)的位置] get [服務(wù)器上文件存儲(chǔ)的位置] [本地要存儲(chǔ)的位置] #當(dāng)前本地的目錄就是登陸時(shí)的目錄
5、linux文本操作
1)linux三劍客-grep、sed、awk
awk、grep、sed請(qǐng)見[https://www.cnblogs.com/hoaprox/p/18269422]
6、其他常用命令
1)排序命令sort
在linux的使用過程中,總是避免不了排序問題。比如,topN問題。linux提供了sort排序命令,支持常用的排序功能。
sort命令支持很多參數(shù),常用參數(shù)如下:
2)linux下打文件分割命令split
split -b 1024M bkce_src-5.1.28.tar.gz bkce_ cat bkce_* >bkce_src-5.1.28.tar.gz md5sum bkce_src-5.1.28.tar.gz
3)掛載命令mount
(1)查詢與自動(dòng)掛載
#查詢系統(tǒng)中已經(jīng)掛載的設(shè)備 mount #依據(jù)配置文件/etc/fstab的內(nèi)容,自動(dòng)掛載 mount -a #查看192.168.161.128掛載 showmount -e 192.168.161.128
(2)掛載命令格式
mount [-t 文件系統(tǒng)] [-o 特殊選項(xiàng)] 設(shè)備文件名 掛載點(diǎn)
-t 文件系統(tǒng):加入文件系統(tǒng)類型來指定掛載的類型,可以ext3、ext4、iso9660等文件系統(tǒng)
-o特殊選項(xiàng):可以指定掛載的額外選項(xiàng)
(3)卸載命令
unmount 設(shè)備文件名或掛載點(diǎn)
(4)centos安裝nfs-server
在CentOS上安裝NFS服務(wù)的步驟如下:
在服務(wù)/客戶端安裝NFS軟件包:
sudo yum install nfs-utils
在服務(wù)端啟動(dòng)NFS服務(wù)并設(shè)置開機(jī)自啟:
sudo systemctl start rpcbind sudo systemctl start nfs-server sudo systemctl start nfs-lock sudo systemctl start nfs-idmap sudo systemctl enable rpcbind sudo systemctl enable nfs-server sudo systemctl enable nfs-lock sudo systemctl enable nfs-idmap
在服務(wù)端配置NFS共享,在/etc/exports添加如下內(nèi)容(假設(shè)您想要共享的目錄是/data,并且允許所有主機(jī)訪問)
/nfs/data *(rw,sync,no_root_squash,no_all_squash)
在服務(wù)端應(yīng)用配置并重啟NFS服務(wù):
sudo exportfs -rav sudo systemctl restart nfs-server # systemctl daemon-reload重新加載服務(wù)資源
在服務(wù)端如果有防火墻運(yùn)行,允許NFS通過防火墻
sudo firewall-cmd --permanent --zone=public --add-service=nfs sudo firewall-cmd --permanent --zone=public --add-service=mountd sudo firewall-cmd --permanent --zone=public --add-service=rpc-bind sudo firewall-cmd --reload
現(xiàn)在NFS服務(wù)器應(yīng)該已經(jīng)設(shè)置并運(yùn)行了。客戶端可以通過showmount命令來查看服務(wù)器上的共享或者掛載共享目錄。
在客戶端,使用以下命令來掛載NFS共享(臨時(shí)):
sudo mount:/nfs/data /nfs/data # 替換 為NFS服務(wù)器的IP地址,/data是客戶端上用于掛載共享的目錄
在客戶端的/etc/fstab添加如下內(nèi)容來掛載NFS共享(永久):
192.168.44.132:/nfs/data /nfs/data nfs defaults 0 0
(5)Ubuntu安裝nfs-server
在Ubuntu上安裝NFS服務(wù)器的步驟如下:
更新軟件包列表:
sudo apt update
安裝NFS內(nèi)核服務(wù)器包:
#創(chuàng)建要共享的目錄: sudo mkdir -p /srv/nfs/share
授權(quán)網(wǎng)絡(luò)中的計(jì)算機(jī)訪問共享目錄,sudo vi /etc/exports添加以下行到文件中(將
/srv/nfs/share(rw,sync,no_subtree_check)
應(yīng)用配置更改:
sudo exportfs -ra
啟動(dòng)NFS服務(wù):
sudo systemctl start nfs-kernel-server
使NFS服務(wù)開機(jī)自啟:
sudo systemctl enable nfs-kernel-server
在客戶端計(jì)算機(jī)上,您需要安裝NFS通用文件系統(tǒng)客戶端:
sudo apt install nfs-common
然后,在客戶端您可以掛載服務(wù)器上的共享目錄(臨時(shí)):
#替換為NFS服務(wù)器的IP地址 sudo mount :/srv/nfs/share /mnt
在客戶端的/etc/fstab添加如下內(nèi)容來掛載NFS共享(永久):
192.168.44.132:/applications /applications/nfs nfs defaults 0 0
4)expect命令
expect是一個(gè)免費(fèi)的編程工具,用來實(shí)現(xiàn)自動(dòng)的交互式任務(wù),而無需人為干預(yù)。說白了expect就是一套用來實(shí)現(xiàn)自動(dòng)交互功能的軟件需要自行安裝。
yum install -y expect
expect基礎(chǔ)
在使用expect時(shí),基本上都是和以下四個(gè)命令打交道:
命令 作用
spawn 啟動(dòng)新的進(jìn)程
expect 從進(jìn)程接收字符串
send 用于向進(jìn)程發(fā)送字符串
interact 允許用戶交互
#!/usr/bin/expect # 啟動(dòng) ssh 進(jìn)程,連接到遠(yuǎn)程服務(wù)器 spawn ssh [email protected] # 期望服務(wù)器發(fā)送包含 "password" 的提示 expect "password:" # 發(fā)送密碼 send "mypassword " # 期望看到命令行提示符 expect "$ " # 發(fā)送命令 send "ls -l " # 期望命令執(zhí)行結(jié)果 expect eof
spawn命令用來啟動(dòng)新的進(jìn)程,spawn后的expect和send命令都是和使用spawn啟動(dòng)的新進(jìn)程進(jìn)行交互。
expect通常用來等待一個(gè)進(jìn)程的反饋,我們根據(jù)進(jìn)程的反饋,再使用send命令發(fā)送對(duì)應(yīng)的交互命令。
send命令接收一個(gè)字符串參數(shù),并將該參數(shù)發(fā)送到進(jìn)程。
interact命令用的其實(shí)不是很多,一般情況下使用spawn、expect和send和命令就可以很好的完成我們的任務(wù);但在一些特殊場(chǎng)合下還是需要使用interact命令的,interact命令主要用于退出自動(dòng)化,進(jìn)入人工交互。比如我們使用spawn、send和expect命令完成了ftp登陸主機(jī),執(zhí)行下載文件任務(wù),但是我們希望在文件下載結(jié)束以后,仍然可以停留在ftp命令行狀態(tài),以便手動(dòng)的執(zhí)行后續(xù)命令,此時(shí)使用interact命令就可以很好的完成這個(gè)任務(wù)。
[https://blog.csdn.net/givenchy_yzl/article/details/118079170]
5)openssl加解密
tar -zcf - host.conf | openssl des3 -salt -k ZYProduct@2022 | dd of=host.des dd if=host.des | openssl des3 -d -k "ZYProduct@2022" | tar zxf -
6)eval命令
eval是一個(gè)內(nèi)置的Linux命令,用于將指定的參數(shù)作為shell命令執(zhí)行。它將參數(shù)組合成一個(gè)字符串,并將其作為輸入提供給shell,然后在當(dāng)前的shell環(huán)境中執(zhí)行生成的命令。
語法:eval [argument]
7)轉(zhuǎn)化參數(shù)命令xargs
extended arguments縮寫,可以將標(biāo)準(zhǔn)輸入轉(zhuǎn)化成參數(shù),傳遞給后面的命令。
語法:(默認(rèn)命令是echo)
xargs [參數(shù)] [命令]
(1)基礎(chǔ)
參數(shù):
-n:指定一次傳遞多少個(gè)參數(shù)(默認(rèn)根據(jù)空格或者換行拆分,進(jìn)行一次傳遞)
-d:指定拆分的字符
-p:顯示要執(zhí)行的命令,需要確認(rèn)執(zhí)行
-t:顯示要執(zhí)行的命令,直接執(zhí)行
-I:指定占位符,通常為{}
-r:如果傳遞參數(shù)為空,則不執(zhí)行
操作:
多行處理成一行
(2)實(shí)例
找出含有“password”的txt文件
#find . -name "*.txt" -exec grep "password" {} ; #find . -name "*.txt" |xargs grep "password"
指定一次傳遞一個(gè)參數(shù)
# echo "hello world" |xargs -n 1
根據(jù)“#”進(jìn)行拆分
# echo "hello#world" |xargs -d "#"
占位符
#echo "hello#world" |xargs -I {} echo {} #echo |xargs -r echo
8)echo輸出命令
echo [選項(xiàng)] [輸出內(nèi)容]
選項(xiàng):-e:支持反斜線控制字符轉(zhuǎn)換
設(shè)置顯示顏色
#e[1開啟 、e[0關(guān)閉 echo -e "e[1;33m test e[0m"
7、linux用戶管理
1)linux用戶類型
2)linux用戶
3)groupadd/useradd
用groupadd和useradd命令為系統(tǒng)添加mysql 組和用戶
語法如下:
groupadd mysql useradd -u 544 -d /home/mysql -g mysql -m mysql
4)chown 改變用戶和所屬組命令
將test.php 文件的所屬用戶設(shè)置成zhuo,所屬用戶組設(shè)置成zhuogroup
chown zhuo:zhuogroup test.php
將testfiel 及其內(nèi)部文件所屬用戶設(shè)置成zhuo,所屬用戶組設(shè)置成zhuoroup
chown -R zhuo:zhuogroup testfile
7、linux文件管理
1)linux文件類型
2)
9、其他常用功能
1)不知道分類,可以解決ssh遠(yuǎn)程登錄shell問題
ssh -tt [email protected] << EOF sh $proddomaindir/stopappserver1.sh sh $proddomaindir/startappserver1.sh exit EOF
OR
ssh [email protected] "rm -rf /tsys/applications/nginx/log/*"
2)服務(wù)器上近一分鐘文件變動(dòng)監(jiān)控
#!/bin/bash if [ -e "/tsys/applications//web" ];then for i in `find /tsys/applications//web -type f -cmin 1 ! -name "*.log*" ! -name "*.out*" ! -name "*.err*" ! -name "*.ser" ! -name "*.tar.gz"` do echo `date +%F%t%T`" " $i >>/tsys/applications/showChangeFile.log; done fi
3)文件防篡改監(jiān)控
#!/bin/bash original_publish_dir='/tsys/applications//web' current_publish_dir='/tsys/applications//web' original_MD5='original_MD5.txt' current_MD5='current_MD5.txt' if [ "$1" == "original" ];then cd /tsys/applications && rm -rf ./$original_MD5 find $original_publish_dir -type f ! -name "*.rdb*" ! -name "*.zip*" ! -name "*.xls*" ! -name "*.rar*" ! -name "*.txt*" ! -name "*.pdf*" ! -name "*.log*" ! -name "*.out*" ! -name "*.err*" ! -name "*.ser" ! -name "*.tar.gz" -exec md5sum {} ;| sort >/tsys/applications/$original_MD5 fi if [ "$1" == "current" ];then cd /tpsys/applications && rm -rf ./$current_MD5 find $current_publish_dir -type f ! -name "*.rdb*" ! -name "*.zip*" ! -name "*.xls*" ! -name "*.rar*" ! -name "*.txt*" ! -name "*.pdf*" ! -name "*.log*" ! -name "*.out*" ! -name "*.err*" ! -name "*.ser" ! -name "*.tar.gz" -exec md5sum {} ;| sort >/tsys/applications/$current_MD5 backcode=`diff -q $original_MD5 $current_MD5 | awk '{print $1}'` fi if [ "$backcode" != "" -a "$1" == "current" ];then echo `date +%F%t%T`" " `diff $original_MD5 $current_MD5 |awk '{print $3}'|xargs` >/tsys/applications/showDiffFile.log fi
4)讀取csv文件,根據(jù)條件創(chuàng)建目錄并復(fù)制文件
#!/bin/bash tr -d ' ' < "pensionmain.csv" > "output.csv" csv_file="./output.csv" while IFS=, read -r column1 column2 do dir_name="$column1" if [ ! -d "$dir_name" ];then echo "mkdir $dir_name" mkdir "$dir_name" echo "./$dir_name/ $column2" cp $column2 ./$dir_name/ else echo "./$dir_name/ $column2" cp $column2 ./$dir_name/ fi done"$csv_file"
10、使用semanage管理SELinux安全策略
semanage命令用于管理SELinux的策略,格式為“semanage [選項(xiàng)] [文件]”。
SELinux服務(wù)極大地提升了Linux系統(tǒng)的安全性,將用戶權(quán)限牢牢地鎖在籠子里。semanage命令可以設(shè)置文件、目錄的策略,還可以管理網(wǎng)絡(luò)端口、消息接口。
1)常用參數(shù)
port: 管理定義的網(wǎng)絡(luò)端口類型
fcontext: 管理定義的文件上下文
-l: 列出所有記錄
-a: 添加記錄
-m: 修改記錄
-d: 刪除記錄
-t: 添加的類型
-p: 指定添加的端口是tcp或udp協(xié)議的,port子命令下使用
-e: 目標(biāo)路徑參考原路徑的上下文類型,fcontext子命令下使用
2)檢查semanage是否有安裝
如果沒有,需要安裝semanage
[root@localhost ~]# yum install policycoreutils-python -y
3)Selinux是否開啟
[root@localhost ~]# egrep -i selinux /etc/sysconfig/selinux | egrep -v "#" SELINUX=enforcing SELINUXTYPE=targeted
如selinux未開啟就需要進(jìn)配置文件把selinux設(shè)置為enforcing
[root@localhost ~]# vim /etc/sysconfig/selinux SELINUX=enforcing
重啟使其生效
[root@localhost ~]# reboot
4)查看服務(wù)使用端口號(hào)
查看etc/httpd/conf/httpd里看看端口號(hào)是多少
egrep -i listen /etc/httpd/conf/httpd.conf | egrep -v "#"
5)列出所有定義的端口
semanage port -l
6)列出指定的端口類型的端口
semanage port -l | grep -w http_port_t
semanage port -l | grep -w 443
7)創(chuàng)建、添加、刪除端口
# add semanage port -a -t http_port_t -p tcp 8081 # del semanage port -d -t http_port_t -p tcp 8081
鏈接:https://www.cnblogs.com/hoaprox/p/18246830
-
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212319 -
程序
+關(guān)注
關(guān)注
117文章
3817瀏覽量
82168 -
命令行
+關(guān)注
關(guān)注
0文章
80瀏覽量
10509
原文標(biāo)題:Linux常用命令行:解鎖你的生產(chǎn)力
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論