目录

part 1

ls

tree

stat

part 2

clear

pwd

echo

cd

 cal

date

part 3

touch

mkdir

rmdir

rm

cp

mv

part 4

cat

more

less

head

tail

part 5

find

which

locate

grep

part 6

chmod

chown

chgrp

sudo

su

part 7

uname

id

man手册

--help选项

part 8

tar

zip/unzip

指令别名

重定向和管道

注意事项


part 1

ls

  • 使用格式:ls [选项] [目录或文件...]
  • 功能介绍:对于目录,列出该目录下的所有子目录与文件。对于文件,列出文件名以及其他信息。没指定具体的内容时,默认是当前目录。
  • 常用选项:

tree

  • 使用格式:tree [参数]
  • 功能介绍:以树状图形式列出目录内容。可能系统没有安装tree指令,此时需要手动安装一下:sudo yum install tree
  • 常用选项:

stat

  • 使用格式:stat [参数] 文件名
  • 功能介绍:用于显示文件的状态信息。stat和ls的区别在于,ls是列出当前目录所有文件的部分信息,而stat是列出指定文件的详细信息,例如时间戳的详略对比等。
  • 常用选项:

part 2

clear

  • 使用格式:clear
  • 功能介绍:清除终端界面已有内容。执行clear命令后终端界面会向后翻一页,实现了“清除”当前屏幕上已有内容的效果
  • 常用选项:略

pwd

  • 使用格式:pwd
  • 功能介绍:显示出当前目录的路径,默认从根目录开始
  • 常用选项:略

echo

  • 使用格式:echo[OPTION]... [STRING]...
  • 功能介绍:显示一行文本。STRING既可以加双引号也可以不加双引号。
  • 常用选项:

在没有 -E 的情况下,可承认并可以内置替换以下序列:\NNN  字符的ASCII代码为NNN(八进制)

cd

  • 使用格式:cd [选项]  [DIR 目录]
  • 功能介绍:改变当前目录至 DIR 目录。默认 DIR 目录是家目录。
  • 常用选项:

 cal

  • 使用格式:cal [ -mjy ] [日份] [ 月份 ] [ 年份 ]
  • 功能介绍:显示系统月历与日期信息。简单好用,无需过多介绍。
  • 常用选项:

date

  • 使用格式:       
  • 功能介绍:用来显示或设定系统的日期与时间
  • 常用选项:
  • 常见参数说明:<+/-时间日期格式>:指定显示时使用的日期时间格式

如下只列出部分参数,具体可以自行查询man手册

  • 用法示例:

part 3

touch

  • 使用格式:touch  [参数]  文件名
  • 功能介绍:用于创建空文件或修改时间戳。如果文件不存在,则会创建出一个空内容的普通文件(也可以理解为创建一个空的普通文件);如果文件已经存在,则会对文件的Atime(访问时间)和Ctime(修改时间)进行修改操作。
  • 常用选项:

mkdir

  • 使用格式:mkdir [选项] 目录名称...
  • 功能介绍:创建目录文件。若要创建的目录已经存在,则会提示已存在而不会继续创建。要想一次性创建多层目录,则需要加入-p参数,进行递归操作。
  • 常用选项:

rmdir

  • 使用格式:rmdir [参数] 目录名
  • 功能介绍:删除空目录文件。rmdir命令仅能够删除空内容的目录文件,如需删除非空目录时,则需要使用带有-R参数的rm命令进行操作。
  • 常用选项:

rm

  • 使用格式:rm [参数] 文件名
  • 功能介绍:删除目标文件,可以一次删除多个文件或递归删除目录及其内的所有子文件。
  • 常用选项:

cp

  • 使用格式:cp [参数] 源文件名 目标文件名或路径
  • 功能介绍:用于复制文件或目录。cp命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。
  • 常用选项: 

mv

  • 使用格式:mv [参数] 源文件名 目标文件名或目录
  • 功能介绍:对文件进行剪切移动,当源文件和目标位置在同一目录时相当于重命名操作。
  • 常用选项: 

part 4

cat

  • 使用格式:cat [参数] [文件名]
  • 功能介绍:显示文件内容,默认显示在终端设备。当不指定文件时,默认接收标准输入设备的输入,并显示到终端设备。
  • 常用选项: 

more

  • 使用格式:more [参数] 文件名
  • 功能介绍:分页显示文本文件内容。在查看过程中,回车是向下一行,空格或z是向下一页,按q是退出。但more一个比较难受的地方在于只能向后走,不能向前翻。
  • 常用选项: 

less

  • 使用格式:less [参数] 文件名
  • 功能介绍:分页显示文件内容。分页显示的功能与more命令很相像,但more命令只能从前向后浏览文件内容,而less命令则不仅支持more的所有快捷键,而且还能从前向后(PageDown键)和从后向前(PageUp键),还有其它快捷键可自行搜索。
  • 常用选项: 

head

  • 使用格式:head [参数] 文件名
  • 功能介绍:显示指定文件开头的内容,默认为前10行。
  • 常用选项: 

tail

  • 使用格式:tail [参数] 文件名
  • 功能介绍:显示指定文件末尾内容,默认显示后10行;
  • 常用选项: 

part 5

find

  • 使用格式:find [路径] [参数] 查找关键字
  • 功能介绍:在指定目录下查找文件,可以使用不同的选项来过滤和限制查找的结果。
  • 参数说明: 

which

  • 使用格式:which [参数] 文件名
  • 功能介绍:用于查找命令文件,能够快速搜索二进制程序所对应的位置。如果我们仅仅是想找到命令所在的路径,那么这个which命令就太合适了。
  • 常用选项: 

locate

  • 使用格式:locate [参数] 文件名
  • 功能介绍:用于快速查找文件或目录。Linux可能会显示没有locate命令,此时就需要手动安装mlocate包,然后需要更新一下数据库才(sudo updatedb)可以正常使用。
  • 常用选项: 

grep

  • 使用格式:grep [选项] 关键字 文件 ...
  • 功能介绍:用于在文件中查找关键字,并将结果输出。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。
  • 常用选项: 

part 6

chmod

  • 使用格式:chmod [选项] 权限格式 文件 ...
  • 功能介绍:用于改变文件的权限。默认只有文件的所有者和root可以设置,普通用户只能管理自己文件的权限属性。设置权限时既可以使用数字法,也可以使用字母表达式。
  • 常用选项: 

chown

  • 使用格式:chown [参数] 拥有者[:所属组] 目标文件...
  • 功能介绍:改变文件或目录的用户或用户组信息,所属组是选择性添加的,不加就是只更改文件的拥有者。一般情况下需要用sudo提权才能正常使用。
  • 常用选项: 

chgrp

  • 使用格式:chgrp [参数] 目标组 文件名
  • 功能介绍:更改文件所属用户组。
  • 常用选项: 

sudo

  • 使用格式:sudo [参数] 命令
  • 功能介绍:用于授权普通用户以管理员的身份(root用户)执行命令。不过普通用户如果想要使用sudo,还需要使root将此用户添加到“信任列表”中。具体做法是,在/etc/sudoers文件中有类似内容的地方,按照如下格式添加 user ALL=(ALL) ALL,如果担心把sudoers文件搞坏可以提前备份一下。
  • 常用选项: 略

su

  • 使用格式:su [参数] 目标用户
  • 功能介绍:用于切换用户身份。管理员切换至任意用户身份而无须密码验证。而普通用户切换身份需要目标用户的密码验证。另外,添加单个减号(-)参数为完全的身份变更,会切换到新用户的完整环境。
  • 用法示例:

part 7

uname

  • 使用格式:uname [参数]
  • 功能介绍:用于查看系统主机名、内核及硬件架构等信息。如果不加任何参数,默认仅显示系统内核名称,相当于-s参数。
  • 常用选项:

id

  • 使用格式:id [参数] 用户名
  • 功能介绍:显示用户与用户组的ID
  • 常用选项:

man手册

Linux有很多指令和指令参数,我们不可能记住所有的指令和参数。而网上搜索的资料有些不够准确,或缺乏系统性。而man命令作为权威的官方工具则很好地解决了上述两点弊病。man可以查询绝大多数指令的帮助信息,包括man自己。

  • 使用格式:man [参数] 对象
  • 常用选项:

--help选项

shell下的几乎绝大多数指令都支持一个--help参数,这通常用于获取关于命令的帮助信息和用法。当在命令后面添加--help参数时,命令会显示关于该命令的简要说明、可用选项等。

例如:

ls --help

虽然man和--help都是显示帮助信息,但一般来说,man手册是一个命令的详细说明,而--help是其选项说明。要注意区分。

part 8

Linux下的压缩和归档格式有很多,我们这里只讲两种比较常见的tar和zip,其它的可以自行查询。

tar

  • 用法格式:tar 参数 压缩包名 [文件或目录名]
  • 功能介绍:tar命令的功能是用于压缩和解压缩文件,能够制作出Linux系统中常见的 .tar、 .tar.gz、 .tar.bz2等格式的压缩包文件。对于RHEL7、CentOS7版本以后的系统,解压缩时可以不添加格式参数(如z或j),系统也能自动进行分析并解压。
  • 常用选项:

需要注意的是,tar命令的-f参数之后要立即接上文件名。因此,如果要把几个参数合在一起写的话,-f一定要放在最后。

用法示例:

zip/unzip

zip命令用于压缩文件,unzip命令用于解压文件。

通过zip命令可以将文件打包成.zip格式的压缩包,里面会包含文件的名称、路径、创建时间、上次修改时间等等信息,与tar命令相似。


unzip命令用于解压缩zip格式文件,虽然Linux系统中更多地使用tar命令进行对压缩包的管理操作,但有时也会收到Windows系统常用的.zip和.rar格式的压缩包文件,unzip命令便派上了用场。直接使用unzip命令解压缩文件后,压缩包内原有的文件会被提取并输出保存到当前工作目录下。

指令别名

在Linux中可以通过alias命令给指令取别名。用法格式如下:

alias [name [=newname] ]

用法示例:

注意事项:

  1. 用户必须使用单引号将原来的命令(被取别名的命令)引起来,防止特殊字符导致错误。
  2. alias命令的作用只局限于该次登入的操作,若要每次登入都能够使用这些命令别名,需要将相应的alias命令存放到家目录的 .bashrc 中。(bash在每次启动时都会加载 .bashrc 文件的内容,每个用户的home目录都有这个文件,它用来存储并加载终端配置和环境变量。)

重定向和管道

这里只是简单的了解一下重定向和管道,并不是很详细的讲解。

重定向

首先要知道,操作系统在启动时通常会默认打开标准输入流(stdin)、标准输出流(stdout)和标准错误流(stderr)。当我们使用echo、cat等有输出指令时,默认是将内容打印到标准输出流的,也就是我们的终端屏幕。而如果我们想把内容打印到一个我们指定的文件中,就需要将内容重定向到指定文件中,这里用到的就是输出重定向。同理,输入重定向就是,将原来通过标准输入流获取信息的方式,改为从指定文件获取内容。如下是关于输入重定向和输出重定向的详细介绍。

由上面的内容我们得知,重定向可分为:

输出重定向

相较于输入重定向,我们使用输出重定向的频率更高。并且,和输入重定向不同的是,输出重定向还可以细分为标准输出重定向和错误输出重定向两种,其中我们大多数情况下都是使用的标准输出重定向。标准输出重定向和错误输出重定向又分别都包含普通重定向和追加重定向(普通重定向是将目标文件内容清空再输出,追加重定向是直接在文件末尾追加写入)。现将输出重定向的使用格式整理如下。其中 > 的是普通重定向,>> 的是追加重定向。

用法示例:

echo "hello Linux" > hello.txt
cat man ls > ls_use.txt

输入重定向

输入重定向不像输入重定向那样常用,而且使用格式也较少,详见下表:

用法示例:

#原理解释:先将cat的输入文件重定向为fun1(这么做虽然鸡肋,但只是起到便于理解的作用)
#然后再将输出结果重定向到fun2文件中。
cat < fun1 > fun2  #fun1的内容是:hello
cat fun2
#输出结果:hello

管道

我们这里说的管道是指的管道符"|"。管道是Linux中很重要的一种通信方式,是将一个指令(程序)的输出直接作为另一个指令的输入。管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。简单点说就是,就像工厂的流水线一样,进行完一道工序后,继续传送给下一道工序处理。

例如显示指定文件经过排序、去重以后包含"better"的行的一系列操作可以写做如下形式

#  查看文本   内容排序   内容去重  信息过滤
cat hello.sh | sort | uniq | grep 'better'  target.txt

注意事项

  1. 指令和选项之间要有空格
  2. 指令的选项可以叠加来写,例如:ls -al
  3.  指令,本质其实就是可执行程序(C、C++、其他语言)写的
  4. *表示全,例如*.txt表示所有以.txt结尾的文件(正则表达式的语法)
  5. 指令的选项参数可以加"-",也可以不加,暂且认为没有什么区别
  6. 如果想要同时运行多个指令,可以用 && 将这多条指令连接起来
  • 关于“自定义的可执行程序需要指定路径,而系统的指令却不需要”的讨论:
10-19 07:20