记录几个linux命令

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)的意思。

  1. 命令格式 ln [参数][源文件或目录][目标文件或目录]
  2. 创建一个文件(或文件夹)的符号软链接: ln -s path/to/file(源文件) path/to/symlink(目标文件)
  3. 覆盖现有符号以指向不同的文件 ln -sf path/to/new_file path/to/symlink
  4. 创建一个硬链接到一个文件 ln path/to/file(源文件) path/to/hardlink(目标文件)

软链接:

  1. 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  2. 软链接可以 跨文件系统 ,硬链接不可以
  3. 软链接可以对一个不存在的文件名进行链接
  4. 软链接可以对目录进行链接

硬链接:

  1. 硬链接,以文件副本的形式存在。但不占用实际空间。
  2. 不允许给目录创建硬链接
  3. 硬链接只有在同一个文件系统中才能创建

通过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 命令

路径的查找

  1. 搜索PATH环境变量并显示任何匹配可执行文件的位置 which executable
  2. 如果有多个可执行文件匹配,显示全部 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

  • 下一页:
    空格键

  • 搜索字符串(按' n '进入下一个匹配项):
    /something

  • 退出:
    q

less 命令
打开一个文件进行交互式阅读,允许滚动和搜索。

  • 打开一个文件:
    less source_file

  • 向下/向上翻页:
    (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 - 下一页:空格键 - 搜索字符串(按' n '进入下一个匹配项):/something- 退出:qless命令 打开一个文件进行交互式阅读,允许滚动和搜索。 - 打开一个文件:less source_file- 向下/向上翻页: (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/exclude

  • Archive a directory and its contents with the highest level [9] of compression:
    zip -r -9 compressed.zip /path/to/dir

  • Package and compress multiple directories and files:
    zip -r compressed.zip /path/to/dir1 /path/to/dir2 /path/to/file

  • Create an encrypted archive (user will be prompted for a password):
    zip -e -r compressed.zip path/to/dir

  • Add files to an existing zip file:
    zip compressed.zip path/to/file

  • Delete 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 命令

使用方法和作用

source 和 bash 的区别

从当前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 eg ssh-copy-id [email protected]

  • 将给定的公钥复制到远程:
    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

参考

你可能感兴趣的:(记录几个linux命令)