工作中常用Linux命令,持续更新中...

89 阅读3分钟

系统相关

查询系统版本

uname -a 
cat /proc/version 
cat /etc/issue 
lsb_release -a
sudo passwd root  #修改密码
sudo shutdown -h now #关机

磁盘相关

# 查看当前目录下一级子文件和子目录占用的磁盘容量
du -lh --max-depth=1
du -h -x --max-depth=1
# 查看挂载情况,磁盘空间
df -h
# 挂载目录
mount -t nfs 172.26.136.183:/mydata/uploadfile /usr/local/www/uploadfile

权限相关

# 赋权777
chmod -R 777 work
# 赋权可执行
chmod -x run.sh
chmod u+x file.sh

文件目录

# 统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l 
# 复制目录下所有文件,忽略.svn
rsync --exclude=.svn source/. target/ -rv
# 文件查找
find  path expression
# 按照文件名查找
find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件
find /(查找范围) -name '查找关键字' -type d:查找目录

端口

# 查看端口占用
netstat -tunlp |grep 6379
# 查看端口占用
netstat -tln | grep 8083
# 端口被哪个进程占用
lsof -i :8083

工具

ab

# 发起一万个请求
ab -n 10000 http://www.baidu.com

网络工具nethogs

# 查看进行网络带宽情况
nethogs

解压缩

tar

# 打包目录,但不压缩,-zcvf  gz压缩
tar -cvf target.tar source/.
# 压缩
tar zcvf FileName.tar.gz DirName 
# 解压 tar包
tar -xvf file.tar 
# 解压tar.gz
tar -xzvf file.tar.gz
# 解压tar.gz到固定目录
tar zcvf file.tar.gz -C /root/

解压zip

unzip abc.zip -d abc

gzip、gunzip 压缩、解压

gzip filename
# 制定路径并保留源文件
gzip -c filename >newfilename
# 在当前目录解压文件,该方法会删除源文件
gunzip abc.sql.gz
# 解压到指定目录,保留源文件,覆盖abc.sql,使用 >> 追加到abc.sql
gunzip -c abc.sql.gz > abc.sql

批量

for f in *.zip; do unzip $f; done

## 进程线程、日志
### 线程
```shell
# 查看线程
ps -T -p  <PID>   
# 这样可以看到指定的进程产生的线程数目
ps -mq PID  

日志

# 搜索日志,并打印行号
grep -rn 'keyword' stdout.log
# 打印75-81行的内容
sed -n '75,81p' error.2018-08-10.log
# 查询catalina.out日志文件中的关键词为2016-04-13 11:26:00的日志信息
# grep的-A, -B, -C选项分别可以显示匹配行的后,前,后前多少行内容
# catalina.out : 检索的文件 可以是目录 ./
# |more : 以分页的形式查看
grep -C 10 '2016-04-13 11:26:00' catalina.out |more

# &操作查询日志
# 显示既匹配 pattern1 又匹配 pattern2 的行。
grep pattern1 files | grep pattern2

# 或 查询日志
grep -E '123|abc' filename  // 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename    // 用egrep同样可以实现
awk '/123|abc/' filename   // awk 的实现方式

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行