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*'   # 搜索所有以index开头的文件

在/home目录下搜索所有大小超过10000K的文件

find /home -size +10000k        # 在/home目录下搜索所有大小超过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 

root@139.136.218.194:/data/appdatas/cat;//远程机器访问端口为2244

# rsync
rsync -a /home/apps /backup/              # 源目录和目标目录同步
rsync -avz /home/apps noodle@192.168.10.1:/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 #查看testnewuser 所在的组

cat /etc/group  #查看所有组

14.Linux内存清理命令

free -m;//清理内存前 查看内存使用情况

echo 1 > /proc/sys/vm/drop_caches;//开始清理

free -m;//清理之后查看内存使用情况

dmidecode | grep -A16 "Memory Device$";//查看内存条数