Linux 命令

Posted Crazy丶迷恋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 命令相关的知识,希望对你有一定的参考价值。

 

获得命令的使用帮助:
  内部命令:help command(命令)
  外部命令:command --help

man:命令手册

语法:man(选项)(参数)
参数:
    -a:在所有的man帮助手册中搜索;
    -f:等价于whatis指令,显示给定关键字的简短描述信息;
    -P:指定内容时使用分页程序;
    -M:指定man手册搜索的路径。

NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS:说明每一个选项的意义
FILES:此命令相关的配置文件
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外参照

 

 

info:在线文档

例子:info ls

 

type:显示指定命令的类型,判断给出的指令是内部指令还是外部指令。

whatis:用于查询一个命令执行什么功能,并将查询结果打印到终端上。

 

ls:列出目录下的所有子目录或者文件

语法:ls [-alrtAFR] [name...]
参数:
    -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出)
    -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
    -r 将文件以相反次序显示(原定依英文字母次序)
    -t 将文件依建立时间之先后次序列出
    -A 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录)
    -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
    -R 若目录下有文件,则以下之文件亦皆依序列出

 

cd:切换目录

cd /root/Docements # 切换到目录/root/Docements
cd ./path          # 切换到当前目录下的path目录中,“.”表示当前目录  
cd ../path         # 切换到上层目录中的path目录中,“..”表示上一层目录
cd ~USERNAME       # 进入指定用户的家目录
cd -        #在当前目录和前一次所在的目录之间来回切换    

 

pwd:打印目前所在的工作目录的绝对路径

date:时间管理

语法:date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
参数:
    -d datestr : 显示 datestr 中所设定的时间 (非系统时间)
    –help : 显示辅助讯息
    -s datestr : 将系统时间设为 datestr 中所设定的时间
    -u : 显示目前的格林威治时间
    –version : 显示版本编号
例子:显示当前时间
    # date
    三 5月 12 14:08:12 CST 2010
    # date ‘+%c‘ 
    2010年05月12日 星期三 14时09分02秒
    # date ‘+%D‘ //显示完整的时间
    05/12/10
    # date ‘+%x‘ //显示数字日期,年份两位数表示
    2010年05月12日
    # date ‘+%T‘ //显示日期,年份用四位数表示
    14:09:31
    # date ‘+%X‘ //显示24小时的格式
    14时09分39秒
技术图片
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 19701100:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
时间格式
技术图片
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
日期格式

 

mkdir:创建空目录

语法:mkdir [-p] dirName
参数:
    -m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
    -p, --parents  递归创建, 
    -v, --verbose  每次创建新目录都显示信息
例子:
    mkdir -pv /mnt/test/{x/m,y}/z	# 命令行展开,会创建两个目录一个x,一个y
    mkdir -pv {a,d}_{b,c}   # a_b a_c d_b d_c
    mkdir {1..4}{1..4}     # 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44

 

touch:创建文件
tree:查看目录树

语法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
参数:
    -a 显示所有文件和目录。
    -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
    -C 在文件和目录清单加上色彩,便于区分各种类型。
    -d 显示目录名称而非内容。
    -D 列出文件或目录的更改时间。
    -f 在每个文件或目录之前,显示完整的相对路径名称。
    -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/”,”=”,”@”,”|”号。
    -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
    -i 不以阶梯状列出文件或目录名称。
    -I<范本样式> 不显示符合范本样式的文件或目录名称。
    -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
    -n 不在文件和目录清单加上色彩。
    -N 直接列出文件和目录名称,包括控制字符。
    -p 列出权限标示。
    -P<范本样式> 只显示符合范本样式的文件或目录名称。
    -q 用”?”号取代控制字符,列出文件和目录名称。
    -s 列出文件或目录大小。
    -t 用文件和目录的更改时间排序。
    -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
    -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

 

rmdir:删除空目录

rm:删除目录或文件

语法:rm [options] name...
参数:
    -i 删除前逐一询问确认。
    -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
    -r 将目录及以下之档案亦逐一删除。

 

cp:复制文件

语法:cp [options] source dest 或 cp [options] source... directory
参数:
    -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
    -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
    -f:覆盖已经存在的目标文件而不给出提示。
    -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖。
    -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
    -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
    -l:不复制文件,只是生成链接文件。

 

mv 移动文件,修改目录或文件名称

语法:mv [options] source dest
   mv [options] source... directory
参数:
    -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    -i :若目标文件已经存在,就会询问是否覆盖
    -u :若目标文件已经存在,且比目标文件新,才会更新

 

cat:查看文件内容

语法:cat [-AbeEnstTuv] [--help] [--version] fileName
参数:
    -n 或 –number:由 1 开始对所有输出的行数编号。
    -b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。
    -s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
    -v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
    -E 或 –show-ends : 在每行结束处显示 $。
    -T 或 –show-tabs: 将 TAB 字符显示为 ^I。
    -e : 等价于 -vE。
    -A, –show-all:等价于 -vET。
    -e:等价于”-vE”选项;
    -t:等价于”-vT”选项;
例子:查看多个文件
    cat a.txt b.txt

 

more:查看文件内容,可以分屏显示

语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
参数:
    -num 一次显示的行数
    -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示     [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
    -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
    -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
    -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
    -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
    -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
    -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
    +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
    +num 从第 num 行开始显示
    fileNames 欲显示内容的文档,可为复数个数
常用操作命令:
    Enter  向下n行,需要定义。默认为1行
    k      向上1行
    Ctrl+F 或 空格键  向下滚动一屏
    Ctrl+B 或 b      返回上一屏
    =  输出当前行的行号
    :f 输出文件名和当前行的行号
    V 调用vi编辑器
    !命令 调用Shell,并执行命令
    q 退出more

 

less:查看文件内容,可以分屏显示

 

语法:less [参数] 文件
参数:
    -b <缓冲区大小> 设置缓冲区的大小
    -e 当文件显示结束后,自动离开
    -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
    -g 只标志最后搜索的关键词
    -i 忽略搜索时的大小写
    -m 显示类似more命令的百分比
    -N 显示每行的行号
    -o <文件名> 将less 输出的内容在指定文件中保存起来
    -Q 不使用警告音
    -s 显示连续空行为一行
    -S 行过长时间将超出部分舍弃
    -x <数字> 将”tab”键显示为规定的数字空格
    /字符串:向下搜索”字符串”的功能
    ?字符串:向上搜索”字符串”的功能
    n:重复前一个搜索(与 / 或 ? 有关)
    N:反向重复前一个搜索(与 / 或 ? 有关)
    b 向后翻一页
    d 向后翻半页
    h 显示帮助界面
    Q 退出less 命令
    u 向前滚动半页
    y 向前滚动一行
    空格键 滚动一行
    回车键 滚动一页
    [pagedown]: 向下翻动一页
    [pageup]: 向上翻动一页

1.全屏导航
    ctrl + F – 向前移动一屏
    ctrl + B – 向后移动一屏
    ctrl + D – 向前移动半屏
    ctrl + U – 向后移动半屏
2.单行导航
    j – 向前移动一行
    k – 向后移动一行
3.其它导航
    G – 移动到最后一行
    g – 移动到第一行
    q / ZZ – 退出 less 命令
4.其它有用的命令
    v – 使用配置的编辑器编辑当前文件
    h – 显示 less 的帮助文档
    &pattern – 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
    ma – 使用 a 标记文本的当前位置
    ‘a – 导航到标记 a 处

 

head:查看文件前n行,默认是10

语法:head(参数)(文件)
参数:
    -n<数字>:指定显示头部内容的行数;
    -c<字符数>:指定显示头部内容的字符数;
    -v:总是显示文件名的头信息;
    -q:不显示文件名的头信息。

 

tail:查看文件后n行,默认是10

语法:tail(参数)(文件)
参数:
    --retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
    -c<N>或——bytes=<N>:输出文件尾部的N(N为整数)个字节内容;
    -f<name/descriptor>或;--follow<nameldescript>:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
    -F:与选项“-follow=name”和“--retry"连用时功能相同;
    -n<N>或——line=<N>:输出文件的尾部N(N位数字)行内容。
    --pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
    -q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
    -s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
    -v或——verbose:当有多个文件参数时,总是输出各个文件名;
    --help:显示指令的帮助信息;
    --version:显示指令的版本信息。

 

cut:文本剪切

语法:cut(参数)(文件)
参数:
    -b:仅显示行中指定直接范围的内容;
    -c:仅显示行中指定范围的字符;
    -d:指定字段的分隔符,默认的字段分隔符为“TAB”;
    -f:显示指定字段的内容;
    -n:与“-b”选项连用,不分割多字节字符;
    --complement:补足被选择的字节、字符或字段;
    --out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;
    --help:显示指令的帮助信息;
    --version:显示指令的版本信息。
例子:
    cut -d: -f1,3 aa.txt	# 打印1和3字段
    cut -d: -f1-3 aa.txt	# 打印1到3字段

 

join:文本合并

语法:join(参数)(文件)
参数:
    -a<1或2>:除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行;
    -e<字符串>:若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串;
    -i或--ignore-case:比较栏位内容时,忽略大小写的差异;
    -o<格式>:按照指定的格式来显示结果;
    -t<字符>:使用栏位的分割字符;
    -v<1或2>:更-a相同,但是只显示文件中没有相同栏位的行;
    -1<栏位>:连接[文件1]指定的栏位;
    -2<栏位>:连接[文件2]指定的栏位。
文件1:要进行合并操作的第1个文件参数;
文件2:要进行合并操作的第2个文件参数。

 

sort:根据第一个字符在ASCLL码表中升序排序

语法:sort(参数)(文件)
参数:
    -b:忽略每行前面开始出的空格字符;
    -c:检查文件是否已经按照顺序排序;
    -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
    -k:按第几个字段排序
        sort -t: -k3 /etc/passwd
    -u:相同的行只显示一次
    -f:排序时,将小写字母视为大写字母;
    -i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
    -m:将几个排序号的文件进行合并;
    -M:将前面3个字母依照月份的缩写进行排序;
    -n:依照数值的大小排序;
    -o<输出文件>:将排序后的结果存入制定的文件;
    -r:以相反的顺序来排序;
    -t<分隔字符>:指定排序时所用的栏位分隔字符;
    +<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。    

 

uniq:略过相邻的重复行

语法:uniq(参数)(文件)
参数:
    -d:显示重复行
    -D:显示所有重复行
    -c:显示重复的次数

 

wc:wc命令用于计算字数

语法:wc(参数)(文件)
参数:
    -c或–bytes或–chars 只显示Bytes数。
    -l或–lines 只显示列数。
    -w或–words 只显示字数。
    –help 在线帮助。
    –version 显示版本信息。

 

split:将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。

语法:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
     split [-b ][-C ][-][-l ][要切割的文件][输出文件名前缀][-a ]
参数:
    -b<字节>:指定按多少字节进行拆分,也可以指定 K、M、G、T 等单位,单位为 byte。
    -C:每一输出档中,单行的最大 byte 数。
    -d:使用数字作为后缀。
    -l:值为每一输出档的列数大小。
    -<行数> : 指定每多少行切成一个小文件
    –help : 在线帮助
    –version : 显示版本信息
    输出文件名前缀:设置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。
    -a<后缀长度>:默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。
例子:把 rec_mic_0.pcm 音频切分,每个切分的文件1024,切分为rec_mic_0.pcm-0000后缀,后缀长度为4
    split -b 1024 rec_mic_0.pcm -d -a 4 rec_mic_0.pcm-

 

以上是关于Linux 命令的主要内容,如果未能解决你的问题,请参考以下文章

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全

VSCode自定义代码片段15——git命令操作一个完整流程