什么是linux命令?
-
是一个可执行程序,就像我们所看到的位于目录/usr/bin 中的文件一样。 属于这一类的程序,可以编译成二进制文件,诸如用 C 和 C++语言写成的程序, 也可以是由脚本语言写成的程序,比如说 shell,perl,python,ruby,等等。
-
是一个内建于 shell 自身的命令。bash 支持若干命令,内部叫做 shell 内部命令 (builtins)。例如,上面我本地环境中的cd命令,就是一个 shell 内部命令。
-
是一个 shell 函数。这些是小规模的 shell 脚本,它们混合到环境变量中。 比如上面讲到的cd命令,在实验楼环境中就是一个shell函数。
-
是一个命令别名。我们可以定义自己的命令,建立在其它命令之上
常用命令介绍
1.ls:ls命令是linux下最常用的命令,ls命令就是list的缩写。 ls用来打印出当前目录的清单。如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
命令格式:ls [选项参数] [目录]
选项参数:
-a –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
-d –directory 将目录象文件一样显示,而不是显示其下的文件
-h –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
-t 以文件修改时间排序
2.mkdir:mkdir 命令用来创建指定名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。 mkdir 命令是make directory的缩写。
命令格式: mkdir [选项参数] 目录
选项参数:
-m --mode=模式,设定权限<模式>
-p --parents 可以是一个路径名称。若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
-v --verbose 每次创建新目录都显示信息
例1.递归创建一个目录 mkdir -p test/hello (即使当前目录没有test目录也会创建,然后再创建hello)
例2.创建带权限的目录 mkdir -m 777 test
例3.创建目录并显示创建信息 mkdir -vp test/hello 会显示:mkdir:已创建目录“test” mkdir:已创建目录“test/hello”
3.rm :rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
命令格式:rm [选项参数] 目录或文件
选项参数:
-f --force 忽略不存在的文件,从不给出提示
-i --interactive 进行交互式删除
-r --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除
-v --verbose 详细显示进行的步骤
4.mv:mv命令功能是用来移动文件或更改文件名,是Linux系统下常用的命令,经常用来备份文件或者目录。 mv命令根据第二个参数类型(是目标文件还是目标目录),决定执行将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。 mv命令是move的缩写。
命令格式:mv [选项参数] 源文件或目录 目标文件或目录
选项参数:
-b --back 若需覆盖文件,则覆盖前先行备份
-f --force 如果目标文件已经存在,不会询问而直接覆盖 、
-i --interactive 若目标文件已经存在时,就会询问是否覆盖
-u --update 若目标文件已经存在,且源文件比较新,才会更新
-t --target 该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文 件在后
5.cp:cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。 cp命令是copy的缩写。
命令格式:cp [选项参数] 源文件 目的目录
选项参数:
-t --target-directory 指定目标目录
-i --interactive 覆盖前询问(使前面的 -n 选项失效)
-n --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-s --symbolic-link 对源文件建立符号链接,而非复制文件
-f --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-u --update 使用这项参数之后,只会在源文件的修改时间较目的文件更新时, 或是对应的目的文件并不存在,才复制文件
6.cat:cat命令的功能是将文件或标准输入组合输出到标准输出。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 cat命令是concatenate的缩写。
命令格式:cat [选项参数] [文件]
选项参数:
-A --show-all 等价于 -vET
-b --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E --show-ends 在每行结束处显示 $
-n --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
重点说明:tac 是将 cat 反写过来,所以它的功能就跟 cat 相反,cat 是由第一行到最后一行连续显示在屏幕上,而 tac 则是由最后一行到第一行反向在屏幕上显示出来
7.nl:nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号。其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
nl命令是number of lines的缩写。
命令格式:nl [选项参数] [文件]
选项参数:
-b 指定行号指定的方式,主要有两种:
-b a 表示不论是否为空行,也同样列出行号(类似 cat -n)
-b t 如果有空行,空的那一行不要列出行号(默认值)
-n 列出行号表示的方法,主要有三种:
-n ln 行号在屏幕的最左方显示
-n rn 行号在自己栏位的最右方显示,且不加 0
-n rz 行号在自己栏位的最右方显示,且加 0
-w 行号栏位的占用的位数
8.more:more命令,功能类似 cat ,cat命令是将整个文件的内容从上到下显示在屏幕上。 more命令会一页一页的显示,方便使用者逐页阅读,而最基本的指令就是按空白键(space)往下一页显示,
按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
命令格式:more [选项参数] [文件]
选项参数:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开 始显示
-c 从顶部清屏,然后显示 -d 提示“Press space to continue,’q’ to quit”,禁用响铃功能
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
常用操作:
= 输出当前行的行号
q 退出more 空格键 向下滚动一屏 b 返回上一屏
9.less:less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
命令格式:less [选项参数] [文件]
选项参数:
-e 当文件显示结束后,自动离开 、
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-s 显示连续空行为一行
常用操作:
/字符串 向下搜索“字符串”的功能
?字符串 向上搜索“字符串”的功能
n 重复前一个搜索(与 / 或 ? 有关)
N 反向重复前一个搜索(与 / 或 ? 有关)
b 向前翻一页
d 向后翻半页
q 退出less 命令 空格键 向后翻一页 向上键 向上翻动一行 向下键 向下翻动一行
less与cat和more的区别:
cat命令功能用于显示整个文件的内容,单独使用没有翻页功能。因此经常和more命令搭配使用,cat命令还有就是可以将数个文件合并成一个文件的功能。 more命令功能:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按q键停止显示。
less命令功能:less命令的用法与more命令类似,也可以用来浏览超过一页的文件。所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。当要结束浏览时,只要在less命令的提示符“:”下按q键即可。 其实这三个命令除了cat命令有合并文件的功能,其余功能上相近,只是从浏览习惯和显示方式上有所不同。
10.head:head命令就像它的名字一样浅显易懂,主要是用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
命令格式:head [选项参数] [文件]
命令参数:
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数
11.tail:tail 命令主要用于显示指定文件末尾内容。常用查看日志文件。
命令格式:tail [选项参数] [文件]
选项参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<字节> 显示的字节数
-n<行数> 显示行数
12.which:which命令的作用是,在PATH变量指定的路径中搜索可执行文件的所在位置。它一般用来确认系统中是否安装了指定的软件。
命令格式:which [可执行文件名]
which 默认是找 PATH 内所指定的目录,而对于shell的内建命令不在其指定的目录中,所以当然一定找不到。
13.whereis:whereis命令主要用于定位可执行文件、源代码文件、帮助文件在文件系统中的位置。whereis 命令还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。whereis命令查找速度非常快,这是因为它根本不是在磁盘中漫无目的乱找,而是在一个数据库中(/var/lib/mlocate/)查询。这个数据库是Linux系统自动创建的,包含有本地所有文件的信息,并且每天通过自动执行updatedb命令更新一次。也正是因为这个数据库要每天才更新一次,就会使得whereis命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到。
命令格式:whereis [选项参数] [文件]
选项参数:
-b 定位可执行文件
-m 定位帮助文件
-s 定位源代码文件
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件
-B 指定搜索可执行文件的路径
-M 指定搜索帮助文件的路径
-S 指定搜索源代码文件的路径
14.locate:locate 命令跟whereis命令类似,且它们使用的是相同的数据库。但whereis命令只能搜索可执行文件、联机帮助文件盒源代码文件,如果要获得更全面的搜索结果,可以使用locate命令。locate命令使用了十分复杂的匹配语法,可以使用特殊字元(如’*’和’?’)来指定需要查找的样本。
命令格式:locate [选项参数] [搜索字符串]
选项参数:
-q 安静模式,不会显示任何错误讯息
-n 至多显示n个输出
-r 使用正规表达式做寻找的条件
-V 显示版本讯息
15.xargs:我们可以用管道将一个命令的stdout(标准输出)重定向到另一个命令的stdin(标准输入)。但有些命令只能以命令行参数的形式接收数据,而无法通过stdin接收数据流。在这种情况下,无法通过管道将数据重定向给这些命令。这时xargs就可以发挥它的作用了,xargs命令可以从标准输入接收输入,并把输入转换为一个特定的参数列表。
命令格式:comma | xargs [选项参数] [command]
选项参数:
-n 指定每行最大的参数数量
-d 指定分隔符