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$" ; //查看内存条数