linux命令
top
命令
显示有关正在运行的进程的动态实时信息。
启动
top
,所有选项都在界面中可用:
top
按内存大小启动top排序进程(默认顺序-进程ID):
top -o mem
首先按CPU启动top排序进程,然后按运行时间启动:
top -o cpu -O time
启动顶部只显示给定用户拥有的进程:
top -user user_name
获得有关交互式命令的帮助:
?
free
命令
linux下查看内存使用
free
free -g
free -m
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-g 以GB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行是交换分区SWAP的,也就是我们通常所说的虚拟内存。
strings 命令
打印文件中的可打印字符串(print the strings of printable characters in files)。常用来在二进制文件中查找字符串,与grep配合使用。strings命令输出的字符串长度为4个或4个以上的,长度小于4的字符串将不予打印,我们可以通过-n参数调整,strings -n 2 filename (其他输出文本的命令 如 cat tail head nl 都是指文本文件)
一般结合grep
命令使用 strings file | grep "keywords"
打印二进制文件所有字符串:
strings file
将结果限制为字符串至少length字符长:
strings -n length file
在每个结果前面加上它在文件中的偏移量:
strings -t d file
在每个结果前面加上它在文件中的偏移量(以十六进制表示):
strings -t x file
dig命令详细介绍
dig
命令
dig 命令主要用来从 DNS 域名服务器查询主机地址信息。
dig 命令默认返回的结果展示详细的信息,如果要获得精简的结果可以使用 +short 选项:
dig +short hostname.com
查找与给定域名(MX记录)关联的邮件服务器 :
如果需要设置邮箱,让邮箱能够收到邮件,需要添加 MX 记录
dig +short hostname.com MX
获取给定域名的所有类型的记录:
dig hostname.com ANY
希望从指定的 DNS 服务器上进行查询(从默认的 DNS 服务器上获得的结果可能不准确)。指定 DNS 服务器的方式为使用 @ 符号.
dig @8.8.8.8 hostname.com
实我们可以使用 dig 的 -x 选项来反向解析 IP 地址对应的域名
dig -x 8.8.8.8
精简格式dig -x 8.8.8.8 +short
查找区域的权威名称服务器并显示SOA记录:
dig +nssearch hostname.com
如果你好奇 dig 命令执行查询时都经历了哪些过程,你可以尝试使用 +trace 选项。它会输出从根域到最终结果的所有信息:
dig +trace hostname.com
file
命令
确定文件类型.
描述指定文件的类型。适用于没有文件扩展名的文件:
file filename
查看压缩文件的内部,并确定其中的文件类型:
file -z foo.zip
允许文件处理特殊文件或设备文件:
file -s filename
不要在第一个文件类型匹配时停止;一直读到文件末尾:
file -k filename
确定文件的mime编码类型:
file -I filename
echo
- 在命令行输出一段信息,引号是可选的
echo 'message'
- 输出带有变量的信息
echo "My path is $PATH"
注:如果是单引号 是不能包含变量的 只能使用双引号。 - 打印一个没有结尾换行符的消息
echo -n "Hello World"
- 启用反斜杠转义解释(特殊字符)
echo -e "Column 1\tColumn 2"
>和>>
当输入某个命令需要保存返回的内容的时候会>
和>>
ls > file
会覆盖之前的内容
ls >> file
会在后面添加内容
ln 命令
这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
-s 是代号(symbolic)的意思。
- 命令格式
ln
[参数][源文件或目录][目标文件或目录] - 创建一个文件(或文件夹)的符号软链接:
ln -s path/to/file(源文件) path/to/symlink(目标文件)
- 覆盖现有符号以指向不同的文件
ln -sf path/to/new_file path/to/symlink
- 创建一个硬链接到一个文件
ln path/to/file(源文件) path/to/hardlink(目标文件)
软链接:
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 软链接可以 跨文件系统 ,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
硬链接:
- 硬链接,以文件副本的形式存在。但不占用实际空间。
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
通过ls -al的方式可以查看目录下的文件是否是通过ln的方式生成的
python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
说明源文件在../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
目录下
which 命令
路径的查找
- 搜索PATH环境变量并显示任何匹配可执行文件的位置
which executable
- 如果有多个可执行文件匹配,显示全部
which -a executable
grep命令
grep
匹配输入的文本.
支持简单模式和正则表达式.
搜索一个精确的字符串:
grep search_string path/to/file
在不区分大小写模式下搜索:
grep -i search_string path/to/file
在当前目录中递归搜索(忽略非文本文件),以获得确切的字符串:
grep -RI search_string .
-
使用扩展正则表达式(支持' ?', ' + ', '{} ', '() '和' | '):
-
?
数量为1或者0 -
+
数量>=1 -
{n}
固定数量为n{n,}
>= n个{n,m}
>=n <=m个 -
|
多个 regexp 组合分枝条件 -
^
文本的开头 -
$
文本的结束位置
grep -E ^regex$ path/to/file
-
-
每个匹配项打印3行[C]ontext around, [B]efore,或[A]fter:
- -C 除了显示符合样式的那一行之外,并显示该行之前后的内容
- -B 除了显示符合样式的那一行之外,并显示该行之后的内容
- -A 除了显示符合样式的那一行之外,并显示该行之前的内容
grep -C 3 search_string path/to/file
grep -B 3 search_string path/to/file
grep -A 3 search_string path/to/file
打印文件名,并为每个匹配项打印相应的行号:
grep -Hn search_string path/to/file
使用标准输入而不是文件:
|
(称为管道符)上一条命令的输出,作为下一条命令参数
cat text.txt | grep "zhouwude"
意思是将text.txt文本内容中搜索zhouwude字符串
cat path/to/file | grep search_string
反转匹配用于排除特定字符串(排除包含该字符串那一行):
grep -v search_string
查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
grep search_string *file
要查找的文件 已file
结尾 可以有后缀名。查找包含 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行(search_string.XXX)
grep search_string *file*
要查找的文件 中包含file
字段 可以有后缀名(search_string*.XXX)
scp
命令
使用SSH上的安全复制协议在主机之间复制文件
复制本地文件到远程服务器:
scp path/to/local_file remote_host:path/to/remote_file
将文件从远程主机复制到本地文件夹:
scp remote_host:path/to/remote_file path/to/local_dir
递归地将目录的内容从远程主机复制到本地目录:
scp -r remote_host:path/to/remote_dir path/to/local_dir
在通过本地主机传输的两个远程主机之间复制文件:
scp -3 host1:path/to/remote_file host2:path/to/remote_dir
连接到远程主机时使用特定的用户名:
scp path/to/local_file remote_username@remote_host:path/to/remote_dir
使用特定的ssh私钥与远程主机进行身份验证:
scp -i ~/.ssh/private_key local_file remote_host:/path/remote_file
复制本地文件到远程服务器使用特定的端口号:
scp -P port path/to/local_file remote_name@remote_host:path/to/remote_file
df
概述文件系统磁盘空间的使用情况
显示所有文件系统及其磁盘使用情况:
df
以人类可读的形式显示所有文件系统及其磁盘使用情况:
df -h
显示包含给定文件或文件夹的文件系统及其磁盘使用情况:
df path/to/file_or_folder
tar
归档工具。
通常与压缩方法相结合,如gzip或bzip。
从文件创建归档:
tar cf target.tar file1 file2 file3
创建一个压缩的gzip归档文件:
tar czf target.tar.gz file1 file2 file3
在目标文件夹中提取存档:
tar xf source.tar -C folder
在当前目录中提取压缩后的归档文件(gzip):
tar xzf source.tar.gz
在当前目录中提取压缩后的归档文件(bzipped):
tar xjf source.tar.bz2
创建压缩存档,使用存档后缀来确定压缩程序:
tar caf target.tar.xz file1 file2 file3
列出tar文件的内容:
tar tvf source.tar
提取与模式匹配的文件:
tar xf source.tar --wildcards "*.html"
which
在用户路径中定位程序
(可执行文件)
搜索PATH环境变量并显示任何匹配的可执行文件的位置:
which executable
如果有多个可执行文件匹配,则显示所有文件:
which -a executable
alias
命令
创建别名——由命令字符串替换的单词。
别名在当前shell会话中过期,除非它们是在shell的配置文件中定义的,例如。~ / . bashrc。
创建通用别名:
alias word="command"
查看与给定别名关联的命令:
alias word
删除别名命令:
unalias word列出所有别名的单词:
alias
mac系统下
alias -p
linux系统下将rm转换为交互式命令:
alias rm="rm -i"
创建“la”作为“ls -a”的快捷方式:
alias la="ls -a"
cat
命令
打印和连接文件。
将文件的内容打印到标准输出:
cat file
将几个文件连接到目标文件中会覆盖原来文件的内容:
cat file1 file2 > target_file
将几个文件附加到目标文件中 在原来文件内容后面追加内容:
cat file1 file2 >> target_file
给所有输出行编号:
cat -n file
tac
命令 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
反向打印和连接文件。
将file1的内容打印为标准输出:
tac file1
从最后一行开始将几个反向的文件连接到目标文件中:
tac file1 file2 > target_file
也就是反向读取 file1 file2中的文件 写入到 target_file文件中。
nl
读取文件内容输出行号
用于对行编号的实用程序,可以从文件中编号,也可以从标准输入中编号
给文件中的非空行编号: 跟
cat -n file
区别在于 cat 空行也会被标号。
nl file
从标准输出读出:
cat file | nl options -
使用管道符连接 第一个命令的输出 当做第二个命令的 输入。 等价于cat file | cat -n
只对具有可打印文本的行编号:
nl -t file
编号所有行,包括空白行:
nl -b a file
等价于cat -n file
只给匹配基本正则表达式模式的主体行编号:
nl -b p'FooBar[0-9]' file
more
命令
打开一个文件进行交互式阅读,允许滚动和搜索(仅向前方向)。
打开一个文件:
more source_file
下一页:
<Space>
空格键搜索字符串(按' n '进入下一个匹配项):
/something
退出:
q
less
命令
打开一个文件进行交互式阅读,允许滚动和搜索。
打开一个文件:
less source_file
向下/向上翻页:
<Space> (down), b (up)
转到文件结束/开始:
G (end), g (start)
向前搜索字符串(按' n ' / ' n '进入下一个/前一个匹配):
/something
反向搜索字符串(按' n ' / ' n '进入下一个/前一个匹配):
?something
反向搜索字符串(按' n ' / ' n '进入下一个或前一个匹配):
F
-在编辑器中打开当前文件:
v
-退出:
q
nohup
命令
当终端被终止时,允许进程继续运行。nohup command &
表示在后台运行一段进程
使用nohup结合&符,该命令会在当前目录下生成(当前目录是指当前运行nohup command &
的当前路径 )nohup文件,此文件保存着本该终端打印出来的信息,
- 运行可以驻留在终端之外的进程:
nohup command options
uname
打印当前机器和在其上运行的操作系统的详细信息。
target_file
- 给所有输出行编号:
cat -n filetac
命令 从最后一行开始显示,可以看出 tac 是 cat 的倒著写! 反向打印和连接文件。 - 将*file1*的内容打印为标准输出:
tac file1从最后一行开始 - 将几个反向的文件连接到目标文件中:
tac file1 file2 > target_file也就是反向读取 file1 file2中的文件 写入到 target_file文件中。
nl读取文件内容输出行号 用于对行编号的实用程序,可以从文件中编号,也可以从标准输入中编号 - 给文件中的非空行编号: 跟
cat -n file区别在于 cat 空行也会被标号。
nl file- 从标准输出读出:
cat file | nl options -使用管道符连接 第一个命令的输出 当做第二个命令的 输入。 等价于
cat file | cat -n- 只对具有可打印文本的行编号:
nl -t file- 编号所有行,包括空白行:
nl -b a file等价于
cat -n file- 只给匹配基本正则表达式模式的主体行编号:
nl -b p'FooBar[0-9]' filemore
命令 打开一个文件进行交互式阅读,允许滚动和搜索(仅向前方向)。 - 打开一个文件:
more source_file- 下一页:
<Space>空格键 - 搜索字符串(按' n '进入下一个匹配项):
/something- 退出:
qless
命令 打开一个文件进行交互式阅读,允许滚动和搜索。 - 打开一个文件:
less source_file- 向下/向上翻页:
<Space> (down), b (up)- 转到文件结束/开始:
G (end), g (start)- 向前搜索字符串(按' n ' / ' n '进入下一个/前一个匹配):
/something- 反向搜索字符串(按' n ' / ' n '进入下一个/前一个匹配):
?something- 反向搜索字符串(按' n ' / ' n '进入下一个或前一个匹配):
F-在编辑器中打开当前文件:
v-退出:
qnohup
命令 当终端被终止时,允许进程继续运行。
nohup command &表示在后台运行一段进程 使用nohup结合&符,该命令会在当前目录下生成(当前目录是指当前运行
nohup command &的当前路径 )nohup文件,此文件保存着本该终端打印出来的信息, - 运行可以驻留在终端之外的进程:
nohup command optionsuname`
>>打印当前机器和在其上运行的操作系统的详细信息。
注意:有关操作系统的更多信息,请尝试“sw_vers”命令
打印硬件相关信息:机器和处理器:
uname -mp
打印软件相关信息:操作系统、发布号、版本:
uname -srv
打印系统的节点名(主机名):
uname -n
打印所有可用的系统信息(硬件、软件、节点名):
uname -a
linux下读取系统版本信息
cat /etc/issue
命令读取 内容
ps
命令
Linux ps命令用于显示当前进程 (process) 的状态。
列出所有正在运行的进程:
ps aux
列出所有正在运行的进程,包括完整的命令字符串:
ps auxww
列出所有正在运行的进程,搜索匹配字符串的进程:
ps aux | grep string
以额外的完整格式列出当前用户的所有进程:
ps --user $(id -u) -F
以树的形式列出当前用户的所有进程:
ps --user $(id -u) f
获取进程的父pid:
ps -o ppid= -p pid
env
命令
显示环境或在修改的环境中运行程序。
展示环境:
env
运行一个程序。通常用于脚本后的shebang(#!),用于查找程序的路径:
env program
清除环境并运行程序:
env -i program
从环境中删除变量并运行程序:
env -u variable program
设置一个变量并运行一个程序:
env variable=value program
cp
命令
复制文件和文件夹。
将文件复制到另一个位置:
cp path/to/file.ext path/to/copy.ext
将文件复制到另一个文件夹中,保留文件名:
cp path/to/file.ext path/to/target_parent_folder
递归地将文件夹复制到另一个位置:
cp -r path/to/folder path/to/copy
以详细模式递归复制文件夹(在复制文件时显示文件):
cp -vr path/to/folder path/to/copy
将文件夹的内容复制到另一个文件夹:
cp -r path/to/source_folder/* path/to/target_folder
以交互模式(覆盖前提示用户)将文本文件复制到另一个位置:
cp -i *.txt path/to/target_folder
mv
命令
移动或重命名文件和目录.
将文件移动到任意位置:
mv source target
覆盖现有文件前不要提示确认:
mv -f source target
覆盖现有文件前提示确认,无论文件权限如何:
mv -i source target
不覆盖目标上的现有文件:
mv -n source target
以详细模式移动文件,在移动文件后显示文件:
mv -v source target
rm
命令
删除文件或目录.
从任意位置删除文件:
rm path/to/file path/to/another/file
递归地删除目录及其所有子目录:
rm -r path/to/folder
强制删除目录,无需提示确认或显示错误消息:
rm -rf path/to/folder
交互式地删除多个文件,每次删除前都有一个提示符:
rm -i file(s)
以冗长模式删除文件,为每个删除的文件打印一条消息:
rm -v path/to/folder/*
crontab
命令
安排cron工作在当前用户的时间间隔内运行.
工作定义格式: "(min) (hour) (day_of_month) (month) (day_of_week) 命令执行".
为当前用户编辑crontab文件:
crontab -e
查看当前用户的现有cron任务列表:
crontab -l
删除当前用户的所有cron任务:
crontab -r
crontab编辑例子:
每天10点运行的示例任务。*表示任何值:
0 10 * * * path/to/script.sh
示例任务,在4月3日每分钟运行一次:
* * 3 Apr * path/to/script.sh
样本任务,每周五2:30开始:
30 2 * * Fri path/to/script.sh
tail
命令
显示文件的最后一部分 默认10行.
在文件中显示最后的“num”行:
tail -n num file
显示“num”行之后的所有文件:
tail -n +num file
显示文件中的最后一个“num”字节:
tail -c num file
一直读取文件,直到“Ctrl + C”:
tail -f file
一直读取文件直到“Ctrl + C”,即使文件是循环的:
tail -F file
head
命令 跟tail 读取相反 从开头读取
输出文件的前几行:
head -n count_of_lines filename
输出文件的前几个字节:
head -c number_in_bytes filename
pwd
命令
打印当前/工作目录的名称.
打印当前目录:
pwd打印当前目录,并解析所有符号链接(即显示“物理”路径):
pwd -P
mkdir
命令
- 在当前文件夹或给定路径中创建目录:
mkdir directory
- 递归地创建目录(用于创建嵌套的dirs) 嵌套创建目录:
mkdir -p path/to/directory
rmdir
删除文件的命令
删除一个文件夹
删除目录,如果它是空的。使用“rm”删除非空目录:
rmdir path/to/directory
递归删除目录(对于嵌套的dirs很有用):
rmdir -p path/to/directory
export
命令
命令来标记当前环境中的shell变量,以便与任何新派生的子进程一起导出
设置一个新的环境变量:
export VARIABLE=value
删除环境变量:
export -n VARIABLE
向路径变量追加一些东西:
在bash
中可以通过echo $PATH
输出 path 环境变量 多个变量使用 : 隔开
export PATH=$PATH:path/to/append
(原来path数据 + 冒号间隔 + 追加的路径)
Passwd
是一个用来更改用户密码的工具。
更改当前用户的密码:
passwd new_password
更改指定用户的密码r:
passwd username new_password
获取用户的当前状态:
passwd -S
将账户密码设为空(将指定账户设为无密码):
passwd -d
使用telnet协议连接到主机的指定端口
Telnet到主机的默认端口:
telnet host
Telnet到主机的特定端口:
telnet ip_address port
退出telnet会话:
quit
发出终止会话的默认转义字符组合:
Ctrl + ]
以“x”作为会话终止字符启动telnet:
telnet -e x ip_address port
du
磁盘使用情况:估计和总结文件和文件夹空间使用情况。
-列出给定单元(KB/MB/GB)中文件夹和任何子文件夹的大小:
du -k|m|g path/to/folder
以人类可读的形式列出文件夹和任何子文件夹的大小(即自动为每个大小选择适当的单元):
du -h path/to/folder
以人类可读的单位显示单个文件夹的大小:
du -sh path/to/folder
列出一个文件夹以及其中所有文件和文件夹的人类可读大小:
du -ah path/to/folder
列出一个文件夹和任意子文件夹的人类可读的大小,深度不超过N层:
du -h -d N path/to/folder
列出当前文件夹子文件夹中所有.jpg文件的人类可读大小,并在最后显示累计大小:
du -ch */*.jpg
wc
计算文本得函数 单词书 字符数 和 字节数
Count lines in file:
wc -l file
Count words in file:
wc -w file
Count characters (bytes) in file:
wc -c file
Count characters in file (taking multi-byte character sets into account):
wc -m file
zip
打包并压缩(归档)文件到zip文件中.
封装和压缩目录及其内容:
zip -r compressed.zip /path/to/dir
E[x]clude unwanted files from being added to the compressed archive:
zip -r compressed.zip path/to/dir -x path/to/excludeArchive a directory and its contents with the highest level [9] of compression:
zip -r -9 compressed.zip /path/to/dirPackage and compress multiple directories and files:
zip -r compressed.zip /path/to/dir1 /path/to/dir2 /path/to/fileCreate an encrypted archive (user will be prompted for a password):
zip -e -r compressed.zip path/to/dirAdd files to an existing zip file:
zip compressed.zip path/to/fileDelete files from an existing zip file:
zip -d compressed.zip "foo/*.tmp"Archive a directory and its contents to a multi-part [s]plit zip file (e.g. 3GB parts):
zip -r -s 3g compressed.zip path/to/dir
find
命令
递归地查找给定目录树下的文件或目录.
按扩展名查找文件:
find root_path -name '*.ext'
注意: *匹配任意字符 必须报含在字符串内通过匹配多个模式来查找文件:
find root_path -name '*pattern_1*' -or -name '*pattern_2*'
查找与给定名称匹配的目录:
find root_path -type d -name "*lib*"
文件名称中包含 "lib" 字符的
必须使用 "lib" 格式 不能 lib查找匹配路径模式的文件:
find root_path -path '**/lib/**/*.ext'
为每个文件运行一个命令,在命令中使用{}来访问文件名:
find root_path -name '*.ext' -exec wc -l {} \;
查找最近24小时内修改的文件:
find root_path -mtime -1
使用不区分大小写的名称匹配查找特定大小的文件:
find root_path -size +500k -size -10M -iname '*.TaR.gZ'
按名称删除文件,超过180天:
find root_path -name '*.ext' -mtime +180 -delete
查找匹配给定模式的文件,同时排除特定路径:
find root_path -name '*.py' -not -path '*/site-packages/*'
source
命令
从当前shell中的文件执行命令. (bash XX.sh ./xx.sh sh XX.sh 都是在开启子shell执行)
- 计算给定文件的内容
source path/to/file
sh
命令
Bourne shell、标准命令语言解释器
启动交互式shell:
sh
shell解释器的位置/bin/sh
执行一个命令:
sh -c command
从文件中运行命令:
sh file.sh
从STDIN运行命令:
sh -s
bash
命令
Bourne-Again壳。 “sh”兼容的命令行解释器。
启动交互式shell:
bash
执行一个命令:
bash -c "command"
从文件中运行命令:
bash file.sh
从文件中运行命令,记录所有执行到终端的命令:
bash -x file.sh
从STDIN运行命令:
bash -s
打印bash的版本信息(使用' echo $BASH_VERSION '只显示版本字符串):
bash --version
date
命令
设置或显示系统日期
使用默认区域设置的格式显示当前日期:
date +"%c"
以UTC和ISO 8601格式显示当前日期:
date -u +"%Y-%m-%dT%H:%M:%SZ"
将当前日期显示为Unix时间戳(从Unix纪元开始的秒):
date +%s
使用默认格式显示特定的日期(表示为Unix时间戳):
date -r 1473305798
'chmod' 命令
更改文件或目录的访问权限
*****每个文件的权限 分为三部分 属主用户的权限u + 用户的组group
的权限+ 其他用户权限
Give the [u]ser who owns a file the right to e[x]ecute it:
给拥有文件的用户执行文件的权利(添加执行的权利)
chmod u+x file
Give the [u]ser rights to [r]ead and [w]rite to a file/directory:
赋予用户对文件/目录的读写权限
chmod u+rw file
Remove executable rights from the [g]roup:
从组中删除可执行权限(从属组里面删除执行权限)
chmod g-x file
Give [a]ll users rights to read and execute:
给所有用户阅读和执行的权利(包括 除了 root 用户之外的其他用户)
chmod a+rx file
Give [o]thers (not in the file owner's group) the same rights as the group:
给其他人(不在文件所有者组中)与该组相同的权限(赋予其他用户和group同样的权限)
chmod o=g file
Change permissions recursively giving [g]roup and [o]thers the abililty to [w]rite:
递归地更改权限,使group和其他人具有编写的能力(便利当前文件)
chmod -R g+w,o+w directory
ssh-copy-id
命令
在远程机器的authorized_keys中安装公钥(authorized_keys 在远程服务器的.ssh路劲下面)
把你的密钥复制到远程机器上:
ssh-copy-id username@remote_host
egssh-copy-id root@17.0.0.1
将给定的公钥复制到远程:
ssh-copy-id -i path/to/certificate username@remote_host
将给定的公钥复制到具有特定端口的远程:
ssh-copy-id -i path/to/certificate(本地公钥的位置) -p port username@remote_host
SSH
命令
Secure Shell(安全外壳协议)是用于安全登录到远程系统的协议。
它可以用于在远程服务器上记录或执行命令。
连接到远程服务器:
ssh username@remote_host
使用特定标识(私钥)连接到远程服务器:
ssh -i path/to/key_file username@remote_host
使用特定端口连接到远程服务器:
ssh username@remote_host -p 2222
在远程服务器上运行命令:
ssh remote_host command -with -flags
SSH隧道: 动态端口转发(本地主机上的SOCKS代理:9999):
ssh -D 9999 -C username@remote_host
SSH隧道:转发一个特定的端口(localhost:9999到slashdot.org:80),同时禁用伪[t]ty分配和远程命令的执行:
ssh -L 9999:slashdot.org:80 -N -T username@remote_host
SSH跳转:通过jumphost连接到远程服务器(多个跳转可以用逗号分隔):
ssh -J username@jump_host username@remote_host
代理转发:将身份验证信息转发到远程机器(有关可用选项,请参阅“man ssh_config”):
ssh -A username@remote_host