Linux 基础命令

    Linux命令分为内部命令和外部命令

        内部命令:shell内置命令

        外部命令:在文件系统的某个路径下有一个名称响应的可执行文件

★如果系统中命令有别名,可以使用\COMMAND使用原命令,使用alias查看系统中使用的命令别名

whatis :显示指定命令有哪些版本的帮户信息

which:显示命令路径

cd:切换当前目录

    不加任何参数,切换到当前用户的家目录,等同于 ~

    cd    ~USERNAME 切换到制定用户的家目录

    cd    -    在当前目录和上一次目录之间来回切换


ls 列出目录内容

    -a 列出所有内容,包括 . ..

    -A 列出所有内容,除了. ..

    -l 长格式显示

            文件类型:

   -:普通文件(f)

   d:目录文件

   b:快设备文件(block)

   c:字符设备文件(character)

   l:符号连接文件(symbolic link file)

   p:管道文件(pipe)

   s:套接字文件(socket )

   文件权限:9位;每三位一组,rwx,没有-表示

   文件硬链接次数

   文件的属主属组

   文件大小,默认单位字节

   时间戳:显示最近一次被修改的时间

     访问:access

     修改:modify,文件内容发生改变

     改变:change,元数据(metadata)改变

      -h 以人类比较直观的单位显示

      -d 显示目录自身的属性

      -i 显示文件的索引号

      -r 逆序显示文件

      -R 递归显示目录及目录中的文件


type:显示指定命令属于那种类型,内置命令或者外部命令

date:显示或者设定系统日期与时间

    -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。

    -s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。

    -u  显示GMT。 

    格式化显示时间参数:

%%     显示%

%a    显示缩写的星期

%A    显示完整的星期

%b    显示缩写的月份

%B    显示完整的月份

%c    显示本地时间和日期

%C   显示世纪

%d    一个月的第几天01-31表示

%D    显示日期,同%m/%d/%y  02/25/16

%e    一个月的第几天1-31表示

%F    完全显示日期,同%Y-%m-%d    2016-02-25

%g    年份(yy)

%G    年份(yyyy)

%h    同%b

%H    小时(00..23)

%I    小时(01..12)

%j    一年的第几天

%k    小时(0..23)

%l    小时(1..12)

%m    月份(01..12)

%M    分钟(00..59)

%n    换行显示

%N    纳秒

%p    AM或者PM

%P    am或者pm

%r    12小时制时间(hh:mm:ss [AP]M)

%R    24小时制时间(hh:mm)

%s    从00:00:00 1970-01-01 UTC开始的秒数

%t    显示制表符

%T    24小时制时间(hh:mm:ss)

%u    一周的第几天(1..7); 1 表示星期一

%U    一年的第几周,周日为每周的第一天(00..53)

%V    一年的第几周,周一为每周的第一天 (01..53)

%w    一周的第几天 (0..6); 0 代表周日

%W   一年的第几周,周一为每周的第一天(00..53)

%x    日期(mm/dd/yy)

%X    时间(%H:%M:%S)

%y    年份(00..99)

%Y    年份 (1970…)

%z    RFC-2822 风格数字格式时区(-0500)

%Z    时区(e.g., EDT), 无法确定时区则为空

    具体用法

在设定时间方面

date -s //设置当前时间,只有root权限才能设置,其他只能查看。

date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00

date -s 01:01:01 //设置具体时间,不会对日期做更改

date -s “01:01:01 2008-05-23″ //这样可以设置全部时间

date -s “01:01:01 20080523″ //这样可以设置全部时间

date -s “2008-05-23 01:01:01″ //这样可以设置全部时间

date -s “20080523 01:01:01″ //这样可以设置全部时间

显示时间

date +%Y%m%d         //显示现在天年月日

date +%Y%m%d --date="+1 day"  //显示后一天的日期

date +%Y%m%d --date="-1 day"  //显示前一天的日期

date +%Y%m%d --date="-1 month"  //显示上一月的日期

date +%Y%m%d --date="+1 month"  //显示下一月的日期

date +%Y%m%d --date="-1 year"  //显示前一年的日期

date +%Y%m%d --date="+1 year"  //显示下一年的日期


hwclock 查询设置硬件时钟,clock 是hwclock的链接文件

    spacer.gif

        -r|--show     查看硬件时间

        -s|--hctosys    硬件时间同步到系统时间

        -w|--systohc    系统时间同步到硬件时间

        --adjust:hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟

        --debug:显示hwclock执行时详细的信息

        --directisa:hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟

        --hctosys:将系统时钟调整为与目前的硬件时钟一致

        --set --date=<日期与时间>:设定硬件时钟

        --show:显示硬件时钟的时间与日期

        --test:仅测试程序,而不会实际更改硬件时钟

        --utc:若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作


echo    显示一段文字,默认自动打印换行符

        -n    不要再结尾自动打印换行符

        -e    启用 \

\\    打印反斜杠本身

\a    发出警告声

\b    删除前一个字符

\c    最后不加换行符号

\f    换行但光标仍然停留在原来的位置

\n    换行切光标移至行首

\r    光标移至行首,但不换行

\t    插入tab


printf 格式化输出



目录管理命令


mkdir:创建空目录

-p    递归创建目录

-v    详细显示信息

-m|--mode=MODE    创建目录是设定权限

-Z    创建目录时设SELinux 安全上下文的CTX

mkdir /x/y/{a/c,b} 自动展开

   {a,b}_{c,d}(展开分别为a_c,a_d,b_c,b_d)    


tree:查看目录树

  -a   显示所有文件和目录。

  -A   使用ASNI绘图字符显示树状图而非以ASCII字符组合。

  -C   在文件和目录清单加上色彩,便于区分各种类型。

  -d   显示目录名称而非内容。

  -D   列出文件或目录的更改时间。

  -f   在每个文件或目录之前,显示完整的相对路径名称。

  -F   在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。

  -g   列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。

  -i   不以阶梯状列出文件或目录名称。

  -I<范本样式>   不显示符合范本样式的文件或目录名称。

  -l   如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。

  -n   不在文件和目录清单加上色彩。

  -N   直接列出文件和目录名称,包括控制字符。

  -p   列出权限标示。

  -P<范本样式>   只显示符合范本样式的文件或目录名称。

  -q   用"?"号取代控制字符,列出文件和目录名称。

  -s   列出文件或目录大小。

  -t   用文件和目录的更改时间排序。

  -u   列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。

  -x   将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。     


  rmdir:删除空目录

            -p    递归删除空目录     


touch:改变文件时间戳

-a    只改变访问时间

-c    如果文件不存在,则不建立文件

-d|--date=STRING    使用指定的日期时间,而非现在的时间   如"2004-02-29 16:21:42" 

-m|--time=TIME    只改变变动时间

-r    把指定文档或目录的日期时间,统统设成和参考文档或目录的日期相同

-t    使用指定的日期时间,而非现在的时间 [[CC]YY]MMDDhhmm[.ss]

-h    会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者时,此选项才有用) 


stat:查看文件或目录的详细信息

-L    如果是链接文件,则获取源文件信息

-Z    显示SELinux安全上下文信息

-f    显示文件所在的文件系统状态

-t|--terse    以简洁的形式打印输出信息(在没有改变输出格式的情况下):如下图第一幅图片

spacer.gif

-c|--format=FORMAT    自定义输入格式,结尾有换行

    --printf=FORMAT    自定义输入格式,结尾无换行,需手动添加

可选的文件信息输出格式

  %a   Access rights in octal 八进制格式的文件访问权限  

  %A   Access rights in human readable form 可读形式访问权限(ls -l情况下显示的样子)

  %b   Number of blocks allocated (see %B)  分配的块数(单位参照%B的数值)

  %B   The size in bytes of each block reported by %b  

          每个块的大小(这个值是指硬盘上存储单元块的大小,与格式化的block块大小不同)

  %d   Device number in decimal  设备号(10进制)

  %D   Device number in hex 设备号(十六进制)

  %f   Raw mode in hex raw模式(十六进制,可以百度一下raw的意思)

  %F   File type 文件类型

  %g   Group ID of owner 文件所有者的组ID

  %G   Group name of owner 文件所有者的组名

  %h   Number of hard links    硬链接的数量(文件本身算1个)

  %i   Inode number  inode号

  %n   File name  文件名

  %N   Quoted file name with dereference if symbolic link

         取消软连接的文件名引用,变成普通字符串

  %o   I/O block size   系统格式化block的大小

  %s   Total size, in bytes   文件大小(单位byte)

  %t   Major device type in hex 主要设备类型(十六进制)

  %T   Minor device type in hex 次要设备类型(十六进制)

  %u   User ID of owner  所有者的用户ID

  %U   User name of owner 所有者的用户名

  %x   Time of last access 最后访问时间

  %X   Time of last access as seconds since Epoch  最后一次访问时间(大纪元秒)

  %y   Time of last modification 最后修改时间(内容改变)

  %Y   Time of last modification as seconds since Epoch 最后修改时间(内容改变)

  %z   Time of last change 最后改变时间(文件属性,权限所有者等,格式大纪元秒)

  %Z   Time of last change as seconds since Epoch

         最后改变时间(文件属性,权限所有者等,格式大纪元秒)

stat -c "%a %A %b %B %d %D %f %F %g %G %h %i %n %N %o %s %t %T %u %U %x %X %y %Y %z %Z" file

可选的分区信息输出格式

  %a   Free blocks available to non-superuser 普通用户可用的block数量      

  %b   Total data blocks in file system 分区的总数据块数量      

  %c   Total file nodes in file system 文件系统的inode总数      

  %d   Free file nodes in file system 空闲inode数量      

  %f   Free blocks in file system 可用的block数量      

  %C   Security context in SELinux selinux 安全上下文      

  %i   File System ID in hex  分区ID(十六进制)  

  %l   Maximum length of filenames 分区文件名最大长度      

  %n   File name  文件名      

  %s   Block size (for faster transfers) 块大小(都是系统block的大小)

  %S   Fundamental block size (for block counts) 基本块大小(都是系统block的大小)

  %t   Type in hex 文件系统类型(格式化的类型,十六进制)

  %T   Type in human readable form 文件系统类型(格式化的类型,可读形式)

stat -f -c "%a %b %c %d %f %C %i %l %n %s %S %t %T" file

spacer.gifLinux 基础命令_第1张图片


cp:复制文件和目录,可以同时复制多个文件到一个目录中

-a, --archive   等于-dR --preserve=all  归档复制,常用于备份

--attributes-only   仅复制属性而不复制数据 --backup[=CONTROL 为每个已存在的目标文件创建备份  

-b 类似--backup   但不接受参数  

--copy-contents   在递归处理是复制特殊文件内容  

-d   等于--no-dereference --preserve=links  

-f, --force   如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)   

-i, --interactive   覆盖前询问(使前面的 -n 选项失效)  

-H   跟随源文件中的命令行符号链接  

-l | --link   创建文件硬链接

-L |--dereference    复制链接指向的文件     

-n, --no-clobber   不要覆盖已存在的文件(使前面的 -i 选项失效)  

-P, --no-dereference   不跟随源文件中的符号链接,保持链接   

-p   等于--preserve=模式,所有权,时间戳  

--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等   

--sno-preserve=属性列表 不保留指定的文件属性  

--parents 复制前在目标目录创建来源文件路径中的所有目录  

-R, -r, --recursive   递归复制目录及其子目录内的所有内容  

--reflink[=WHEN]   控制克隆/CoW 副本。  

--remove-destination   尝试打开目标文件前先删除已存在的目的地文件 (相对于 --force 选项)   

--sparse=WHEN   控制创建稀疏文件的方式  

--strip-trailing-slashes   删除参数中所有源文件/目录末端的斜杠  

-s, --symbolic-link   只创建符号链接而不复制文件  

-S, --suffix=后缀   自行指定备份文件的后缀  

-t, --target-directory=目录   将所有参数指定的源文件/目录复制至目标目录   

-T, --no-target-directory   将目标目录视作普通文件  

-u, --update   只在源文件比目标文件新,或目标文件不存在时才进行复制   

-v, --verbose   显示详细的进行步骤  

-x, --one-file-system   不跨越文件系统进行操作


mv:移动或重命名文件

-b   若需覆盖文件,则覆盖前先行备份。

-f   force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i   若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u   若目标文件已经存在,且 source 比较新,才会更新(update)

-t    --target-directory=DIRECTORY 指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后

-n, --no-clobber   不要覆盖已存在的文件(使前面的 -i 选项失效)

-S, --suffix=后缀   自行指定备份文件的后缀  

-T, --no-target-directory   将目标目录视作普通文件 


install:复制文件和设置属性

--backup[=CONTROL]    为每个已存在的目的地文件进行备份

-b    类似 --backup,但不接受任何参数

-d,--directory    所有参数都作为目录处理,而且会创建指定目录的所有目录。

-D    创建<目的地>前的所有主目录,然后将<来源>复制至 <目的地>;在第一种使用格式中有用

-g,--group=组    自行设定所属组,而不是进程目前的所属组

-m,--mode=模    自行设定权限模式 (像chmod),而不是rwxr-xr-x

-o,--owner=所有者    自行设定所有者 (只适用于超级用户)

-p,--preserve-timestamps    以<来源>文件的访问/修改时间作为相应的目的地文件的时间属性

-s,--strip    用strip命令删除symbol table,只适用于第一及第二种使用格式

-S,--suffix=后缀    自行指定备份文件的<后缀>

文本处理命令


cat:连接并显示多个文件

-n    显示时输出行号

-e    等价于-vE

-E    在每行结束处显示$

-A    --show-all    等价于 -vET

-b    --number-noblank    对非空输出行编号

-s    --squeeze-blank    有连续两行以上的空吧航,就代换为一行的空白行

-t    等价于-vT

-T    --show-tabs    将跳格字符显示为 ^I

-v    --show--nonprinting    使用  ^ 和 M- 引用,除了LFD和TAB之外

在文本模式下使用shift+pageup|pagedown进行上下翻页(Linux有额定的缓存大小,只能缓存一定的 几屏)


tac:逆序显示文本

-b, --before                  在行前而非行尾添加分隔标志

-r, --regex                   将分隔标志视作正则表达式来解析

-s, --separator=字符串        使用指定字符串代替换行作为分隔标志


more    分屏显示,只能向下滚动

less        分屏显示,可以上下滚动


head:查看文件的前NUM行,默认10行

-c     --bytes=[-]K    显示前多少字节数,默认单位为K,还可加上单位,默认是字节。1(byte) 、1k(1KB)、1m(1MB),可以为负数,意思为不打印最后的多少字节

-n     --lines=[-]    显示前多少行,可以为负数,意思为不打印最后的多少行

-q     --quiet    --silent     获取多个文件的时候不显示文件名称头部

-v     获取多个文件的内容是显示文件名称头部,也是默认选项


tail:显示文件最后多少行

-c    --bytes=[-]K    打印最后多少字节,默认单位为K,+NUM表示从多少字节开始显示文件

-n    --lines=[ ]    打印最后多少行,默认10行,+NUM表示从多少行开始显示

-q     --quiet    --silent     获取多个文件的时候不显示文件名称头部

-v     获取多个文件的内容是显示文件名称头部,也是默认选项

-f     循环读取

--pid=PID     与-f合用,表示在进程ID,PID死掉之后结束


cut:文本剪切

-d    指定字段分隔符,默认是一个空格

-f    指定要显示的字段,表示方法:-f 1,3 1-3


join:合并文本


sort:对显示的数据进行排序,默认根据ASCII升序

-n:根据数值大小降序

 -r:逆序

 -t:指定字段分隔符

 -k #:指定以哪个字段进行排序

 -u:排序后相同的行只显示一次

 -f:忽略字符大小写


uniq:报告相同行,相同且相邻 为重复

 -d    只显示重复的行

 -D    显示所有重复的行

 -c    显示行重复的次数

wc:文本统计,空白键 也是字符,显示的三个数分别是行数、单词数、字节数

-l    共多少行

-w    共多少单词

-c    共多少字节

-L    最长的一行共多少个字节    


tr:转换或删除字符

tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\a Ctrl-G
 铃声\007
\b Ctrl-H  退格符\010
\f Ctrl-L  走行换页\014
\n Ctrl-J  新行\012
\r Ctrl-M  回车\015
\t Ctrl-I  tab键\011
\v Ctrl-X  \030






你可能感兴趣的:(linux,基本命令)