destination 参数用以指定想切换到的目录名,如果没有为 cd 命令指定目标路径,它将切换到用户主目录。destination 参数可以用两种方式表示:一种是使用绝对文件路径,另一种是使用相对文件路径。
- cd destination
-
绝对文件路径总是以正斜线 / 作为起始,指明虚拟文件系统的根目录。
该绝对文件路径指向 usr 目录所包含的 bin 目录下的用户二进制文件
- /usr/bin
-
使用绝对文件路径可以清晰表明用户想切换到的准确位置。只需在 cd 命令后面指定相应的全路径名就可以进入到该目录中。
- cd /usr/bin
-
pwd 命令可以显示出 shell 会话的当前目录,这个目录被称为当前工作目录。
相对文件路径允许用户指定一个基于当前位置的目标文件路径。
有两个特殊字符可用户相对文件路径中:
- # 切换到上级目录下的 downloads 目录
- cd ../downloads
- # 必要时用户可以用多个双点符来向上切换目录
- cd ../../etc
- # 上述情况使用绝对路径更方便
- cd /etc
-
ls 命令最基本的形式会显示当前目录下的文件和目录。 特别注意: ls 命令输出的列表是按字母排序的(按列排序而不是按行排序)。
- # 可以使用带-F 参数的 ls 命令轻松区分文件和目录。-F 参数在目录名后加了正斜线(/),在可执行文件的后面加星号(*)。
- ls -F
- # Linux 经常采用隐藏文件来保存配置信息。在 Linux 上,隐藏文件通常是文件名以点号开始的文件。这些文件并没有在默认的 ls 命令输出中显示出来,称其为隐藏文件。可以使用带-a 参数的 ls 命令将隐藏文件和普通文件以及目录一起显示出来。
- ls -a
- # -R 参数叫作递归选项,会列出当前目录下包含的子目录中的文件。
- ls -F -R 或者 ls -FR 可以这样合并写
- # -l 参数表示显示长列表,会产生长列表格式的输出,包含了目录中每个文件的更多相关信息。
- ls -l
- #-d 表示显示目录自身的属性,而不是目录中的内容
- ls -d
-
ls 命令还支持在命令行中定义过滤器。这个过滤器就是一个进行简单文本匹配的字符串。
- #只显示 my_test 文件的信息
- ls -l my_test
- #问号可用于过滤器字符串中替代任意位置的单个字符
- ls -l my_te?t
- #星号可匹配零个或多个字符
- #匹配以 my 开头的文件
- ls -l my*
- #中括号表示一个字符位置并给出多个可能的选择。
- #my_te[sy]t 表示 s 或者 y
- #my_te[a-z]t 表示字母范围 a-z
- ls -l my_te[sy]t
- ls -l my_te[a-z]t
- #可以使用感叹号(!) 将不需要的内容排除在外
- ls -l my_te[!a]t
-
- #touch 命令用来创建空文件
- touch test_one
-
- #cp 命令用来完成将文件和目录从一个位置复制到另一个位置。
- #cp 命令需要两个参数:源对象和目标对象
- #当 source(源对象) 和 destination(目标对象) 参数都是文件名时,cp 命令将源文件复制成一个新文件,并且以 destination 命名。
- cp source(源对象) destination(目标对象)
-
- #如果目标文件已经存在,cp 命令可能并不会提醒这一点。最好加上-i 选项,强制 shell 询问是否需要覆盖已有文件。
- cp -i test_one test_two
-
- #也可以将文件复制到现有目录中
- cp -i test_one /home/download
-
- #将 demo 目录中的所有文件复制到 demo2 目录中。demo2 目录可以不存在,它可以随着 cp -R 命令被创建。
- cp -R demo/ demo2
-
- #cp 命令中使用通配符,将所有以 test 结尾的文件复制到 demo 目录中
- cp .test demo/
-
在 Linux 中,重命名文件称为移动。 mv 命令可以将文件和目录移动到另一个位置或重新命名。
- #移动文件会将文件名从 demo 更改为 demos,因为 mv 只影响文件名。
- mv demo demos
-
- #mv 也可以用来移动文件的位置,将 test.txt 文件移动到 demo/目录下
- mv test.txt demo/
-
- #也可以使用 mv 命令移动文件位置并修改文件名称
- #将 demo 目录下的 test.txt 文件移动到 demo2 目录下,并重命名为 test2.txt
- mv /demo/test.txt /demo2/test2.txt
-
- #移动整个目录及其内容,移动 demo 目录下所有文件和目录到 demo2 目录下
- mv demo demo2
-
- #rm 命令用来删除文件,-i 参数提示是不是要真的删除该文件
- #bash shell 中没有回收站,文件一旦删除就没法再找回。因此,在使用 rm 命令时,加入-i 参数是个好习惯。
- rm -i test.txt
-
- #使用通配符删除成组的文件
- rm -i de?o
-
rm 命令相关参数:
- #创建目录
- mkdir demo
-
- #同时创建多个目录和子目录,需要加入-p 参数
- mkdir -p demo/demo_test
-
- #删除目录(只能删除空目录,如果目录不为空需要先删除目录下的文件)
- rmdir demo
-
- #删除目录及其所有内容
- rm -rf demo(危险)
-
- #查看文件是什么类型
- file test.txt
-
- #查看整个文件内容
- cat test.txt
-
- #-n 参数会给所有行加上行号
- #-b 参数给有文本的行加上行号
- #-T 参数可以禁止制表符出现
- cat -n test.txt
-
more 命令会显示文本文件的内容,但会在显示每页数据之后停下来。可以使用空格键或回车键以逐行向前的方式浏览文本文件。浏览完后,按 q 键退出。
- more test.txt
-
less 命令和 more 命令基本一样,一次显示一屏的文件文本,但是支持更堵哦得选项。less 命令能够识别上下键以及上线翻页键。
- #tail 命令会显示文件最后几行的内容。默认情况下,会显示文件的末尾 10 行。
- tail test.txt
-
- #-n 参数用来修改所显示的行数
- #只显示文件的最后两行
- tail -n 2 test.txt
-
- #-f 参数是 tail 命令的一个突出特性。允许在其他进程使用该文件时查看文件的内容
-
- #head 命令会显示文件开头的那些行的内容,默认显示前 10 行的文本。
- head test.txt
-
- #类似 tail 命令,head 也支持-n 参数。这两个命令都允许在破折号后面输入想要显示的行数
- head -5 test.txt (显示前 5 行)
-
当程序运行在系统上时,我们称之为进程。
ps 命令。默认情况下, ps 命令只会显示运行在当前控制台下的属于当前用户的进程。
- ps
-
- # -e 参数指定显示所有运行在系统上的进程
- # -f 参数则扩展了输出
- ps -ef
-
- #top 命令跟 ps 命令相似,能够显示进程信息,但它是实时显示的。
-
- #grep 命令会在输入或指定的文件中查找包含匹配指定模式的字符的行
- #在 file 文件中搜索能匹配模式 three 的文本
- grep three file
-
- #反向搜索(输出不匹配该模式的行),加-v 参数
- grep -v three file
-
- #显示匹配模式行的行号,加-n 参数
- grep -n three file
-
- #显示有多少行含有匹配的模式,加-c 参数
- grep -c three file
-
- #指定多个匹配模式,加-e 参数(同时匹配 three 和 two)
- grep -e three -e two file
-
- #正则匹配(搜索包含 t 或者 f 字符的匹配)
- grep [tf] file