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