linux 一些实用命令常用
sanlanlan 2018-10-26 标签: linux 浏览:1803 评论:1
vi /etc/profile
add:alias ll='ls -l'
source /etc/profile
2.复制目录
将目录dir1复制成目录dir2
cp -R dir1 dir2
mv source target
3.强制启动php
php-fpm -R-D
4.scp相关
scp -Pport root@127.0.0.1:/data/1.txt . //这个文件可以copy 到你当前目录下
scp -r 127.0.0.1:/data/ . //目录
sudo vim /etc/ssh/sshd_config
sudo vim /etc/ssh/ssh_config //这个:User:root;Port:port
(rsync 可以保持原样的文件迁移,如目录用户保持不变。常用来做文件迁移)
5.linux下 直接运行mysql,写入文件
mysql -h localhost -uroot -p -e "set names 'utf8'; select id from db.table" >a.log
mysql -h localhost -uroot -p -e "set names 'utf8'; select id from db.table" >b.log
cat a.log b.log | sort | uniq -u >diff.log
6.修改权限
chown -R git:git sample.git
7.查看网络端口情况
netstat -an | grep LISTEN // netstat -an | grep 80
netstat -anp | grep 80
8.grep 统计次数
// 查看 这个字符串 hello 在文件出现的次数
cat xxx.log | grep -i hello |wc -l
9.cat /etc/shells
查看支持的shell
chsh -s /bin/zsh //切换shell
echo $SHELL 查看当前用的shell
10. 查看
head -n 10 demo.txt //查看前10行
tail -n 10 demo.txt //查看后10行
11.查看端口号所使用的进程号
lsof –i:端口号
lsof -i:80 #检查程序被那个进程占用
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 126 root 47u IPv4 10374 0t0 TCP *:http (LISTEN)
nginx 128 www 47u IPv4 10374 0t0 TCP *:http (LISTEN)
php 2194 root 6u IPv4 16419057 0t0 TCP a.com:64500->b.com:http (CLOSE_WAIT)
php 2313 root 6u IPv4 7478183 0t0 TCP a:23892->c:http (CLOSE_WAIT)
lsof -p pid #检视程序开启的执行代码
lsof -i tcp #查看所有tcp网络连接
lsof -i udp #查看所有udp网络连接信息
lsof -i :8080 #查看使用8080端口信息
lsof -u www 查找用户www的进程打开的文件
12. 查看那系统有几个 CPU
cat /proc/cpuinfo | grep 'model name' | wc -l
13. 查看网络信息
# head -n 3 表示只显示前面 3 行
# -l 表示只显示监听套接字
# -n 表示显示数字地址和端口 (而不是名字)
# -p 表示显示进程信息
$ netstat -nlp | head -n 3
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1234/./redis-serve
# -l 表示只显示监听套接字
# -t 表示只显示 TCP 套接字
# -n 表示显示数字地址和端口 (而不是名字)
# -p 表示显示进程信息
$ ss -ltnp | head -n 3
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10000 *:* users:(("redis-server",pid=1234,fd=5))
LISTEN 0 128 *:80 *:* users:(("nginx",pid=1235,fd=6),("nginx",pid=2344,fd=6),("nginx",pid=23443,fd=6))
netstat -lntp 查看开启了哪些端口
netstat -ntlp | grep 80 //查看端口进程
netstat -ant | grep $ip:80 | wc -l //查看连接数
14. su(Switch user)
sudo
su -
su - root
su - root -c "ls -l /root"
su - oracle -c "ulimit -aHS"
su -s /bin/sh -c "/usr/local/nginx/sbin/nginx"
-c, –command=COMMAND
使用 -c 传递单个命令到 shell 中,执行命令后,就恢复原来的用户身份,退出所切换到的用户环境;
-s, –shell=SHELL
指定执行命令的shell;
15 find
find / -size +1024M //大于1G 文件
find / -name a.txt
find /home -mtime +3 //3 天前被修改的文件
16 查看某个进程占用,并kill
ps aux | grep node | awk '{print $2}' | xargs kill
17 查看文件,目录关键字出现次数
cat xxx.log | grep "hello" | wc -l //文件中出现次数
ls -l | xargs grep -ri "hello" | wc -l //当前目录下,出现次数
find ./ -name "*info.log" | xargs grep -ri "hello" | wc -l //当前目录下,以info.log 结尾文件出现次数。r 是递归,i 是不区分大小写
111.
1.列出nginx日志访问最多的10个IP
(1)awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -n 10
sort :排序
uniq -c:合并重复行,并记录重复次数
sort -nr :按照数字进行降序排序
14416 123.123.1.117
7302 123.123.1.178
4303 123.123.1.51
2846 123.236.77.51
2597 123.123.0.100
2575 123.123.1.48
2225 172.16.0.145
1990 123.123.1.55
1955 123.123.1.137
1847 123.123.0.84
(2)awk '{a[$1]++}END{for(v in a)print v,a[v] |"sort -k2 -nr |head -10"}' access.log
2.检视服务器IP连线数
netstat -tun | awk '{print $5}' | cut -d: -f1 |sort | uniq -c | sort -n
-tun:-tu是显示tcp和udp连线,n是以IP地址显示
cut -d:-f1:cut是一个选择性显示一行的内容命令,-d指定:为分隔符,-f1显示分隔符后的第一个栏位。
uniq -c:报告或删除文中的重复行,-c在输出行前面加上出现的次数
sort -n:根据不同型别进行排序,预设排序是升序,-r引数改为降序,-n是根据数值的大小进行排序
3.显示nginx日志一天访问量最多的前10位IP
awk '$4>="[16/Feb/2017:00:00:01" && $4<="[16/Feb/2017:23:59:59"' access.log |sort |uniq -c |sort-nr |head -n 10
awk '$4>="[16/Oct/2017:00:00:01" && $4<="[16/Oct/2017:23:59:59"{a[$1]++}END{for(i in a){print a[i],i|"sort -k1 -nr |head -n 10"}}' access.log
121.
free -k 查看内存
df -k 查看硬盘信息
du查看文件或目录占用磁盘空间的大小
du常用的一些参数:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
常用的一些命令:
du -sh //只统计总数
du -ah //统计个人目录大小
du -sh dir //统计某个目录大小
du -sh ./* // 查看目录
du -sh * | sort -h 排序
ps:
交换分区:就是把一块磁盘空间当做内存来用,它可以把进程暂时不用的数据存储到磁盘中(这个过程称为换出)
当进程访问这些内存时,再从磁盘读取这些数据到内存中(这个过程称为换入)
2016-09-13 21:55