Linux經常使用命令

  Linux CentOS運維中,經常使用的操做和命令記錄下:html

一、DNS設置java

  在Linux服務器上,當咱們ping出現這個錯誤時:ping: unknown host,很大多是系統的DNS沒有設置或者設置錯誤。在 /etc/resolv.conf 中,設置下便可:linux

# cat /etc/resolv.conf  
nameserver 8.8.8.8  
nameserver 8.8.4.4  

 

二、FTP客戶端配置android

  當咱們須要在Linux服務器上連某個FTP,輸入ftp命名提示這個錯誤時:-bash: ftp: command not found,多是服務器上沒有安裝FTP客戶端。咱們能夠到http://mirror.centos.org/centos/5/os/i386/CentOS/ 下,找到ftp的rpm package的安裝包地址下載後執行安裝:nginx

# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/ftp-0.17-38.el5.i386.rpm

 

三、防火牆配置redis

  Linux的防火牆相信你們都不會陌生,iptables 功能很強大,咱們暫時只列出咱們經常使用的,好比當前系統只開放了SSH的22端口,apache

[root@localhost /]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

咱們再加一行,windows

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT,放開對8080端口的訪問;centos

-A INPUT -s 192.168.4.6 -p tcp --dport 22 -j ACCEPT,只容許192.168.4.6的機器進行SSH鏈接;瀏覽器

若是要容許或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的全部IP地址。

修改完後,須要重啓下iptables,配置才能生效:

[root@localhost /]# service iptables restart

 

四、nginx部署

  先到官網下載.tar.gz的安裝包:http://nginx.org/en/download.html,而後解壓到你想要的目錄:

tar zxvf nginx-1.8.0.tar.gz

設置配置信息、編譯、安裝:

./configure --prefix=/home/nginx/nginx/nginx-1.8.0
make
make install

若是編輯和安裝的過程當中,沒有出現 error 之類的錯誤描述,而且 nginx的根目錄生成了sbin文件夾,那麼恭喜你,安裝成功了!

不過個人服務器環境在 make 編輯的時候,出錯了:./configure: error: the HTTP rewrite module requires the PCRE library 。

錯誤提示是缺乏PCRE庫,由於nginx的rewrite依賴於PCRE庫,因此須要在linux中編譯安裝下PCRE庫。。。

咱們能夠到 http://sourceforge.net/projects/pcre/files/pcre/ 下,選擇下載一個PCRE的版本,解壓後,老規矩,配置編譯安裝:

tar zxvf pcre-8.36.tar.gz
./configure
make
make install

安裝成功後,咱們再接着編譯安裝下 nginx。嗯,這下沒error提示,安裝成功了。啓動nginx:

cd /home/nginx/nginx-1.8.0/sbin
./nginx

可是又出錯了:./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

網上查了下,聽說是由於沒有給動態連接庫建立連接,執行以下命令便可:

ln -s /usr/local/lib/libpcre.so.1 /lib     #32位系統 
ln -s /usr/local/lib/libpcre.so.1 /lib64   #64位系統 

最後,再 ./nginx 啓動。

能夠經過 ps -ef | grep nginx 查看,若是有2個nginx進程(一個master 一個worker),那麼 nginx 已經正常啓動了,打開本機的瀏覽器,訪問 http://服務器ip,親切的畫面迎面而來!

 

 

發現也能夠用yum的方法來安裝:

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

查看下yum的nginx信息:

yum info nginx

而後安裝:

yum install nginx

最後啓動nginx:

service nginx start

 

五、Tomcat部署

  先到官網下載.tar.gz的安裝包: http://tomcat.apache.org/download-70.cgi,或者wget直接下載到服務器:

wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.64/bin/apache-tomcat-7.0.64.tar.gz

而後解壓到你想要的目錄:

tar zxvf apache-tomcat-6.0.44.tar.gz

環境變量我沒配,

到tomcat的bin目錄啓動tomcat:

./catalina.sh start 

到tomcat的bin目錄關閉tomcat:

./shutdown.sh stop

查看tomcat是否安裝成功:

netstat -tnlp|grep java

 

六、date命令

# date -R
Wed, 19 Aug 2015 14:00:40 +0800
# date +%F
2015-08-19
# date +'%F %T'
2015-08-19 14:00:58

 

七、強大的Find和grep

當咱們要刪除某類文件,好比2天以前的日誌文件時:

find /home/policy/log -mtime +2 -name "*.log" -exec rm -rf {} \;

-mtime:標準寫法

+2:查找2天前的文件,這裏用數字表示天數

"*.*":但願查找的文件類型,"*.log"表示查找擴展後綴名爲log的全部文件,"*"表示查找全部文件

-exec:固定寫法

rm -rf:強制刪除文件,包括目錄 (rm -rf 很是危險,執行以前必定要再三確認喲~)

{} \; :固定寫法,一對大括號+空格+ \

 

 好比查找某個文件夾

find / -name nginx

 模糊查詢

find / -name "*tomcat*"

 模糊查找指定文件裏面的內容

 grep -n '192.168' config.properties

 查找指定文件中某天的日誌,而且含有android關鍵字(不區分大小寫)的日誌數量

grep "10/Nov/2017" host.access.log|grep -i "android" | wc -l

 查詢指定文件中含有 ipad或iphone關鍵字(不區分大小寫)而且對關鍵字精確匹配的日誌

grep -iwE "ipad;|iphone;" host.access.log 

 查詢某類文件中含有error關鍵字的日誌內容

find -type f -name '*.log'|xargs grep 'error'

 

八、端口占用狀況

 查看linux端口的使用狀況:netstat -tlnp  

              netstat -nat

  查看某個進程的端口使用狀況,好比tomcat,先查看tomcat的進程號:ps -ef | grep tomcat*

  (後面帶*,是爲了查看多個tomcat如tomcat6,tomcat7等)

  再根據進程號查看端口號,好比上面查出來tomcat的進程id是5811:netstat -anop | grep 5811

 

  檢測端口是否啓用:ss -tnl 

 

九、實時監控網卡流量

單網卡:watch -n 1 "ifconfig eth0"

全部網卡:watch cat /proc/net/dev

     watch more /proc/net/dev

 

十、服務器配置查看

系統版本:cat /etc/redhat-release、lsb_release  -a

操做系統位數:getconf LONG_BIT

物理CPU個數:cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

每一個物理CPU中core的個數(核數):cat /proc/cpuinfo| grep "cpu cores"| uniq

 

 十一、iconv批量轉換windows文件成linux文件

windwos文件中的文件上傳到linux後因爲編碼不一樣,可能會致使亂碼。

先查看文件編碼:

file filename

再遞歸轉換(含子文件夾):

find test -type d -exec mkdir -p /home/maoniu/{} \;
find test -type f -exec iconv -f GBK -t UTF-8 {} -o /home/maoniu/{} \;

(將test目錄下的文件由GBK編碼轉換爲UTF-8編碼,目錄結構不變,轉碼後的文件保存在/home/maoniu/test目錄下)

注意:若是原來就是utf-8編碼,使用iconv -f GBK -t UTF-8命令轉換後,會出現亂碼,或截斷等各類問題;必定要保證原文件是否是utf-8編碼;

 使用以下命令把文件編碼先查出來:find test-type f -exec file -i {} \; > /tmp/test

查詢是否存在已是utf-8編碼的文件:grep "charset=utf-8" /tmp/test

 

十二、使用nc作TCP和UDP端口掃描

TCP掃描

 nc -nvz 192.168.1.105 1-65535 進行掃描,

-z : 探測到端口後就退出,不進行鏈接。

 

UDP掃描

 nc -nvzu 192.168.1.105 1-1024 進行掃描,

-u : UDP

 

1三、windows與linux經過sftp上傳下載

按下ALT+P 開啓新的會話,進行sftp操做。可輸入: help命令,顯示全部支持的命令

          pwd:  查詢linux主機所在目錄(也就是遠程主機目錄)
         lpwd:  查詢本地目錄(指windows上傳文件的目錄:咱們能夠經過查看"選項"下拉框中的"會話選項")
               ls:  查詢鏈接到當前linux主機所在目錄有哪些文件
              lls:  查詢當前本地上傳目錄有哪些文件
             lcd:  改變本地上傳目錄的路徑
              cd:   改變遠程上傳目錄
             get:  將遠程目錄中文件下載到本地目錄
             put:  將本地目錄中文件上傳到遠程主機(linux)
            quit:  斷開FTP鏈接  

 1四、CP

例 複製源目錄 爲 dir1 ,目標目錄爲dir2

若是dir2目錄不存在:cp -r dir1 dir2

若是dir2目錄已存在:cp -r dir1/. dir2

若不想看到提示直接覆蓋使用 -rf 。若是仍是提示是否覆蓋,能夠在CP命令前面加一個斜槓\ ,即: \cp -rf dir1/. dir2

 

1四、查看進程啓動和執行時間

ps -eo pid,lstart,etime,cmd | grep redis

相關文章
相關標籤/搜索