linux - 命令总结

一、快捷键

    ctrl + c  取消
    ctrl + l   清屏
  ctrl + d  退出当前用户 
    esc + . (点)  使用上一个命令的最后一个东西 
    vi / vim:
    D      删除光标所在位置的内容到行尾  
    G      移动到文件的最后一行
    gg    移动到文件的第一行
    o        在当前的下一行插入一个空行并进入到编辑模式
              :set nu  / :set nonu
 

二、特殊符号

    >    输出重定向
    >>  追加重定向
    <    输入重定向
    <<  追加输入重定向
    *     所有
    .      当前目录  
    ..     当前目录的上一级目录
  ~   当前用户的家目录
    
    补充:
    正则表达式(三剑客grep sed awk)
  1. ^   ^oldboy 以oldboy开头的行
  2. |   或者 高级正则里面的 egrep  grep -E
     
 

三、命令

  • whoami                    当前用户名
  • hostname                 当前主机名
  • pwd                          当前的位置
  • ifdown eth0               关闭网卡
  • ifup eth0                    开启网卡
  • ifconfig                      查看网卡信息 ip地址
  • ping 10.0.0.200          ping服务器的ip,查看道路是否通畅
  • telnet 10.0.0.200 22   查看服务器是否提供服务
  • man                            查询帮助 eg: man ls  
  • man ls
  • linux内置命令
    1. man cd    
    2. help cd 简介 
  sudo su   转到root用户下
  su - alice  转到alice用户下 
 
  CentOS关机命令:
  重启命令
    reboot
    shutdown -r now 立刻重启
    shutdown -r 10 过10分钟自动重启
    shutdown -r 20:35 在时间为20:35时候重启
    shutdown -c 取消重启
  关机命令
    halt
    poweroff 立刻关机
    shutdown -h now 立刻关机
    shutdown -h 10 10分钟后自动关机

补充

tar命令
解包:tar zxvf FileName.tar
打包:tar czvf FileName.tar DirName
上传   
scp deploy.tar root@10.0.0.200:/data/
  1.压缩命令:
    命令格式:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名
        可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。
 
  2.解压缩命令:
    命令格式:tar  -zxvf   压缩文件名.tar.gz
    解压缩后的文件只能放在当前的目录。
  
  ps -ef|grep (uwsgi)(***)
  kill -9 ***
    chmod 777 /data/  
    service nginx end
    service nginx start 
 


  1. mkdir    创建目录  -p 创建多层目录
    1. mkdir /data
    2. mkdir -p /oldboy/test   
    3. mkdir -pv /oldboy/test/a/b
  2. ls   list 列表  显示目录里面得内容
    1. ls
    2. ls -l
    3. ls -l /data/
    4.  -l   显示详细信息   ls -l == ll
      1. ls -l |grep "^d"
      2. ls -l |awk '$2>1'
      3. ls -l $(find -type f -name "*.log" -mtime +7)
    5.  -F  给不同类型得文件加上不同得尾巴  目录/
      1. ls -F |grep '/'
    6. -r   逆序  
    7. -t   按照文件的修改时间进行排序
      1. ls -lrt    # 逆序查询最近修改的文件  
      2. ll -lrt 
  3. cd    进入到目录中
    1. cd /data
    2. cd ../
    3. cd -  回上一次打开的目录
      1. cd - == cd $OLDOWD
    4. cd .    当前目录  cp /etc/hosts .
    5. cd ..   当前目录的上一级目录
    6. cd ~  当前用户的家目录
      1. root用户  ~ ==   /root  root用户
      2. 普通用户  ~ ==  /home/
    7. cd   == 回家目录
  4. touch  创建文件 更新文件的时间戳
    1. touch /data/oldboy.txt
    2. touch /tmp/test.txt /mnt/test.txt   # 创建多个文件
  5. vi / vim 编辑器  vi - 记事本;vim - notepad++ emeditor word 
    1. vim /data/oldboy.txt
    2. vim /etc/profile
    3. vim /root/.bashrc
    4. i  # 编辑(插入)模式
    5. ESC
    6. :wq  # 保存退出
    7. :q   # 退出
    8. :q!  # 退出,不保存
    9. :wq! # 退出,保存,强制
    10. vim快捷键
      1. G      # 移动光标到最后一行 
      2. gg    # 光标移到文件的第一行
      3. o      # 光标所在的位置,下一行,插入一个空行,并进入编辑模式
    11. :?xxx   查找    
      1.  n 
      2. shift + n  
    12.  :noh  取消查找
    13.  快捷键:
      1. D  删除光标所在位置的内容到行尾
      2. G  移动文件到最后一行
      3. gg  移动文件到第一行
      4. o  在当前的下一行插入一个空行并进入到编辑模式  
  6. cat   查看文件的内容
    1. cat /data/oldboy.txt
    2. cat >>/data/oldboy.txt <<EOF
      • I
      • am
      • studing
      • linux
      • EOF
    3. cat /etc/redhat-release
      • CentOS release 6.9 (Final)
    4. -n  显示文件的内容和行号
      • cat -n nginx.conf
  7. echo 把echo后面的文件显示出来 默认显示到屏幕上
    1. echo hello oldboy linux
    2. echo hello oldboy linux >>/data/oldboy.txt
    3. ech hello >>/data/oldboy.txt 2>>/data/oldboy.txt  # 对的错的都放进文件中
    4. echo helloo >>/data/oldboy.txt 2>&1 # 对的错的都放进文件中
    5. echo $LANG
    6. echo $PATH
      1. cat /etc/sysconfig/i18n
      2. cp /etc/sysconfig/i18n  /etc/sysconfig/i18n.bak
      3. echo 'LANG=en_US.UTF-8' >/etc/sysconfig/i18
      4. source /etc/sysconfig/i18n  生效
    7. echo '$LANG $(hostname) `pwd`'
    8. echo "$LANG $(hostname) `pwd`"
  8. 漏斗家族 
    1. >  1>  标准输出重定向,先把内容清空,在把内容放到最后一行
      1. echo hello world >/data/oldboy.txt
    2. 2>  标准错误重定向,把内容清空了,在把错误内容放进去了
      1. ech hello 2>/data/oldboy.txt
    3. >> 1>> 追加重定向,把内容放到文件的最后一行
      1. echo hello world >>/data/oldboy.txt
    4. 2>>  错误,追加重定向
      1. ech world 2>>/data/oldboy.txt
    5. < 输入重定向
      1. echo 1 2 3 4 5 >/data/num.txt
      2. xargs -n2 </data/num.txt
        • 1 2
        • 3 4
        • 5
    6. << 追加输入重定向
      1. cat >>/data/oldboy.txt <<EOF
        • I
        • am
        • studing
        • linux
        • EOF
  9. xargs 分组的 -n 分为几组
    1. xargs -n2 </data/num.txt
  10. cp 复制 备份 复制目录
    1. cp /data/oldboy.txt /tmp/
    2. cp /data/oldboy.txt /data/oldboy.txt.bak
    3. 条件
      1. cp -r /data/ /tmp/    # 递归复制
      2. cp -p /data/             # 复制的时候保持属性不变
      3. cp -a /data/ /opt/    # 复制所有(-p / d / r)
    4. cp /mnt/test.txt /tmp
      1. 提示:cp: overwrite `/tmp/test.txt'? ^C; 因为 之前:touch /tmp/test.txt /mnt/test.txt;所以询问是否覆盖;
      2. \cp /mnt/test.txt /tmp          # 加反斜杠就不会询问了。
      3. \cp -i /mnt/test.txt /tmp       # -i 会询问; 因为其实 alias cp='cp -i'  
      4. /bin/cp /mnt/test.txt /tmp    # 使用cp的绝对路径也不会询问了。  
  11. which
    1. which cp
      1. alias cp='cp -i'
      2.     /bin/cp
    2. which mkdir
      1. /bin/mkdir
  12. mv 移动搬家
    1. mv /data/ /root/
  13. rm 删除
    1. rm oldboy.txt
    2. rm -f oldboy.txt
    3. rm data # 不能删目录
    4. rm -r data 
    5. rm -rf data   # 强制删除,很危险!
    6. rm data -rf   # 也行,强制删除 
    7. 条件
      1. -r 递归删除
      2. -f 强制删除
  14. find  -type  找文件 找目录
    1. find
    2. find /oldboy -type f
    3. find /root/ -type f -name "oldboy.txt"
    4. find /root/ -type f -name "*.txt"
    5. find /root/ -type d
    6. 条件
      1. find 哪里找 什么类型 什么名字
      2. -type  
        1. f file文件
        2. d directory 目录
      3. -name 
    7. find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' 
    8. find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' -i    # 真实的,查找并替换了
    9. find  查找文件
      1. find  哪里  什么类型  什么名字
      2. -maxdepth   最大得深度
        1. find -maxdepth 1 -type d    
        2. find -maxdepth 1 -type d ! -name "."
      3. -type  找什么类型
        1. f  file文件
        2. d  directory  目录
      4. -name 什么名字 
      5. ! 非 取反 
      6. -mtime  根据修改时间找出对应的文件
        1. find -type f -name "*.log" -mtime 7  # 前第7天的
        2. find -type f -name "*.log" -mtime +7    # 7天之前的文件
        3. find -type f -name "*.log" -mtime +7 |xargs ls -l
        4. find -type f -name "*.log" -mtime +7 -exec ls -l {} \;
  15. |xargs 管道
    1. find /root/ -type f -name "oldboy.txt"|xargs ls -l
  16. head  取文件的前几行 默认是前 10行  -n数字 == 数字取前几行
    1. head -n2 test.txt
    2. head -2 test.txt
  17. tail  取文件的最后几行 默认时最后10行
    1. tail -n3 test.txt
    2. tail -3 test.txt
    3. -f  显示文件的实时更新
      1. tail -f === tailf 
      2. tail -f /var/log/secure 
  18. head + 管道 + tail
    1. head -30 /oldboy/ett.txt|tail -11   # 查找,第20-30行的内容
  19. seq
    1. seq 10  # 生成1-10个数字
    2. seq 100 >/oldboy/ett.txt
  20. grep  三剑客老三 过滤的  -v
    1. grep "oldboy" test.txt        # 过滤,查找
    2. grep "ol" test.txt                # 过滤,查找
    3. grep -v "oldboy" test.txt    # 查找,去除 "oldboy"
    4. grep "20" /oldboy/ett.txt   # 过滤,查找,含20的...
    5. grep -A10 "20" /oldboy/ett.txt  # -A 显示之下的10个,-B显示之上的 -C显示上下的
    6. -v  排除
    7. -A数字  显示grep过滤的内容及接下来的几行
    8. -n  给grep找出的行加上行号
      1. grep -n "stu" nginx.conf
      2. grep -n "." nginx.conf
    9. egrep  支持高级正则  === grep -E
      1. egrep "3306|1521" /etc/services
  21. sed  三剑客老二  取行  -n 取消默认输出  一般与p一起使用  ‘10p’ '10,20p' 替换  -i 修改文件的内
    1. sed '/oldboy/d' test.txt                           #查找,去除'oldboy' 
    2. sed -n '20p' /oldboy/ett.txt                    #查找,第20行的内容
    3. sed -n '20,30p' /oldboy/ett.txt                #查找,第20-30行的内容
    4. sed 's#oldboy#oldgirl#g' /oldboy/t.sh    #替换,将oldboy替换成oldgirl 
    5. sed 's#oldboy#oldgirl#g' /oldboy/t.sh -i  #替换(真实的替换),将oldboy替换成oldgirl 
    6. sed '=' nginx.conf |xargs -n2
    7. sed 's#I am##g' oldboy.txt | sed "s#, my qq is##g"
    8. sed 's#,# #g' oldboy.txt |awk '{print $3,$7}'
    • 's###g'
    • 's@@@g'  # 也行
  22. awk  三剑客老大  擅长取列   NR 表示行号 
    1. awk "/oldboy/" test.txt                             #过滤,查找 
    2. awk '!/oldboy/' test.txt                             #查找,去除'oldboy'  单引号
    3. awk "NR==20" /oldboy/ett.txt                 #查找,第20行的内容
    4. awk "NR==20,NR==30" /oldboy/ett.txt   #查找,第20-30行的内容 
    5. NR  表示行号
    6. $数字 某一列
    7. $0  表示一整行内容
    8. {print 显示}
      1. awk '{print NR,$0}' nginx.conf
      2. awk -F "," '{print $1}' oldboy.txt
      3. awk -F "[, ]" '{print $3,$8}' oldboy.txt
    9. -F 指定分隔符或多个分隔符
      1. -F "[, ]"     表示以逗号或者空格作为菜单 分隔符
  23. alias 设置命令  alias 别名 = '命令'
    1. alias   # 查看别名
    2. alias rm cp mv
      1. alias rm='rm -i'
      2. alias cp='cp -i'
      3. alias mv='mv -i'
    3. alias rm='echo do not use rm'
    4. alias rm
      • alias rm='echo do not use rm'
  24. source 生效 /etc/profile
    1. source /etc/profile   # 类似签字画押,生效
  25. uname 显示系统信息
    1.  -r 显示系统内核版本
    2. -m 显示系统32 位 64位的
  • uname
    • Linux
  • uname -r
    • 2.6.32-696.el6.x86_64
  • uname -m
    • x86_64
  • cat /etc/redhat-release  (补充一个)
    • CentOS release 6.9 (Final) 

 
  1. useradd oldboy        添加用户
  2. id oldboy                  检查用户
  3. passwd oldboy         设置密码
  4. su - oldboy               切换用户
  5. logout(ctrl + D)    退出当前用户
  6. cat /etc/redhat-release   系统版本   CentOS release 6.9 (Final) 
  7. uname -r                          内核   2.6.32-696.el6.x86_64 
  8. uname -m                        x86_64  
  9. echo $PS1                        查看系统变量 
    1. [\u@\h \W]\$
    2. \u    当前用户名  whoami
    3. \h    当前主机名  hostname
    4. \W   当前的位置  pwd
  10. PS1控制命令行得样子
    1. [root@oldboyedu-01 ~]# PS1='[\u@\h \W \t]\$'
    2. [root@oldboyedu-01 ~ 09:15:36]#
  11. echo $LANG                     查看系统得字符集
  12. export LANG=zh_CN.UTF-8    修改字符集(但是一般不这样做)
  13. cat /etc/sysconfig/i18n           永久修改字符集(但是一般不这样做)
  14. source /etc/sysconfig/i18n     字符集生效
  15. getenforce                            查询selinux状态 
  16. setenforce                             临时关闭selinux
  17. setenforce 0 
  18. vim /etc/selinux/config        永久关闭selinux
  19. /etc/init.d/iptables status     查看防火墙得状态
  20. /etc/init.d/iptables stop       关闭防火墙,关两次, 临时关闭
  21. chkconfig                            管理开机自动运行的软件查看进程得状态  3:on 开启 3:off 关闭
    1. chkconfig |grep ipt               过滤查出来  iptables
    2. chkconfig iptables on           永久开启防火墙 
    3. chkconfig iptables off           永久关闭防火墙
    1. chkconfig |grep iptables
    2. chkconfig --level  指定运行级别进行操作
    3. chkconfig --level 3 iptables on
 


  1. /etc/sysconfig/network-scripts/ifcfg-eth0   网卡的配置文件
  2. /etc/init.d/network restart       重启所有网卡 (一般用这种) 
  3. /etc/resolv.conf                      配置DNS
  4. /etc/hosts                               对主机名进行解析
  5. /etc/sysconfig/network          修改主机名
  6. /etc/fstab                               开机的时候自动挂载的文件 开机的时候给每个磁盘分区开一个入口
  7. /etc/rc.local                           开机自动运行的软件
  8. /etc/inittab                            开机运行级别的配置 
  9. /etc/init.d                               服务管理的命令
  10. /etc/profile                            系统环境变量
  11. /etc/bashrc                            别名
  12. /usr/local                               编译安装的软件默认的位置
  13. /var/log/messages                系统默认日志信息
  14. /proc/meminfo                     内存信息            ==     free -h 
  15. /proc/cpuinfo                       查看cpu信息      ==  lscpu  ==  cat /proc/cpuinfo
  16. /proc/loadavg                      系统的负载         w  
  17. /proc/mounts                       显示系统的挂载信息     df -h     ==  findmnt   == cat /proc/mounts 
  
 

  1. ll /dev/cdrom                       光盘查看
  2. mount /dev/cdrom  /mnt/   把光盘挂载到系统里面
  3. alias ll                                   查看ll的别名
  4. yum install tree                    安装软件
  5. ping www.baidu.com           是否能上网
  6. ping 223.6.6.6                      DNS是否有问题
  7. ifdown eth0 && ifup eth0       重启某一块网卡  
  8. hostname                                 主机名
  9. hostname oldboy-nb               临时修改主机名-重启服务器失效
  10. vim /etc/sysconfig/network     永久修改主机名-重启服务器生效
  11. blkid                                         查看开机自动挂载文件
  12. runlevel                                    运行级别
  13. init 5                                         设置运行级别
  14. rpm -qa |grep tree                   查看软件是否安装成功
  15. grep "Failed password" /var/log/secure    查看谁在 恶意登录     
  16. hostname  显示或设置主机名
  17. df               显示磁盘的使用情况
    1. -h       以人类可读的形式显示大小
  18. yum            软件包管理工具--软件管家--
    1.  yum install tree
    2.  yum install tree -y
  19. free  显示系统内存使用情况
    1.  -h      以人类可读的形式显示大小
  20. lscpu  显示系统cpu信息
  21. w        显示系统负载信息
 

  1. tree   以树形显示目录结构
    1. -L  显示层级
      1. tree -L 1  最多显示几层目录 
    2. -d  显示目录
      1. tree -d  只显示目录 
    3. tree -dL 1 /oldboy/
  2. rpm  rpm包管理命令 
    1. -qa  查询
      1. rpm -qa |grep tree  查询某个软件是否安装
    2. -ql  查看内容
      1. rpm -ql tree   查看软件包里面的内容
  3. date  显示系统的时间
    1. date -s "20170520"  修改系统的时间
  4. tar  打包压缩
    1. z --- 通过gzip工具进行压缩
    2. c --- 表示create创建压缩包
    3. v --- 表示verbose 显示执行过程
    4. f --- 表示file 接上压缩包存放的位置
    5. t --- 表示list  显示压缩包的内容
    6. x --- 从tar包把文件提取出来
    7. -C -- 解压到指定目录
    8. --exclude=  排除指定文件
      1.   tar zcvf /tmp/etc.tar.gz /etc/
      2.             创建压缩包  压缩包存放的位置  压缩哪个文件/目录 ...
      3. tar zcvf /tmp/etc.tar.gz /etc/   # zcvf  === zcf     创建
      4. tar ztf /tmp/etc.tar.gz    # ztf === tf    查看
      5. tar zxvf etc.tar.gz   # zxvf === xf  解压
      6. tar xf etc.tar.gz -C /opt  解压到指定目录
      7. tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=/etc/services  打包文件排除某个文件
  5. tr 替换
    1. tr "a" "b" <oldboy.txt
    2. tr "," " " <oldboy.txt |awk '{print $3,$7}'
  6. wc: 查看有多少行
    1. wc -l /etc/services
  7. ps -ef  查看系统中正在运行的进程
    1. ps -ef |grep "/sshd"
    2. ps -ef |grep "/sshd"|wc -l    # 统计出现的次数
  8. env  查看环境变量
  9. level
    1. init 3    临时修改运行级别
    2. /etc/inittab  永久修改运行级别
    3. runlevel  查看运行级别
 

 


 

file  显示文件的常用类型
        file /tmp/etc.tar.gz
        file /bin/ls    
id   查询用户信息
        id oldboy id查询用户信息 属于哪个用户组
ls      
        ls - i  查看文件indoe号码   
        ls -lhi /etc/hosts  每一列的含义
df        
        df -h 查看block
        df -i  查看系统里面inode用了多少剩余多少 
du
        du -sh /* |grep G   
        du -sh /var/log/* |grep G
etc
        /etc/passwd  存放的是用户的信息         
        /etc/shadow  用户密码的信息
        /etc/group     用户组的信息
ln
        ln -s oldboy.txt oldboy.txt-soft   创建软链接
        ln oldboy.txt oldboy.txt-hard      创建硬链接
        
lsof |grep delete
        找出硬链接数量为0,进程调用数不为0
         /etc/init.d/rsyslog  restart  重启软件,就恢复了
stat oldboy.txt
        查询文件修改,访问,改变时间
history  
        查看之前的命令
         history |grep awk 
 
cat -A  oldboy.txt   # 显示每一行的结束
ifdown eth0 && ifup eth0
man grep
info  grep


find 
find -type f -name "*oldboy*"
echo
echo {1..10}
echo A{,C}
echo oldboy.txt{,.bak}
echo 123456|sed -r 's#(.*)#<\1>#g'
echo 123456|sed -r 's#.(.)..(.)(.)#\3#g'
grep、egrep
grep --color=auto "3306" /etc/services
alias grep="grep --color=auto"
source /etc/profile    
           egrep "^[0-9X]+$" id.txt
           grep '.' oldboy.txt
grep -o '.' oldboy.txt    # 正则执行过程,每次执行了
 
            grep '.$' oldboy.txt
             grep '0' oldboy.txt
            grep -o '0*' oldboy.txt    # 正则的执行过程
            grep "^.*o" oldboy.txt
             grep "^m.*m$" oldboy.txt
             grep [abc] oldboy.txt
   grep -on [abc] oldboy.txt  # a b c
   grep '[a-f]' oldboy.txt    # a到f
             grep '[a-zA-Z0-9]' oldboy.txt
             grep '[^abc]' oldboy.txt   # 表示排除 排除a 或b 或c
              grep '^[mno].*[mg]$' oldboy.txt
              grep -E '0+' oldboy.txt
   egrep '0' oldboy.txt  -o
   egrep '0+' oldboy.txt -o
              egrep [a-z]  oldboy.txt
              egrep '[a-z]+' oldboy.txt -o    
              egrep 'oldboy|linux' oldboy.txt
    egrep '[ab]' oldboy.txt
              egrep 'a|b' oldboy.txt
    egrep 'oldb(o|e)y' oldboy.txt
     egrep  '0{3,4}' oldboy.txt
     egrep -o '0{3,4}' oldboy.txt
      egrep  '0{3,}' oldboy.txt   # 连续出现3次以上
                 egrep  '0{3}' oldboy.txt    # 连续出现3次
       egrep '[0-9]{5,}' oldboy.txt  # 数字连续出现5次以上的
       egrep 'go?d' li.log
       egrep 'go*d' li.log
 

补充

sed:
    '2s#oldboy#oldgirl#gp'
    显示  替换
    删除
    '/找谁/d'
    sed -n '1p'
    sed -n '1,10p'
    sed -n '10,$p'
    sed -n '//p' 
awk:
    擅长取行 取列 计算
    ! 表示取反 排除
    awk 'NR==1'
    awk 'NR==1,NR==10'
    awk '//'
 
 
ntpdate  根据时间服务器(找他校对时间)修改系统时间
which  显示命令的绝对路径
whereis  显示命令相关的信息
locate  根据一个列表(数据库)查找在系统中的文件
w 显示系统负载信息 系统中谁登录了,他们在干啥
last 显示什么时候从哪里登录的 登录了多久
lastlog 显示系统中所有用户最近的一次的登录信息
powoff 关机
halt 关机,需要手动切换电源(物理机)
reboot 重启
shutdown  关机或重启
        -h 时间  关机
        -r  时间  重启
 

四、图片

 

vmware 给虚拟机拍摄快照

posted @ 2018-07-10 23:04  Alice的小屋  阅读(134)  评论(0编辑  收藏  举报