Linux常見問題及命令總結
1.查詢Linux系統相關的
查看linux內核版本
cat /etc/version
查看內核版本號
uname -r
查看內核/操作系統的信息
uname -a
查看系統版本號
lsb_release -a
手動釋放cache緩存
echo 3 > /proc/sys/vm/drop_caches
2.操作文件相關的
查找目錄下文件內字符串
grep -rn "welcome" *; //查找當前目錄下"welcome" 字符串, *表示當前目錄下所有文件,也可以是文件名
查找指定文件內字符串
grep -rn /usr/local/ -e "20003" ; //查找在/usr/local目錄下文件中包含20003關鍵字的文件
搜索所有以index開頭的文件
find /home/tom -name 'index*'
在/home目錄下搜索所有大小超過10000K的文件
find /home -size +10000k
在/home/software 下查找名字
find /home/software/ -type f -name "splunk.tgz" ; //在/home/software 下查找名字爲"splunk.tgz" 的文件
解壓redis.tar.gz的文件
tar -zxvf redis.tar.gz; //解壓redis.tar.gz的文件
解壓到指定目錄(-C)
tar -zxvf jdk-8u72-linux-x64.tar.gz -C /usr/local; //將jdk-8u72-linux-x64.tar.gz 解壓到/usr/local目錄中
解壓到指定目錄(-d)
unzip gradle-3.3-bin.zip -d /usr/local/; 將gradle-3.3-bin.zip解壓到/usr/local目錄
zip壓縮文件
zip -r test.zip test ; 將test文件夾打包成test.zip
查看尾部內容
tail -f access.log; //查看文件尾部內容
進程後臺運行
nohup java -jar jenkins.war & ; //進程後臺程序
將文件權限分配用戶
chown -R cdn:cdn common/; //將common文件夾權限分給cdn
查詢2017年6月22日日誌
sed -n '/22\/Jun\/2017/' p access.log>> 20170622.log; //查詢2017年6月22日日誌
截取某段時間的日誌
sed -n '/2017-06-15 00:00:00/,/2017-06-15 24:00:00/p' catalina.out >> 20170615.log; //截取某個時間段的日誌
sed -n '/2017-07-05 09:[0-9][0-9]:[0-9][0-9]/,/2017-07-05 16:[0-9][0-9]:[0-9][0-9]/p' catalina.out
創建文件軟鏈接
ln -s /usr/mengqc/mub1 /usr/liu/abc; 將/usr/mengqc/mub1代表的路徑將存放在名爲/usr/liu/abc的文件中。
刪除軟鏈接
rm -rf /usr/softlink ; 刪除軟鏈接 注意後面不用加/
創建目錄引向某個文件
ln –s /var/www/test /var/test ; 創建/var/test 引向/var/www/test 文件夾
3.查詢進程相關的
netstat -lp| grep memcached; //查看啓動的memcache服務
netstat -nltp| grep 8080; //查詢8080端口是否監聽
ps -aux; //查看所有的進程
ps -ef| grep java; //查看java的進程號
history 1000| grep pip; //列出最近使用pip 命令的1000條記錄
ps -ef| grep jetty| grep -v grep | awk '{print $2 }' ; //查看jetty進程號
ps -ef| grep -v grep | grep jetty-avene| grep jetty| grep -v python| awk '{print $2 }' ; //查詢jetty項目名稱爲jetty-avene的進程號
ps -ef| grep -v grep | grep jetty-avene| grep jetty| grep -v python| awk '{print $2 }'
4.安裝軟件相關的
rpm --install couchbase-server-enterprise-3.0.3-centos6.x86_64.rpm; //解壓rpm文件
rpm -qa; //查看所有安裝的軟件包
rpm -qa| grep kernel; //查詢系統所有內核
yum remove kernel-headers-3.10.0-327.el7.x86_64; //刪除內核kernel-headers-3.10.0-327.el7.x86_64
rpm -l pkgname.rpm;//安裝rpm包
rpm -e pkgname; //刪除rmp包
從源碼安裝
./configure
make
make install
5.防火牆相關的(centos6)
chkconfig --list; //列出系統所有服務啓動情況
service iptables status; //查看防火牆狀態
service iptables start; //打開防火牆
service iptables stop; //關閉防火牆
爲防火牆添加訪問端口和ip,在vi /etc/sysconfig/iptables目錄下編輯:
iptables -A INPUT -p tcp --dport 10006 -j ACCEPT; //允許端口10006訪問
iptables -A INPUT -s 192.168.50.87 -p tcp -j ACCEPT;//允許192.168.50.87地址能訪問
6.操作磁盤相關的
df -h; //查看磁盤的使用情況
du -h; //查看目錄的大小
du –sh *;//查看某個目錄下所有文件及文件的大小:
du -sh *| sort -nr; //定位那個目錄最大
du –sh * | sort –n; //按照文件大小排序
fdisk -l; //可以查看到當前的所有分區,比如boot分區,該分區存檔linux的grub以及內核源碼
vim /etc/fstab ; //修改fstab內容
7.網絡相關的
nslookup www.baidu.com; //查詢域名對應的ip地址
dig www.baidu.com; //查詢域名對應的ip地址
lsof -i:4080; //查看4080端口是否被佔用
curl ifconfig.me; //查出外網的ip地址
netstat -tnlp| grep redis;
ifconfig -a; //列出所有網絡端口和IP地址
iftop //監控網絡帶寬
ifconfig eth0 //列出指定以太網端口對應的IP地址和詳細信息
ethtool eth0 //查看以太網狀態
ping host
whois domain //獲取指定域名的信息
dig domain //獲取指定域名的DNS信息
dig -x host //根據主機地址反向查找
host goole.com //根據域名查找DNS IP地址
wget file //下載文件
netstat -tupl //列出系統的活躍連接
8.文件傳輸相關的
scp file.txt server2:/tmp //安全拷貝file.txt到遠程主機的/tmp目錄下
scp noodle@server2:/www/*.html /www/tmp //拷貝遠程主機的/www/目錄下的所有HTML文件到本地的/www/tmp目錄
scp -r noodle@server2:/www /www/tmp //遞歸拷貝遠程主機/www目錄下的所有文件和文件夾到本地/www/tmp目錄
scp -P 2244 client.xml datasources.xml server.xml
[email protected] :/data/appdatas/cat; //遠程機器訪問端口爲2244
rsync -a /home/apps /backup/
rsync -avz /home/apps [email protected] :/backup //本地目錄和遠程主機目錄同步,啓用壓縮
//模擬請求
curl -i -X POST -H 'Content-type' : 'application/json' -d '{"customerId":3,"recNum":"18862285367"}' http://10.105.31.109:10000/sms/sendCoupenCodeSms
9.硬件相關的
dmesg //監測硬件和啓動消息
cat /proc/cpuinfo //CPU信息
cat /proc/meminfo //硬件內存信息
free -m //已使用的和可用內存,-m表示單位爲M
lspci -tv //顯示PCI設備信息
lsusb -tv //顯示USB設備信息
hdparm -l /dev/sda //顯示sda硬盤信息
hdparm -tT /dev/sda //對sda硬盤進行讀取速度測試
hdparm -s /dev/sda //測試sda硬盤上不可讀的塊
10.統計相關的
top //顯示並不斷更新最耗CPU的進程
mpstat 1 //顯示CPU統計信息
vmstat 2 //顯示虛擬內存統計信息
iostat 2 //顯示IO統計信息(2s採樣間隔)
tcpdump -i eth1 //捕獲eth1網絡接口上的所有數據包
tcpdump -i eth0 'port 80' //監控80端口的網絡流量
lsof //列出所有活躍進程打開的文件
lsof -u testuser //列出所有testuser用戶打開的文件
wc -l filename; //統計行數
wc -c filename; //統計字節數
wc -m filename; //統計字符數
wc -w filename; //統計單詞數
ls -l| wc -l 用來統計當前目錄下的文件數
11.nginx統計相關的
1.根據訪問IP統計UV
awk '{print $1 }' access.log| sort | uniq -c | wc -l
2.統計訪問URL統計PV
awk '{print $7 }' access.log| wc -l
3.查詢訪問最頻繁的URL
awk '{print $7 }' access.log| sort | uniq -c | sort -n -k 1 -r| more
4.查詢訪問最頻繁的IP
awk '{print $1 }' access.log| sort | uniq -c | sort -n -k 1 -r| more
5.根據時間段統計查看日誌
cat access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p' | more
12.nmap相關的
nmap 192.168.102.10; 偵測ip地址
nmap weixin.hao.cn; 偵測域名
nmap -sU -sS -F weixin.hao.cn; //-F 快速掃描模式,掃描最可能開放的前100個端口
nmap -sV 192.168.102.10;
nmap -A 192.168.102.10; 執行全網掃描
nmap -O weixin.hao.cn; //偵測操作系統的信息
nmap -sP 192.168.102.*; //找出網絡中的在線主機
nmap -V; //查詢nmap版本
nmap -p 8080 weixin.hao.cn; //掃描特定端口
13.用戶相關的
adduser newname // 新建用戶newname
passwd newname //設置用戶名和密碼
userdel newname //刪除用戶
deluser –remove-home newname //刪除home目錄的數據
sudo addgroup siatstudent //創建組
groupadd testgroup
groupmod -n test2group testgroup //修改組
delgroup happy //刪除分組
groups
groups testnewuser
cat /etc/group
14.Linux內存清理命令
free -m; //清理內存前 查看內存使用情況
echo 1 > /proc/sys/vm/drop_caches; //開始清理
free -m; //清理之後查看內存使用情況
dmidecode | grep -A16 "Memory Device$" ; //查看內存條數