zoukankan      html  css  js  c++  java
  • Linux常用命令

      Linux CentOS运维中,常用的操作和命令记录下:

    1、DNS设置

      在Linux服务器上,当我们ping出现这个错误时:ping: unknown host,很大可能是系统的DNS没有设置或者设置错误。在 /etc/resolv.conf 中,设置下即可:

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

    2、FTP客户端配置

      当我们需要在Linux服务器上连某个FTP,输入ftp命名提示这个错误时:-bash: ftp: command not found,可能是服务器上没有安装FTP客户端。我们可以到http://mirror.centos.org/centos/5/os/i386/CentOS/ 下,找到ftp的rpm package的安装包地址下载后执行安装:

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

    3、防火墙配置

      Linux的防火墙相信大家都不会陌生,iptables 功能很强大,我们暂时只列出我们常用的,比如当前系统只开放了SSH的22端口,

    [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

    我们再加一行,

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT,放开对8080端口的访问;

    -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

    4、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

    5、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

    6、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

    7、强大的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'

    8、端口占用情况

     查看linux端口的使用情况:netstat -tlnp  

                  netstat -nat

      查看某个进程的端口使用情况,比如tomcat,先查看tomcat的进程号:ps -ef | grep tomcat*

      (后面带*,是为了查看多个tomcat如tomcat6,tomcat7等)

      再根据进程号查看端口号,比如上面查出来tomcat的进程id是5811:netstat -anop | grep 5811

      检测端口是否启用:ss -tnl 

    9、实时监控网卡流量

    单网卡:watch -n 1 "ifconfig eth0"

    所有网卡:watch cat /proc/net/dev

         watch more /proc/net/dev

    10、服务器配置查看

    系统版本: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

     11、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

    12、使用nc做TCP和UDP端口扫描

    TCP扫描

     nc -nvz 192.168.1.105 1-65535 进行扫描,

    -z : 探测到端口后就退出,不进行连接。

    UDP扫描

     nc -nvzu 192.168.1.105 1-1024 进行扫描,

    -u : UDP

    13、windows与linux通过sftp上传下载

    按下ALT+P 开启新的会话,进行sftp操作。可输入: help命令,显示所有支持的命令

              pwd:  查询linux主机所在目录(也就是远程主机目录)
             lpwd:  查询本地目录(指windows上传文件的目录:我们可以通过查看"选项"下拉框中的"会话选项")
                   ls:  查询连接到当前linux主机所在目录有哪些文件
                  lls:  查询当前本地上传目录有哪些文件
                 lcd:  改变本地上传目录的路径
                  cd:   改变远程上传目录
                 get:  将远程目录中文件下载到本地目录
                 put:  将本地目录中文件上传到远程主机(linux)
                quit:  断开FTP连接  

     14、CP

    例 复制源目录 为 dir1 ,目标目录为dir2

    如果dir2目录不存在:cp -r dir1 dir2

    如果dir2目录已存在:cp -r dir1/. dir2

    若不想看到提示直接覆盖使用 -rf 。如果还是提示是否覆盖,可以在CP命令前面加一个斜杠 ,即: cp -rf dir1/. dir2

    14、查看进程启动和执行时间

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

  • 相关阅读:
    BEGIN
    bdflush
    BASH BUILTIN COMMANDS 内建命令
    程序 算法与数据结构
    ThinkPHP 3.2.2 在 volist 多重循环嵌套中使用 if 判断标签
    Java实现 蓝桥杯 算法提高 矩形靶
    Java实现 蓝桥杯 算法提高 矩形靶
    Java实现 蓝桥杯 算法提高 矩形靶
    Java实现 蓝桥杯 算法提高 歌唱比赛
    Java实现 蓝桥杯 算法提高 歌唱比赛
  • 原文地址:https://www.cnblogs.com/maoniu602/p/4736334.html
Copyright © 2011-2022 走看看