Junhc

岂止于博客

Linux常用命令

常用命令

  • scp
    • 命令格式
      scp [参数] [原路径] [目标路径]
    • 命令功能
      scp 是secure copy的缩写,基于ssh登录安全的执行远程文件拷贝命令。
    • 命令参数
      -1 强制scp命令使用协议ssh1。
      -2 强制scp命令使用协议ssh2。
      -4 强制scp命令只使用IPv4寻址。
      -6 强制scp命令只使用IPv6寻址。
      -B 使用批处理模式(传输过程中不询问传输口令或短语)
      -C 允许压缩(将-C标志传递给ssh,从而打开压缩功能)
      -p 保留原文件的修改时间,访问时间和访问权限。
      -q 不显示传输进度条。
      -r 递归复制整个目录。
      -v 详细方式显示输出。
      -c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
      -F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
      -i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
      -l limit 限定用户所能使用的带宽,以kbit/s为单位。
      -o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式。
      -P port 注意是大写的P, port是指定数据传输用到的端口号。
      -S program 指定加密传输时所使用的程序。
  • history
    • 命令格式
      history [参数]
    • 命令功能
      查看历史命令。
    • 命令参数
      n 数字,返回最近的n笔命令列表。
      -c 将目前shell中所有历史命令清空。
      -a 将目前命令新增入histfiles中,若没有histfiles,则预写入~/.bash_history
      -r 将histfiles的内容读到shell的历史命令记忆中。
      -w 将目前的历史命令记忆内容写入histfiles中。
    • 其他命令
      !number 执行第”number”笔指令。
      !command 由最近的指令向前搜索指令串开头为”command”的指令,并执行。
      !! 执行上一笔指令(相当于按↑按键后,按 Enter)。
      history | grep -i "xxx" 模糊查询历史命令。
    • 关于.bash_history的配置
      export HISTCONTROL=ignoreboth
      export HISTTIMEFORMAT="%F %T" 让历史命令显示时间戳。
      export HISTSIZE=0 系统将不记录历史命令。
      export命令写到.bash_profile或者全局配置文件/etc/profile
  • netstat
    • 命令格式
      netstat [参数]
    • 命令功能
      显示网络状态。
    • 命令参数
      -a (all)显示所有选项,默认不显示LISTEN相关
      -t (tcp)仅显示tcp相关选项
      -u (udp)仅显示udp相关选项
      -n 拒绝显示别名,能显示数字的全部转化成数字
      -l 仅列出有在 Listen (监听) 服务状态
      -p 显示建立相关链接的程序名(PID)
      -r 显示路由信息,路由表
      -e 显示扩展信息,例如uid等
      -s 按各个协议进行统计
      -c 每隔一个固定时间,执行该netstat命令
  • crontab
    • 命令格式
      crontab -e 编辑
      service crond restart 重启服务
    • 命令说明
        0  0  *  *  *  /usr/local/sbin/backup.sh  
      # .---------------- minute (0 - 59)  
      # |  .------------- hour (0 - 23)  
      # |  |  .---------- day of month (1 - 31)  
      # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...  
      # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat  
      # |  |  |  |  |  
      # *  *  *  *  * [user-name] command to be executed  
      
      
  • vim
    • 批量注释命令
      :起始行号,结束行号s/^/注释符/g :%s/^/注释符/g ctrl+v –> 向上/向下移动光标, 表示需要注释的行 –> shift+i –> 输入# –> 两下esc
    • 批量取消注释命令
      :起始行号,结束行号s/^注释符//g   ctrl+v –> 输入d
    • 批量替换确认命令
      :起始行号,结束行号s/oldChar/newChar/gc
    • 消除搜索后的关键字高亮
      :noh
    • 清空
      :ggdG
    • 设置行号 :set nu
    • 取消行号
      :set nonu
    • 帮助文档
      # 下载
      wget https://nchc.dl.sourceforge.net/project/vimcdoc/vimcdoc/1.5.0/vimcdoc-1.5.0.tar.gz
      # 解压
      tar -zxvf vimcdoc-1.5.0.tar.gz
      #
      cd ~/.vim
      cp -R ~/vimcdoc-1.5.0/doc ./
      # 启动vim, 输入:help, 中文帮助文档   
      
  • grep
    • 命令参数
      -n 显示行号
      -i 忽略大小写
      -v 查找不匹配指定字符串的行
      -r 递归查找目录
      -w 查找整个指定字符串
      # 或查询
      grep -E 'a|b|c' filenmae
      # 与查询
      grep pattern0 files | grep pattern1
      
  • chmod
    • 命令格式
      chmod [参数] 用户+操作+权限 文件
    • 命令功能
      修改文件访问权限
      用户部分:使用字母 u 表示文件拥有者(user),g 表示拥有者所在群组(group),o 表示其他用户(other),a 表示全部用户(all,包含前面三种用户范围)
      操作部分:“+” 符号表示增加权限,“-” 符号表示取消权限,“=” 符号表示赋值权限
      权限部分:“r” 符号表示可读(read,数字: 4),“w” 表示可写(write,数字: 2),“x” 表示可执行权限(execute,数字: 1)
      文件部分:如不指定文件名,表示操作对象为当前目录下的所有文件
    • 命令参数
      -c : 若该档案权限确实已经更改,才显示其更改动作
      -f : 若该档案权限无法被更改也不要显示错误讯息
      -v : 显示权限变更的详细资料
      -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
      --help : 显示辅助说明
      --version : 显示版本
  • chown
    • 命令格式
      chown [参数] user:[group] file
    • 命令功能
      修改文件拥有者
  • ssh
  • 命令格式

    端口转发
    1. 跳板机的服务器 192.168.12.233,端口 22 用户名 root  
    2. 然后ssh到服务器 192.168.12.233,访问mysql服务器 192.168.3.51 端口 3306  
    3. 把这个ssh隧道绑定到我本地 127.0.0.1 端口 3307  
    ssh -fN -L 3307:192.168.3.51:3306 -p22 root:192.168.12.233
    
    
  • unzip
    • 命令格式
      unzip [-cflptuvz][-agCjLMnoqsVX][-P <密 码="">][.zip文 件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
    • 命令功能
      解压缩zip文 件
    • 命令参数
      -c 将 解压缩的结果显示到屏幕上,并对字符做适当的转换。
      -f 更新现有的文件。
      -l 显示压缩文件内所包含的文件。
      -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任 何的转换。
      -t 检 查压缩文件是否正确。,但不解压。
      -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中 的其他文件解压缩到目录中。
      -v 执行是时显示详细的信息。或查看压缩文件目录,但不解压。
      -z 仅显示压缩文件的备注文字。
      -a 对文本文件进行必要的字符转换。
      -b 不要对文本文件进行字符转换。
      -C 压缩文件中的文件名称区分大小写。
      -j 不处理压缩文件中原有的目录路径。
      -L 将压缩文件中的全部文件名改为小写。
      -M 将输出结果送到more程 序处理。
      -n 解压缩时不要覆盖原有的文件。
      -o 不必先询问用户,unzip执 行后覆盖原有文件。
      -P <密码> 使 用zip的密码选项。
      -q 执行时不显示任何信息。
      -s 将文件名中的空白字符转换为底线字符。
      -V 保留VMS的文件版本信 息。
      -X 解压缩时同时回存文件原来的UID/GID。
      [.zip文件] 指定.zip压缩文件。
      [文件] 指定要处理.zip压缩文 件中的哪些文件。
      -d <目录> 指定文件解压缩后所要存储的目录。
      -x <文件> 指定不要处理.zip压 缩文件中的哪些文件
      -Z unzip -Z等 于执行zipinfo指 令。
  • jar
    • 命令格式
      jar -cvfM0 xxx.war ./
    • 命令功能
      把当前目录下的所有文件打包成xxx.war
    • 命令参数
      -c 创建压缩包
      -v 显示过程信息 -f
      -M
      -0 只打包不压缩
    • 命令格式
      jar -xvf xxx.war
    • 命令功能
      解压xxx.war到当前目录
  • 防火墙
    • 临时关闭防火墙 systemctl stop firewalld
    • 永久防火墙开机自关闭 systemctl disable firewalld
    • 临时打开防火墙 systemctl start firewalld
    • 防火墙开机启动 systemctl enable firewalld
    • 查看防火墙状态 systemctl status firewalld
  • SELinux
    • 临时关闭SELinux setenforce 0
    • 临时打开SELinux setenforce 1
    • 查看SELinux状态 getenforce /usr/sbin/sestatus -v
    • 开机关闭SELinux 编辑/etc/selinux/config文件,将SELINUX的值设置为disabled,下次开机SELinux就不会启动了。
  • printf
     printf '十六进制 %x\n' 8080
     printf '十进制 %d\n' 0x3f03
    
  • tar
     # 移除tar解压后的文件
     tar -tf <file.tar.gz> | xargs rm -r
     # 解压到指定的目录
     tar zxvf <file.tar.gz> -C <dir>
    

常见问题

  • SSH RSA host key for has changed and you have requeste
    $ ssh root@192.168.1.174
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    6f:97:0a:3a:1c:5d:2c:1f:1f:6f:76:4d:85:ea:cc:e6.
    Please contact your system administrator.
    Add correct host key in /Users/junhc/.ssh/known_hosts to get rid of this message.
    Offending RSA key in /Users/junhc/.ssh/known_hosts:54
    RSA host key for 192.168.1.174 has changed and you have requested strict checking.
    Host key verification failed.
    
    $ ssh-keygen -R 192.168.1.174