Linux常用命令

Posted xinbao777

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令相关的知识,希望对你有一定的参考价值。

我们的业务部署在linux环境下,这些实体机或者虚拟机都在IDC机房,所以我们操作这些机器,通常会用到远程模拟终端 —— Xshell
  下面分类介绍一些常用的命令
  【文件和目录操作命令】
  pwd 显示当前所处目录的全路径
  BASE=`cd $(dirname $0); pwd`
  cd 改变当前目录
  cd ~ 改变到用户的home目录
  cd - 改变到上一次的目录
  ls -alh 显示所有文件内容,文件大小按照humanable方式显示
  tree 以树型显示当前目录下所有内容
  mkdir -p 如果父目录不存在则创建
  rmdir 只能删除空目录
  rmdir -p 如果父目录没内容也删除掉
  rm -rf 递归删除 (这是一个极端危险的命令,执行之前一定要确认清楚)
  cp src dst 拷贝src到dst
  rm dst 删除dst文件
  mv src dst 移动或者重命名src到dst
  ln 建立符号链接
  chown user.usergroup 修改属主信息
  chmod 修改文件权限
  设定文件权限时,在模式中常用以下的字母代表用户或用户组:
  u - 文件的拥有者;
  g - 文件的所属组;
  o - 其他用户;
  a - 代表所有用户(即u+g+o)。
  权限用以下字符表示:
  r?- 读权限;
  w - 写权限;
  x - 执行权限;
  注意:增加(+)还是减少(-)权限,或是权限(=)
  find 查找文件
  -name “*.log”
  -type f  查找类型为文件(f),目录(d)
  -wholename “*/logs/*” 全路径匹配
  -mtime +n n天前修改过的文件
  find /data/ -type f -wholename “*/logs/*” -mtime +1 -exec rm -f {} ;
  查找data下,全路径包含/logs/且1天前修改过的文件并删除
  grep 查找内容中指定字符串
  支持正则表达式
  -i 大小写模糊匹配
  --color 高亮匹配内容
  tail -f *.log | grep -i --color “uid=”
  查看文件内容
  cat more less
  cat *.log 显示多个文件内容
  more a.txt 逐页显示文件内容,支持交互命令
  less 是more的改进版,比more更灵活
  q 退出 more或者less命令
  head tail
  head -n 10 显示文件前10行
  tail -n 100 显示文件最后100行
  tail -f *.log 持续显示*.log的更新内容
  文本排序
  sort uniq
  sort 对文件内容进行排序
  uniq -c 计算重复内容的行数
  实际业务场景举例
  sort a.txt | uniq -c | sort -nr -k1 | head -n 100
  【进程操作命令】
  ps 查找进程
  ps -ef
  ps aux
  ps aux | grep java
  kill killall 终止进程
  kill -9 强制终止
  killall -9 终止所有符合条件的进程
  top 实时监控进程
  和ps命令不同,top命令可以实时监控进程状况。top屏幕自动每5秒刷新一次,也可以用“top –d 20”,使得top屏幕每20秒刷新一次
  shift+h 可以显示线程信息
  【网络相关命令】
  netstat
  netstat -lntp 显示当前机器侦听地址及进程
  netstat -ant 显示当前所有tcp状态信息
  netstat -ant | awk ‘{print $6}’ | sort | uniq -c | sort -nr -k1 显示当前网络状态统计
  netstat -ant | wc -l 显示当前活跃连接数
  ping 测试网络连通性
  ping -c 10 10.1.1.1
  ifconfig 查看本机ip
  注意和windows下ipconfig的区别
  curl 模拟浏览器请求
  -x http://10.204.1.3:8080 指明代理
  -H“Host: wenwen.sogou.com” 指明header
  -d 指定POST请求参数
  -i 输出内容包含响应的http头信息
  -o 输出内容到指定文件
  可以模拟任何浏览器请求
  lsof 查找打开文件的进程
  lsof abc.txt 显示开启文件abc.txt的进程
  lsof -c abc 显示abc进程现在打开的文件
  lsof -c -p 1234 列出进程号为1234的进程所打开的文件
  lsof -g gid 显示归属gid的进程情况
  lsof +d /usr/local/ 显示目录下被进程开启的文件
  lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
  lsof -d 4 显示使用fd为4的进程
  lsof -i 用以显示符合条件的进程情况
  lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
  46 --> IPv4 or IPv6
  protocol --> TCP or UDP
  hostname --> Internet host name
  hostaddr --> IPv4地址
  service --> /etc/service中的 service name (可以不止一个)
  port --> 端口号 (可以不止一个)
  【任务调度相关】
  bg fg jobs nohup disown
  (cmd &) 启动新bash进程并后台运行cmd
  nohup 启动后台进程
  已经运行中的任务如何后台运行?
  首先ctrl+z 停止任务
  bg 使得任务后台运行
  通过jobs查看刚才任务id,假设为1
  通过disown %1将后台任务从当前进程脱离
  crontab
  crontab * * * * * (cd /data/bin/; ./test.sh)
  五个星号分别代表分、时、日、月、周
  【文件打包操作】
  tar gzip unzip jar
  tar cvzf a.tgz content/ 将content文件夹打包为a.tgz
  tar xf a.tgz 将a.tgz的文件解压缩到当前目录
  gunzip 解压缩zip文件
  jar xf core.jar 解压缩jar文件
  【改变命令的执行权限】
  sudo 临时以root权限执行命令
  需要配置 /etc/sudoers
  *好给出 iptables/tcpdump 等权限方便定位问题
  某些常用命令可以配置NOPASSWD

以上是关于Linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章

linux常用命令多少个

Linux第二章-Linux常用命令

Linux文本操作常用命令

:常用工具命令第23节:常用命令 - Linux命令

Linux常用命令

Linux部署项目常用命令