Linux 命令的执行必须依赖于 Shell 命令解释器。Shell 实际上是在 Linux 操作系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命令并进行解释, 将需要执行的操作传递给系统内核执行,Shell 在用户和内核之间充当了“翻译官”的角色。当用户登录到 Linux 系统时,会自动加载一个 Shell 程序,以便给用户提供可以输入命令的操作系统。
Bash 是 Linux 操作系统中默认使用的 Shell 程序,文件位于/bin/bash。关于 Shell 程序的更多知识将在后续课程中进行讲解。根据 Linux 命令与 Shell 程序的关系,Linux 命令一般分为以下两种类型。
内部命令:伴随着内核而自带的命令,没有独立文件存在,在早期版本6.0之前 cd命令就是内部命令
外部命令:不伴随内核而自带,需要额外安装才能使用,有独立文件,命令文件路径会指定在环境变量中
命令字
是整条命令中最关键的一部分,唯一确定一条命令。执行的是操作,如新建,删除,重命名等。选项
理解为功能。短格式最常用
短格式选项:使用“-”符号引导:多个单字符选项可以组合在一起使用。跟单个字符。优点:使用最短的字符查看最多的信息。
如:ls -a:查看所有文件
ls -l :查看文件详细信息
ls-al:查看所有文件的详细信息。
长格式选项:使用“–”符号引导。跟单词 。
参数
命令处理的对象,通常情况下命令参数可以是文件名、目录(路径)名或用户等内容
编辑Linux命令行的辅助操作
●Tab键:自动补齐 ●反斜杠“\”:强制换行 ●Ctrl + U组合键:清空至行首 ●CtrI + K组合键:清空至行尾 ●CtrI+L组合键:清屏 ●Ctrl+ C组合键:取消本次命令编辑
Linux命令帮助
“- -help”:被汉化,命令不太全。如:ls --helpman 命令查看.如:man ls [root@localhost ~]# ls -ls 总用量 8 4 -rw-------. 1 root root 2057 6月 17 23:17 anaconda-ks.cfg 4 -rw-r--r--. 1 root root 2105 6月 17 23:17 initial-setup-ks.cfg 0 drwxr-xr-x. 2 root root 6 6月 17 23:18 公共 0 drwxr-xr-x. 2 root root 6 6月 17 23:18 模板 0 drwxr-xr-x. 2 root root 6 6月 17 23:18 视频 0 drwxr-xr-x. 2 root root 6 6月 17 23:18 图片 0 drwxr-xr-x. 2 root root 6 6月 17 23:18 文档 0 drwxr-xr-x. 2 root root 6 6月 17 23:18 下载 0 drwxr-xr-x. 2 root root 6 6月 17 23:18 音乐 0 drwxr-xr-x. 2 root root 6 6月 17 23:18 桌面 [root@localhost ~]# ls --help 用法:ls [选项]... [文件]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all 不隐藏任何以. 开始的项目 -A, --almost-all 列出除. 及.. 以外的任何项目 --author 与-l 同时使用时列出每个文件的作者 -b, --escape 以八进制溢出序列表示不可打印的字符 --block-size=SIZE scale sizes by SIZE before printing them; e.g., '--block-size=M' prints sizes in units of 1,048,576 bytes; see SIZE format below -B, --ignore-backups do not list implied entries ending with ~ -c with -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; otherwise: sort by ctime, newest first -C list entries by columns --color[=WHEN] colorize the output; WHEN can be 'never', 'au [root@localhost ~]# man ls ##查看man手册· LS(1) General Commands Manual LS(1) NAME ls, dir, vdir - 列目录内容 提要 ls [选项] [文件名...] POSIX 标准选项: [-CFRacdilqrtu1] GNU 选项 (短格式): [-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full-time] [--format={long,verbose,commas,across,vertical,single-column}] [--sort={none,time,size,exten‐ sion}] [--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--] 描述( DESCRIPTION ) 程序ls先列出非目录的文件项,然后是每一个目录中的“可显示”文件。如果 没有选项之外的参数【译注:即文件名部分为空】出现,缺省为 "." (当前目录)。 选项“ -d ”使得目录与非目录项同样对待。除非“ -a ” 选项出现,文 件名以“.”开始的文件不属“可显示”文件。 以当前目录为准,每一组文件(包括非目录文件项,以及每一内含文件的目录)分 别按文件名比较顺序排序。如果“ -l ”选项存在,每组文件前显示一摘要行: 给出该组文件长度之和(以 512 字节为单位)。 输出是到标准输出( stdout )。除非以“ -C ”选项要求按多列输出,输出 将是一行一个。然而,输出到终端时,单列输出或多列输出是不确定的。可以分别 用选项“ -1 ” 或“ -C ”来强制按单列或多列输出。 -C 多列输出,纵向排序。 -F 每个目录名加“ / ”后缀,每个 FIFO 名加“ | ”后缀, 每个可运行名加“ * ”后缀。 -R 递归列出遇到的子目录。 -a 列出所有文件,包括以 "." 开头的隐含文件。 -c 使用“状态改变时间”代替“文件修改时间”为依据来排序 (使用“ -t ”选项时)或列出(使用“ -l ”选项时)。 -d 将目录名象其它文件一样列出,而不是列出它们的内容。 -i 输出文件前先输出文件系列号(即 i 节点号: i-node number)。 -l 列出(以单列格式)文件模式( file mode ),文件的链 接数,所有者名,组名,文件大小(以字节为单位),时间信 息,及文件名。缺省时,时间信息显示最近修改时间;可以以 选项“ -c ”和“ -u ”选择显示其它两种时间信息。对于设 备文件,原先显示文件大小的区域通常显示的是主要和次要的 号(majo‐ rand minor device numbers)。 -q 将文件名中的非打印字符输出为问号。(对于到终端的输出这是缺省的。) -r 逆序排列。 -t 按时间信息排序。Pwd命令
查看当前目录的工作路径
查看当前的工作目录 [root@localhost~]#pwd /root(当前工作目录) 示例: [root@localhost opt]# cd /opt/shuai1 [root@localhost shuai1]# pwd /opt/shuai1切换工作目录
格式说明cd /目录位置切换到目标位置cd ~若不指定目标位置,切换到当前用户的宿主目录(家目录)cd -切换到上一次的位置相对路径的表现形式
. 当前工作目录 .. 当前的上一级目录 cd.. 返回上一层目录 cd../../ 返回上上层目录相对路径:相对首先的有一个参照物(一般是当前的是工作路径)
相对路径写法:相对路径中通常会用到两个字符“/”【表示当前目录】“…/"【上一级目录下】
绝对一定是/ 相对路径就是./ …/
绝对路径:绝对路径不需要参照物,直接从跟”/“开始寻找对应路径
含义:列出指定路径下的文件/文件夹的名称,并已指定格式来显示
ls命令基本格式 ls [选项] [文件或目录]
常用选项 -l 显示文件的详细信息
-la 查看隐藏文件
下述列表中的第一列字符表示文件的类型,其中:”-“表示该行对应的文件类型为文件,”d“表示文档类型为文件夹
root root 对应的是用户名 跟用户组 后面的文字对应的大小
在linux中隐藏文档一般是以”.'开头
-A 查看隐藏文件,除了. …
-d 显示本目录的信息
-lh 列出指定路径下所有文件/文件夹的名称。以列表的形式并且在显示文档大小的时候以可读性较高的形式进行显示
-R 递归显示(如果有子目录,则会把子目录中的文件依次展现)
--color 以颜色区分文件类型 黑色(数据文件) 蓝色(目录/文件夹) 红色(压缩包) 绿色(执行文件/命令文件/脚本) 天蓝色(连接文件/快捷方式) 黄色(设备文件/磁盘文件) 粉色(对象文件【图片、视频】)通配符使用
结合通配符使用 “?”:匹配文件名中的一个未知字符 “*”:匹配文件名中的任意多个字符用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名。
语法
alias[别名]=[指令名称]参数说明:若不加任何参数,则列出目前所有的别名设置。
实例
给命令设置别名
# alias lx=ls # lx anaconda-ks.cfg Desktop install.log install.log.syslog qte统计目录及文件空间占用情况
统计指定目录(或文件)所占磁盘空间的大小 命令基本格式 du [选项] [文件或目录] 常用选项 -a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 -h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 -s 只统计所占空间总(Summary)大小,而不是统计每个子目录,文件的大小 例如 统计所有文件总共占用的空间大小 du -sh /var/log/ 不可以使用du -ashmkdir命令
创建新的目录
创建新的空目录 基本格式 mkdir [选项] 目录位置及名称 常用选项 -p 一次性创建嵌套的多层目录 [root@localhost ~]# mkdir yunweihenniu ##创建yunweihenniu目录 [root@localhost ~]# ls ##列出当前目录可以看到刚刚创建的yunweihenniu目录 anaconda-ks.cfg yunweihenniu 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐 [root@localhost ~]# mkdir /opt/yumweihenniu ##在指定目录中创建 [root@localhost ~]# ls /opt rh shuai1 yumweihenniu 语法2:#mkdir -p 加- p可以实现多层目录的一次性创建 [root@localhost opt]# mkdir -p /yunweihenniu/a/b/c/d [root@localhost opt]# ls /yunweihenniu a [root@localhost opt]# ls /yunweihenniu/a b [root@localhost opt]# ls /yunweihenniu/a/b c [root@localhost opt]# ls /yunweihenniu/a/b/c d 语法3:#mkdir 路径1 路径2 路径3 [root@localhost opt]# mkdir 1 2 3 创建1 2 3 目录 [root@localhost opt]# ls ##查看 1 2 3 rh shuai1 yumweihenniu更新文件的时间标记
经常用于创建多个新的空文件
touch 文件... [root@localhost opt]# touch tom.txt ##创建tom.txt文件 [root@localhost opt]# ls ##查看 rh shuai1 tom.txt yumweihenniu [root@localhost opt]# touch tom{1..15}.txt ##创建连续文件 [root@localhost opt]# ls rh tom12.txt tom1.txt tom5.txt tom9.txt shuai1 tom13.txt tom2.txt tom6.txt tom.txt tom10.txt tom14.txt tom3.txt tom7.txt yumweihenniu tom11.txt tom15.txt tom4.txt tom8.txt用大括号,不用中括号
创建带有内容的文件
为文件或目录建立链接文件,类似于Winodows系统的快捷方式
软链接(符号链接)硬链接删除原始文件后失效仍旧可用使用范围适用于文件或目录只可用于文件保存位置与原始文件可以位于不同的文件系统中必须与原始文件在同一个文件系统(如一个Linux分区)内 [root@localhost /]# ll 总用量 28 lrwxrwxrwx. 1 root root 7 6月 17 23:11 bin -> usr/bin dr-xr-xr-x. 5 root root 4096 6月 17 23:18 boot drwxr-xr-x. 21 root root 3440 7月 1 14:57 dev drwxr-xr-x. 144 root root 8192 7月 1 15:55 etc drwxr-xr-x. 3 root root 17 6月 17 23:16 home lrwxrwxrwx. 1 root root 7 6月 17 23:11 lib -> usr/lib lrwxrwxrwx. 1 root root 9 6月 17 23:11 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 4月 11 2018 media drwxr-xr-x. 2 root root 6 4月 11 2018 mnt drwxr-xr-x. 5 root root 65 7月 1 17:34 opt dr-xr-xr-x. 250 root root 0 7月 1 14:38 proc dr-xr-x---. 16 root root 4096 7月 1 17:08 root 根目录下的bin是uer/bin的软链接复制文件或目录
Linux cp命令主要用于复制文件或目录。
语法
cp [options] source dest或
cp [options] source... directory参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。-f:覆盖已经存在的目标文件而不给出提示。-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖。-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。-l:不复制文件,只是生成链接文件。实例
使用指令”cp”将当前目录”test/”下的所有文件复制到新目录”newtest”下,输入如下命令:
$ cp –r test/ newtest注意:用户使用该指令复制目录时,必须使用参数”-r”或者”-R”。
指令:rm (remove,移除、删除的文档路径
选项:
-f (force,强制删除 不提示是否删除
[root@localhost ~]# ls 1.txt initial-setup-ks.cfg 公共 视频 文档 音乐 anaconda-ks.cfg yunweihenniu 模板 图片 下载 桌面 rm:是否删除普通空文件 "1.txt"?y [root@localhost ~]# ls anaconda-ks.cfg yunweihenniu 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐 在删除的时候如果不带选项,会提示是否删除,如果需要确认删除则需要输入”y“否则输入”n“按下回车 注意:在删除的时候不想频繁的去确认,则可以在指令的选项添加”-r”表示强制(force) [root@localhost ~]# ls 2.txt initial-setup-ks.cfg 公共 视频 文档 音乐 anaconda-ks.cfg yunweihenniu 模板 图片 下载 桌面 [root@localhost ~]# rm -f 2.txt [root@localhost ~]# ls anaconda-ks.cfg yunweihenniu 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐 rm-r ##可以删除目录 [root@localhost ~]# mkdir tom [root@localhost ~]# ls anaconda-ks.cfg tom 公共 视频 文档 音乐 initial-setup-ks.cfg yunweihenniu 模板 图片 下载 桌面 [root@localhost ~]# rm -r tom [root@localhost ~]# rm -r tom rm:是否删除目录 "tom"?y [root@localhost ~]# ls ##目录已删除 anaconda-ks.cfg yunweihenniu 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐 rm -rf ##就可以删除不提示 [root@localhost ~]# ls anaconda-ks.cfg shuai 公共 视频 文档 音乐 initial-setup-ks.cfg yunweihenniu 模板 图片 下载 桌面 [root@localhost ~]# rm -rf shuai [root@localhost ~]# ls anaconda-ks.cfg yunweihenniu 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐注意:删除一个目录的时候需要做一个递归删除,并且一般也不需要进行删除确认询问,所以移除目录的时候一般使用“-rf”选项
案例3:删除多个用户 要删除一个目录下有公共特性的文档,例如都是以tom开头 其中“*”称之为通配符,意思是表示任意的字符,tom*,则表示只要文件以tom开头,后续字符则不管 [root@localhost ~]# touch tom{1..10}.txt [root@localhost ~]# ls anaconda-ks.cfg tom2.txt tom6.txt yunweihenniu 图片 桌面 initial-setup-ks.cfg tom3.txt tom7.txt 公共 文档 tom10.txt tom4.txt tom8.txt 模板 下载 tom1.txt tom5.txt tom9.txt 视频 音乐 [root@localhost ~]# rm -rf tom* [root@localhost ~]# ls anaconda-ks.cfg yunweihenniu 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐作用:移动文档到新的位置
语法:#mv 需要移动的文档路径 需要保存的位置
确认:移动之后原始文件还在不在原来的位置?
[root@localhost ~]# touch test.txt [root@localhost ~]# ls anaconda-ks.cfg test.txt 公共 视频 文档 音乐 initial-setup-ks.cfg yunweihenniu 模板 图片 下载 桌面 [root@localhost ~]# mv test.txt /yunweihenniu [root@localhost ~]# cd /yunweihenniu [root@localhost yunweihenniu]# ls a test.txt案列:使用mv命令移动一个文件夹
补充:在linux中重命名的命令也是hi没V 语法跟移动语法一样
作用1.cat有直接打开一个文件的功能.
语法:#cat 文件的路径
[root@localhost ~]# cat /opt/tom.txt heillo tom woshishei作用2:cat还可以对文件进行合并
语法2.#cat 待合并的文件路径1 待合并的文件路径2 …文件路径n > 合并之后的文件路径
Linux which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
语法
which [文件...]参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。-w 指定输出时栏位的宽度。-V 显示版本信息。实例
使用指令”which”查看指令”bash”的绝对路径,输入如下命令:
$ which bash上面的指令执行后,输出信息如下所示:
/bin/bash #bash可执行程序的绝对路径 964290)] ### **cat指令** 作用1.cat有直接打开一个文件的功能. 语法:#cat 文件的路径[root@localhost ~]# cat /opt/tom.txt heillo tom woshishei
作用2:cat还可以对文件进行合并 语法2.#cat 待合并的文件路径1 待合并的文件路径2 ......文件路径n > 合并之后的文件路径 ### which命令 Linux which命令用于查找文件。 which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 语法which [文件…]
**参数**: - -n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 - -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。 - -w 指定输出时栏位的宽度。 - -V 显示版本信息。 实例 使用指令”which”查看指令”bash”的绝对路径,输入如下命令:$ which bash
上面的指令执行后,输出信息如下所示:/bin/bash #bash可执行程序的绝对路径