linux命令使用全集
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
linux命令使用全集
glxinfo | grep render基本上可以看你的顯卡
lspci 查看所有硬件信息
--------------------------------------------------
service --status-all
netstat -nlt
--------------------------------------------------------------------
sed -e'/REFERENCES/!d;' -e 's/\s`FK_\(.*\)_\(.*\)\b` FOREIGN KEY \(.*\) REFERENCES \(.*\)\b` / \`FK_\1_\2\` FOREING KEY \3 REFERENCES \`\2\` /g' ?synairsns.sql?
-------------------------------------------------------------------------------------------
memcached的基本設(shè)置:
1.啟動(dòng)Memcache的服務(wù)器端:
# ./memcached -d -u nobody -m 512 127.0.0.1 -p 11211
-d選項(xiàng)是啟動(dòng)一個(gè)守護(hù)進(jìn)程,
-m是分配給Memcache使用的內(nèi)存數(shù)量,單位是MB,我這里是10MB,
-u是運(yùn)行Memcache的用戶,我這里是root,
-l是監(jiān)聽的服務(wù)器IP地址,如果有多個(gè)地址的話,我這里指定了服務(wù)器的IP地址192.168.0.200,
-p是設(shè)置Memcache監(jiān)聽的端口,我這里設(shè)置了12000,最好是1024以上的端口,
-c選項(xiàng)是最大運(yùn)行的并發(fā)連接數(shù),默認(rèn)是1024,我這里設(shè)置了256,按照你服務(wù)器的負(fù)載量來(lái)設(shè)定,
-P是設(shè)置保存Memcache的pid文件,我這里是保存在 /tmp/memcached.pid,
2.如果要結(jié)束Memcache進(jìn)程,執(zhí)行:
# kill `cat /tmp/memcached.pid`
也可以啟動(dòng)多個(gè)守護(hù)進(jìn)程,不過(guò)端口不能重復(fù)
------------------------------------------------------------------
centos
?setup 命令
系統(tǒng)設(shè)定【ip,server,authentication,firewall,network,Timezone】
-----------------------------------------------------------------
make all dir : mkdir -p /home/sky/zhouyang/ocean/dir/liux
.刪除一整行
如果你已經(jīng)輸入一長(zhǎng)串的命令,但是你又不在需要他們了,那么你可以使用如下命令直接刪除一整行:
CTRL+U
這個(gè)其實(shí)是刪除光標(biāo)所在之前的字符,ctrl+k是刪除光標(biāo)以后的字符
補(bǔ)充個(gè)跳到行首時(shí)Ctrl+a,跳到行末是Ctrl+e
下面這條命令會(huì)把文件的時(shí)間戳設(shè)置成2008-01-01 8:00。日期格式是(YYMMDDhhmm)
touch -c -t 0801010800 filename.c
--------------------------------------------------------
download file:
aria2c url
axel url
----------------------------------------------------------
find -size
find /etc -name zhou
find -type
locate?
grep -n 顯示行號(hào)?
-i?
-r?
---------------------------------------------------------------
fsck
-f fstype 制定要檢查的文件系統(tǒng)類型
-N ?模擬顯示
-r 回復(fù)文件
-p 自動(dòng)修正安全地更正并且不會(huì)導(dǎo)致數(shù)據(jù)丟失的問(wèn)題
fsck -p -t ext2 /dev/hda2
應(yīng)先卸載文件系統(tǒng),在檢查
----------------------------------------------------------------
net use E: \\vboxsvr\share
net use E: /delete
net use x: \\192.168.1.220\hello /u:zhouyang
------------------------------------------------------------------
網(wǎng)絡(luò)流量監(jiān)控命令:slurm -i wlan0
-----------------------------------------------------------------
察看版本linux?
uname -a
cat /proc/version?
fdisk -l [/dev/had] 硬盤分區(qū)狀況
df -h 硬盤分區(qū)的使用情況
du -sh 目錄占用空間
------------------------------------------------------------
用mkisofs 命令
#mkisofs -r -J -V 卷標(biāo)名 -o 目的文件.iso 源文件
上面的命令是將 “源文件” 文件及目錄作成 “目的文件.iso”。
例子 :
# mkisofs -r -J -V widebright -o widebright.iso /widebrigh
--------------------------------------------------------------------
sudo sysctl vm.swappiness=5
gksudo gedit /etc/sysctl.conf
vm.swappiness=5
--------------------------------------------------------------------
start remove:
sudo update-rc.d -f mysql remove 刪除mysql隨機(jī)器啟動(dòng)的服務(wù)
-----------------------------------------------------------------
1. [ ; ]
如果被分號(hào)(;)所分隔的命令會(huì)連續(xù)的執(zhí)行下去,就算是錯(cuò)誤的命令也會(huì)繼續(xù)執(zhí)行后面的命令。
[root@localhost etc]# lld ; echo "ok" ; lok
-bash: lld: command not found
ok
-bash: lok: command not found
2. [ && ]
如果命令被 && 所分隔,那么命令也會(huì)一直執(zhí)行下去,但是中間有錯(cuò)誤的命令存在就不會(huì)執(zhí)行后面的命令,沒(méi)錯(cuò)就直行至完為止。
[root@localhost etc]# echo "ok" && lld && echo "ok"
ok
-bash: lld: command not found
3. [ || ]
如果每個(gè)命令被雙豎線 || 所分隔,那么一遇到可以執(zhí)行成功的命令就會(huì)停止執(zhí)行后面的命令,而不管后面的命令是否正確與否。如果執(zhí)行到錯(cuò)誤的命令就是繼續(xù)執(zhí)行后一個(gè)命令,一直執(zhí)行到遇到正確的命令為止。
[root@localhost etc]# echo "ok" || echo "haha"
ok
[root@localhost etc]# lld || echo "ok" || echo "haha"
-bash: lld: command not found
ok
--------------------------------------------------------------------
/etc/sysconfig/network-scripts/ifcfg-eth0
iwlist wlan0 scan 掃描 無(wú)線
iwconfig wlan0 essid “MyHome”
iwconfig wlan0 essid “MyHome” key 0123-4567-89
iwconfig wlan0
修改IP和MAC地址以及網(wǎng)關(guān)的方法:
? ? ? ? ? ?sudo ifconfig eth0 down
> ?> > ?> ?sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
? ? ? ? ? ?sudo ifconfig eth0 up
? ? ? ? ? ?sudo /etc/init.d/networking restart
> ?> > ?> ?sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0
> ?> > ?> ?sudo route add default gw 192.168.1.1 dev eth0
> ?> > ?> ?就是修改IP為192.168.1.2 網(wǎng)關(guān)為192.168.1.1修改MAC地址00:AA:BB:CC:DD:EE
-----------------------------------------------------------------------------------------------
tar
先用tar -zcvf test.tar.gz ./test/進(jìn)行打包壓縮,這樣打出來(lái)的包test.tar.gz中包含了test目錄及其下的所有文件。
現(xiàn)在需要對(duì)test.tar.gz中的指定文件test/f1.txt進(jìn)行解包到一個(gè)指定目錄,比如為/root,用tar的-C選項(xiàng)可以指定目錄,于是tar -zxvf test.tar.gz -C /root test/f1.txt
----------------------------------------------------------------------------------------------------------------------------------------------------
1.導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)
mysqldump -u 用戶名 -p 數(shù)據(jù)庫(kù)名 > 導(dǎo)出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.導(dǎo)出一個(gè)表
mysqldump -u 用戶名 -p 數(shù)據(jù)庫(kù)名 表名> 導(dǎo)出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.導(dǎo)出一個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 沒(méi)有數(shù)據(jù) --add-drop-table 在每個(gè)create語(yǔ)句之前增加一個(gè)drop table
4.導(dǎo)入數(shù)據(jù)庫(kù)
常用source命令
進(jìn)入mysql數(shù)據(jù)庫(kù)控制臺(tái),
如mysql -u root -p
mysql>use 數(shù)據(jù)庫(kù)
然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql)
mysql>source d:\wcnc_db.sql
-----------------------------------------------------------------
$enca -L 當(dāng)前語(yǔ)言 -x 目標(biāo)編碼 文件名
例如要把當(dāng)前目錄下的所有文件都轉(zhuǎn)成utf-8
$enca -L zh_CN -x utf-8 *
pho *.png
?常用快捷鍵
?記住下列快捷鍵,會(huì)極大的提升你的效率:
?空格鍵 - 查看下一張圖片
?退格鍵 - 查看上一張圖片
?home - 返回第一張圖片
?i - 查看圖片信息
?d - 刪除圖片,需按兩次(小心使用)
?f - 切換到完整大小
?F - 切換到全屏模式
?p - 切換到幻燈模式
?r, t, 右方向鍵 - 按順時(shí)針?lè)较蛐D(zhuǎn)
?R, T, I, L, 左方向鍵 - 按逆時(shí)針?lè)较蛐D(zhuǎn)
?上方向鍵 - 旋轉(zhuǎn) 180 度
?-, / - 縮小
?+, =, * - 放大
?q - 退出 pho?
----------------------------------------------------------------------------------
在ubuntu命令行下訪問(wèn)Windows共享文件夾的命令是:
mount -t smbfs -o username=windowsusername //windows machine/sharefiles /mnt/localfolder
windowsusername : Windows用戶名
windows machine :Windows機(jī)器名
sharefiles :Windows共享文件夾名
然后就可以在 /mnt/localfolder 下訪問(wèn)Windows內(nèi)容。
取消訪問(wèn)命令:umount /mnt/localfolder?
smb://ip
-----------------------------------------------------------------------------------
流量 監(jiān)控 命令
sudo nethogs wlan0
sudo iftop -i wlan0
sudo nload wlan0
sudo ntop?
ip:3000
$enca -L zh_CN -x utf-8 *
SSH
SSH 遠(yuǎn)程登入 Ubuntu 機(jī)
ssh username@192.168.0.1
將 文件/文件夾 從遠(yuǎn)程 Ubuntu 機(jī)拷至本地(scp)
scp -r username@192.168.0.1:/home/username/remotefile.txt .
將 文件/文件夾 從本地拷至遠(yuǎn)程 Ubuntu 機(jī)(scp)
scp -r localfile.txt username@192.168.0.1:/home/username/
將 文件/文件夾 從遠(yuǎn)程 Ubuntu 機(jī)拷至本地(rsync)
rsync -v -u -a --delete --rsh=ssh --stats username@192.168.0.1:/home/username/remotefile.txt .
將 文件/文件夾 從本地拷至遠(yuǎn)程 Ubuntu 機(jī)(rsync)
rsync -v -u -a --delete --rsh=ssh --stats localfile.txt username@192.168.0.1:/home/username/
FTP
1. 連接ftp服務(wù)器
格式:ftp [hostname | ip-address]
a)在linux命令行下輸入:ftp 10.18.34.115
b)服務(wù)器詢問(wèn)你用戶名和口令,分別輸入用戶名和相應(yīng)密碼,待認(rèn)證通過(guò)即可。
2. 下載文件
下載文件通常用get和mget這兩條命令。
a) get 格式:get [remote-file] [local-file]
將文件從遠(yuǎn)端主機(jī)中傳送至本地主機(jī)中.
如要獲取服務(wù)器上/rose/1.bmp,則
ftp> get /rose/1.bmp 1.bmp (回車)
b) mget 格式:mget [remote-files]
從遠(yuǎn)端主機(jī)接收一批文件至本地主機(jī).
如要獲取服務(wù)器上/rose下的所有文件,則
ftp> cd /rose
ftp> mget *.* (回車)
注意:文件都下載到了linux主機(jī)的當(dāng)前目錄下。比如,在 /root/yint下運(yùn)行的ftp命令,則文件都下載到了/root/yint下。
3.上傳文件
a) put 格式:put local-file [remote-file]
將本地一個(gè)文件傳送至遠(yuǎn)端主機(jī)中.
如要把本地的1.bmp傳送到遠(yuǎn)端主機(jī)/rose,并改名為333.bmp
ftp> put 1.bmp /rose/333.bmp (回車)
b) mput 格式:mput local-files
將本地主機(jī)中一批文件傳送至遠(yuǎn)端主機(jī).
如要把本地當(dāng)前目錄下所有bmp文件上傳到服務(wù)器/rose 下
ftp> cd /rose (回車)
ftp> mput *.bmp (回車)
注意:上傳文件都來(lái)自于主機(jī)的當(dāng)前目錄下。比如,在 /root/yint下運(yùn)行的ftp命令,則只有在/root/yint下的文件linux才會(huì)上傳到服務(wù)器E:\rose 下。
4. 斷開連接
bye:中斷與服務(wù)器的連接。
ftp> bye (回車)
---------------------------------------------------------------------------------------------------------------------------
1、將文件checkout到本地目錄?
svn checkout path(path是服務(wù)器上的目錄)?
例如:svn checkout svn://192.168.1.1/pro/domain?
svn co http://thinkphp.google.com/svn/trunk
簡(jiǎn)寫:svn co?
2、往版本庫(kù)中添加新的文件?
svn add file?
例如:svn add test.php(添加test.php)?
svn add *.php(添加當(dāng)前目錄下所有的php文件)?
3、將改動(dòng)的文件提交到版本庫(kù)?
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開關(guān))?
例如:svn commit -m “add test file for my test“ test.php?
簡(jiǎn)寫:svn ci?
4、加鎖/解鎖?
svn lock -m “LockMessage“ [--force] PATH?
例如:svn lock -m “l(fā)ock test file“ test.php?
svn unlock PATH?
5、更新到某個(gè)版本?
svn update -r m path?
例如:?
svn update如果后面沒(méi)有目錄,默認(rèn)將當(dāng)前目錄以及子目錄下的所有文件都更新到最新版本。?
svn update -r 200 test.php(將版本庫(kù)中的文件test.php還原到版本200)?
svn update test.php(更新,于版本庫(kù)同步。如果在提交的時(shí)候提示過(guò)期的話,是因?yàn)闆_突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)?
簡(jiǎn)寫:svn up?
6、查看文件或者目錄狀態(tài)?
1)svn status path(目錄下的文件和子目錄的狀態(tài),正常狀態(tài)不顯示)?
【?:不在svn的控制中;M:內(nèi)容被修改;C:發(fā)生沖突;A:預(yù)定加入到版本庫(kù);K:被鎖定】?
2)svn status -v path(顯示文件和子目錄狀態(tài))?
第一列保持相同,第二列顯示工作版本號(hào),第三和第四列顯示最后一次修改的版本號(hào)和修改人。?
注:svn status、svn diff和 svn revert這三條命令在沒(méi)有網(wǎng)絡(luò)的情況下也可以執(zhí)行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。?
簡(jiǎn)寫:svn st?
7、刪除文件?
svn delete path -m “delete test fle“?
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”?
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推薦使用這種?
簡(jiǎn)寫:svn (del, remove, rm)?
8、查看日志?
svn log path?
例如:svn log test.php 顯示這個(gè)文件的所有修改記錄,及其版本號(hào)的變化?
9、查看文件詳細(xì)信息?
svn info path?
例如:svn info test.php?
10、比較差異?
svn diff path(將修改的文件與基礎(chǔ)版本比較)?
例如:svn diff test.php?
svn diff -r m:n path(對(duì)版本m和版本n比較差異)?
例如:svn diff -r 200:201 test.php?
簡(jiǎn)寫:svn di?
11、將兩個(gè)版本之間的差異合并到當(dāng)前文件?
svn merge -r m:n path?
例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合并到當(dāng)前文件,但是一般都會(huì)產(chǎn)生沖突,需要處理一下)?
12、SVN 幫助?
svn help?
svn help ci?
——————————————————————————?
以上是常用命令,下面寫幾個(gè)不經(jīng)常用的?
——————————————————————————?
13、版本庫(kù)下的文件和目錄列表?
svn list path?
顯示path目錄下的所有屬于版本庫(kù)的文件和目錄?
簡(jiǎn)寫:svn ls?
14、創(chuàng)建納入版本控制下的新目錄?
svn mkdir: 創(chuàng)建納入版本控制下的新目錄。?
用法: 1、mkdir PATH…?
2、mkdir URL…?
創(chuàng)建版本控制的目錄。?
1、每一個(gè)以工作副本 PATH 指定的目錄,都會(huì)創(chuàng)建在本地端,并且加入新增?
調(diào)度,以待下一次的提交。?
2、每個(gè)以URL指定的目錄,都會(huì)透過(guò)立即提交于倉(cāng)庫(kù)中創(chuàng)建。?
在這兩個(gè)情況下,所有的中間目錄都必須事先存在。?
15、恢復(fù)本地修改?
svn revert: 恢復(fù)原始未改變的工作副本文件 (恢復(fù)大部份的本地修改)。revert:?
用法: revert PATH…?
注意: 本子命令不會(huì)存取網(wǎng)絡(luò),并且會(huì)解除沖突的狀況。但是它不會(huì)恢復(fù)?
被刪除的目錄?
16、代碼庫(kù)URL變更?
svn switch (sw): 更新工作副本至不同的URL。?
用法: 1、switch URL [PATH]?
2、switch –relocate FROM TO [PATH...]?
1、更新你的工作副本,映射到一個(gè)新的URL,其行為跟“svn update”很像,也會(huì)將?
服務(wù)器上文件與本地文件合并。這是將工作副本對(duì)應(yīng)到同一倉(cāng)庫(kù)中某個(gè)分支或者標(biāo)記的?
方法。?
2、改寫工作副本的URL元數(shù)據(jù),以反映單純的URL上的改變。當(dāng)倉(cāng)庫(kù)的根URL變動(dòng)?
(比如方案名或是主機(jī)名稱變動(dòng)),但是工作副本仍舊對(duì)映到同一倉(cāng)庫(kù)的同一目錄時(shí)使用?
這個(gè)命令更新工作副本與倉(cāng)庫(kù)的對(duì)應(yīng)關(guān)系。?
17、解決沖突?
svn resolved: 移除工作副本的目錄或文件的“沖突”狀態(tài)。?
用法: resolved PATH…?
注意: 本子命令不會(huì)依語(yǔ)法來(lái)解決沖突或是移除沖突標(biāo)記;它只是移除沖突的?
相關(guān)文件,然后讓 PATH 可以再次提交。?
18、輸出指定文件或URL的內(nèi)容。?
svn cat 目標(biāo)[@版本]…如果指定了版本,將從指定的版本開始查找。?
svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本號(hào),這樣輸出結(jié)果是可以提交的)
------------------------------------------------------------------------
sudo zenmap ?(nmap圖形化)?
1) 獲取遠(yuǎn)程主機(jī)的系統(tǒng)類型及開放端口
nmap -sS -P0 -sV -O <target>
sudo nmap -sS -P0 -sV -O -A -v 192.168.1.106
這里的 < target > 可以是單一 IP, 或主機(jī)名,或域名,或子網(wǎng)
-sS TCP SYN 掃描 (又稱半開放,或隱身掃描)
-P0 允許你關(guān)閉 ICMP pings.
-sV 打開系統(tǒng)版本檢測(cè)
-O 嘗試識(shí)別遠(yuǎn)程操作系統(tǒng)
其它選項(xiàng):
-A 同時(shí)打開操作系統(tǒng)指紋和版本檢測(cè)
-v 詳細(xì)輸出掃描情況.
nmap -sS -P0 -A -v < target >
2) 列出開放了指定端口的主機(jī)列表
nmap -sT -p 80 -oG – 192.168.1.* | grep open
3) 在網(wǎng)絡(luò)尋找所有在線主機(jī)
nmap -sP 192.168.0.*
或者也可用以下命令:
nmap -sP 192.168.0.0/24
指定 subnet
4) Ping 指定范圍內(nèi)的 IP 地址
nmap -sP 192.168.1.100-254
5) 在某段子網(wǎng)上查找未占用的 IP
nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00" /proc/net/arp
6) 在局域網(wǎng)上掃找 Conficker 蠕蟲病毒
nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args safe=1 192.168.0.1-254
7) 掃描網(wǎng)絡(luò)上的惡意接入點(diǎn) (rogue APs).
nmap -A -p1-85,113,443,8080-8100 -T4 --min-hostgroup 50 --max-rtt-timeout 2000 --initial-rtt-timeout 300 --max-retries 3 --host-timeout 20m --max-scan-delay 1000 -oA wapscan 10.0.0.0/8
8 ) 使用誘餌掃描方法來(lái)掃描主機(jī)端口
sudo nmap -sS 192.168.0.10 -D 192.168.0.2
9) 為一個(gè)子網(wǎng)列出反向 DNS 記錄
nmap -R -sL 209.85.229.99/27 | awk '{if($3=="not")print"("$2") no PTR";else print$3" is "$2}' | grep '('
10) 顯示網(wǎng)絡(luò)上共有多少臺(tái) Linux 及 Win 設(shè)備?
sudo nmap -F -O 192.168.0.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) device"
-------------------------shell----------------------------------
expr 4 + 5
test相當(dāng)于 []
if = != -z:長(zhǎng)度為0是真 -n:長(zhǎng)度不為0是真
---------------------------------------
read num
if [ $num -le 80 ]; then echo $num
elif[ $num -gt 90 -a $num -le 90 ]; then echo $num
else echo $num
fi
-------------------------------------
exit
大小于
-eq?
-ne
-gt
-ge
-lt
-le
if [ "$var1" = "$var2" ] ; then exit() if 判斷相等否
文件測(cè)試:
-e file exist
-r file read
-w file write
-x file execute
-s ?file exist at least have a character
-d ?file is dir
-f ?file is file
-c ?file exist have special character
-b ?file exist hava block speical?
---------------------------------------------
-a and
-o or
! not
-n 判斷一個(gè)變量是否有值 if [ -n "$BASH_VERSION" ]; then echo "content" ?fi
--------------------------------------
ecode=1000
((ecode=$ecode+1))
JOB=Network
echo ${JOB}S
-----------------------------------------
$0 表示命令
$1-$9 表示參數(shù)
$# 表示參數(shù)數(shù)量
----------------------------------------
&& command1 && command2 只有第一條命令執(zhí)行成功才執(zhí)行第二條命令
|| command1 || command2 只有第一條命令執(zhí)行失敗才執(zhí)行第二條命令
: 什么都不做
:+ ${var:+default} not empty var return default
:= ${var:=default} empty var return default and assigned
:- ${var:-default} empty var return default
:? ${var:?"var has not been set"}?
---------------------------------------------------------------------------------------------------------------------
ubuntu 9.10默認(rèn)的是UFW防火墻,已經(jīng)支持界面操作了。在命令行運(yùn)行ufw命令就可以看到提示的一系列可進(jìn)行的操作。
最簡(jiǎn)單的一個(gè)操作:sudo ufw status可檢查防火墻的狀態(tài),我的返回的是:不活動(dòng)
sudo ufw version防火墻版本:
ufw 0.29-4ubuntu1
Copyright 2008-2009 Canonical Ltd.
ubuntu 系統(tǒng)默認(rèn)已安裝ufw.
1.安裝
sudo apt-get install ufw
2.啟用
sudo ufw enable
sudo ufw default deny
運(yùn)行以上兩條命令后,開啟了防火墻,并在系統(tǒng)啟動(dòng)時(shí)自動(dòng)開啟。關(guān)閉所有外部對(duì)本機(jī)的訪問(wèn),但本機(jī)訪問(wèn)外部正常。
3.開啟/禁用
sudo ufw allow|deny [service]
打開或關(guān)閉某個(gè)端口,例如:
sudo ufw allow smtp 允許所有的外部IP訪問(wèn)本機(jī)的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允許所有的外部IP訪問(wèn)本機(jī)的22/tcp (ssh)端口
sudo ufw allow 53 允許外部訪問(wèn)53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允許此IP訪問(wèn)所有的本機(jī)端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部訪問(wèn)smtp服務(wù)
sudo ufw delete allow smtp 刪除上面建立的某條規(guī)則
4.查看防火墻狀態(tài)
sudo ufw status
一般用戶,只需如下設(shè)置:
sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny
以上三條命令已經(jīng)足夠安全了,如果你需要開放某些服務(wù),再使用sudo ufw allow開啟。
開啟/關(guān)閉防火墻 (默認(rèn)設(shè)置是’disable’)
sudo ?ufw enable|disable
轉(zhuǎn)換日志狀態(tài)
sudo ?ufw logging on|off
設(shè)置默認(rèn)策略 (比如 “mostly open” vs “mostly closed”)
sudo ?ufw default allow|deny
許 可或者屏蔽端口 (可以在“status” 中查看到服務(wù)列表)。可以用“協(xié)議:端口”的方式指定一個(gè)存在于/etc/services中的服務(wù)名稱,也可以通過(guò)包的meta-data。 ‘a(chǎn)llow’ 參數(shù)將把條目加入 /etc/ufw/maps ,而 ‘deny’ 則相反。基本語(yǔ)法如下:
sudo ?ufw allow|deny [service]
顯示防火墻和端口的偵聽狀態(tài),參見 /var/lib/ufw/maps。括號(hào)中的數(shù)字將不會(huì)被顯示出來(lái)。
sudo ?ufw status
UFW 使用范例:
允許 53 端口
$ sudo ufw allow 53
禁用 53 端口
$ sudo ufw delete allow 53
允許 80 端口
$ sudo ufw allow 80/tcp
禁用 80 端口
$ sudo ufw delete allow 80/tcp
允許 smtp 端口
$ sudo ufw allow smtp
刪除 smtp 端口的許可
$ sudo ufw delete allow smtp
允許某特定 IP
$ sudo ufw allow from 192.168.254.254
刪除上面的規(guī)則
$ sudo ufw delete allow from 192.168.254.254
linux 2.4內(nèi)核以后提供了一個(gè)非常優(yōu)秀的防火墻工具:netfilter/iptables,他免費(fèi)且功能強(qiáng)大,可以對(duì)流入、流出的信息進(jìn)行細(xì)化控制,它可以 實(shí)現(xiàn)防火墻、NAT(網(wǎng)絡(luò)地址翻譯)和數(shù)據(jù)包的分割等功能。netfilter工作在內(nèi)核內(nèi)部,而iptables則是讓用戶定義規(guī)則集的表結(jié)構(gòu)。
但是iptables的規(guī)則稍微有些“復(fù)雜”,因此ubuntu提供了ufw這個(gè)設(shè)定工具,以簡(jiǎn)化iptables的某些設(shè)定,其后臺(tái)仍然是 iptables。ufw 即uncomplicated firewall的簡(jiǎn)稱,一些復(fù)雜的設(shè)定還是要去iptables。
ufw相關(guān)的文件和文件夾有:
/etc/ufw/:里面是一些ufw的環(huán)境設(shè)定文件,如 before.rules、after.rules、sysctl.conf、ufw.conf,及 for ip6 的 before6.rule 及 after6.rules。這些文件一般按照默認(rèn)的設(shè)置進(jìn)行就ok。
若開啟ufw之 后,/etc/ufw/sysctl.conf會(huì)覆蓋默認(rèn)的/etc/sysctl.conf文件,若你原來(lái)的/etc/sysctl.conf做了修 改,啟動(dòng)ufw后,若/etc/ufw/sysctl.conf中有新賦值,則會(huì)覆蓋/etc/sysctl.conf的,否則還以/etc /sysctl.conf為準(zhǔn)。當(dāng)然你可以通過(guò)修改/etc/default/ufw中的“IPT_SYSCTL=”條目來(lái)設(shè)置使用哪個(gè) sysctrl.conf.
/lib/ufw/user.rules 這個(gè)文件中是我們?cè)O(shè)置的一些防火墻規(guī)則,打開大概就能看明白,有時(shí)我們可以直接修改這個(gè)文件,不用使用命令來(lái)設(shè)定。修改后記得ufw reload重啟ufw使得新規(guī)則生效。
下面是ufw命令行的一些示例:
ufw enable/disable:打開/關(guān)閉ufw
ufw status:查看已經(jīng)定義的ufw規(guī)則
ufw default allow/deny:外來(lái)訪問(wèn)默認(rèn)允許/拒絕
ufw allow/deny 20:允許/拒絕 訪問(wèn)20端口,20后可跟/tcp或/udp,表示tcp或udp封包。
ufw allow/deny servicename:ufw從/etc/services中找到對(duì)應(yīng)service的端口,進(jìn)行過(guò)濾。
ufw allow proto tcp from 10.0.1.0/10 to 本機(jī)ip port 25:允許自10.0.1.0/10的tcp封包訪問(wèn)本機(jī)的25端口。
ufw delete allow/deny 20:刪除以前定義的"允許/拒絕訪問(wèn)20端口"的規(guī)則
--------------------------------------------------------------------------
轉(zhuǎn)載于:https://my.oschina.net/zhongjuan/blog/93894
總結(jié)
以上是生活随笔為你收集整理的linux命令使用全集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机常用端口
- 下一篇: linux 配置 clang++ SD