·
shell 命令基础之文件与目录相关命令
·
1、 ls 功能:列出目录的内容,包括文件和子目录的名称。
命令格式:ls [参数] [<文件或目录>…]
其中文件选项为查看指定文件的相关内容,若无指定文件,默认查看当前目录下的所有文件。
常用参数:
-a 不隐藏任何“.”字符开始的条目
-R 递归列出所有子目录
-d当遇到目录时,列出目录本身而非目录内的文件,并且不跟随符号链接。
-l 使用较长格式列出信息。
-x 逐行列出项目而不是逐栏列出。
1.ls i*.log 结合通配符列出了“以i开头,扩展名为log的所有文件”
(常用的通配符有:“*”匹配任何字符和任何数目的字符。“?”匹配单一数目的任何字符。)
(我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件stdin,通常对应终端的键盘;标准输出文件stdou和标准错误输出文件stderr,这两个文件都对应终端的屏幕.)
(而重定向是指把命令(或可执行程序)的标准输入/输出重定向到指定的文件中,也就是说输入可以不来自键盘而来自一个指定的文件。输出也可以不是屏幕而是文件。)
2.ls i*.
向标准的输出设备–屏幕输出信息
3.ls
.
>a.txt表示将输出信息重定向到a.txt文件(a.txt如果不存在将会自动创建)
4.ls 可以发现当前目录下生成了一个a.txt
5.cat a.txt将该文件的内容显示出来。
6.ls a
.*>>a.txt 演示了用追加的方式重定向到a.txt的过程。
7.ls -l(-l 可以详细显示出各种信息。显示格式如下:)
(文件类型与权限 链接数 文件属主 文件属组 文件大小 修改时间 名字)
8.ls -a (linux隐含文件时以“.”开头的,若想显示所有“.”开头的文件,可以使用-a,这时在嵌入式开发中很常用的。)
2、cd 改变工作目录。
(该命令将当前目录改变至指定的目录,若没有指定目录,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。)
用该命令时注意工作目录的变化。要明白绝对路径和相对路径,不知道就baidu或google一下。
命令格式:cd [路径] 其中的路径为要改变的工作目录,可为相对路径或绝对路径。
1.cd 表示回到root用户的主目录/root下。
2.cd ..表示回到上一层目录
3.cd !$表示重复上一次cd命令。
4.cd root跳转到相对路径root下
5.cd ~的功能与cd功能相同,都是返回用户主目录。
6.cd /root跳转到绝对路径下/root
7.cd -表示返回刚才所在的目录。其功能类似于电视遥控器的频道切换,在实践中是个很好用的技巧。
3、pwd 显示当前工作目录的绝对路径。
命令格式:pwd
1.pwd 显示当前工作目录的绝对路径。
4、mkdir 创建一个目录
命令格式:mkdir [参数] [路径/目录名称]
常用参数:
-m Mode 设置新创建的目录的许可位,其值由变量Mode指定。
-p 创建丢失中间路径名称目录。
5、rmdir 删除空的目录
命令格式:rmdir [参数] [路径/目录名称]
常用参数:
-p 是当子目录被删除后使它也成为空目录的话,该目录一并删除。
6、rm 删除文件或目录
命令格式:rm [参数] [文件或目录]
常用参数:
-f 强制删除文件或目录
-i 删除既有文件或目录之前先询问用户
-r 删除目录,如果目录不为空,则递归处理该目录下的所有文件及子目录一并处理。
-v 显示指令执行过程。
7、cp 复制文件或目录
命令格式:cp [参数] 源文件或目录 目标文件或目录
常用参数:
-a 保留链接,文件属性,并递归地拷贝目录,其作用等于dpr选项的目录
-d 拷贝时保留链接
-f 删除已经存在的目标文件而不提示
-i 在覆盖目标文件之前将给出提示要求用户确认
-p 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下的所有的子目录和文件。此时目标文件必须为一个目录名。
8、mv 移动或更名现有的文件或目录
命令格式: mv [参数] 源文件或目录 目标文件或目录
常用参数:
-b 为每个已存在的目的地文件创建备份文件
-f 覆盖文件或目录前不会进行确认,直接覆盖现有的文件或目录
-i 覆盖前先询问用户
-u 在移动或更改文件名时,若目标文件已存在,则不覆盖目标文件。
-v 执行时显示详细的信息。
9、find 查找文件
命令格式:find [路径] [参数] 信息 [选项]
常用选项:
-print 将匹配的文件输出到标准输出。
-exec 对匹配的文件执行该参数所给出的shell命令
-ok和-exec作用相同。
常用参数:
-name 按照文件名查找文件
-perm 按照文件权限来查找文件
-prune 使用这一选项可以使find命令不再当前知道的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略.
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
1.find . -name “a*” -print 将查询输出到文件a.c中。
10、ln 链接目录或文件
命令格式: ln [参数] 源文件 目标链接
常用参数:
-b 删除,覆盖目标文件之前的备份。
-d 建立硬链接。
-s 建立符号链接(软链接).
-f 强行建立文件或目录的链接,不论文件或目录是否存在。
-i 覆盖既有文件之前先询问用户。
-n 把符号链接的目的目录视为一般文件。
1.ln -d a.c a 建立硬链接,名字叫a
2.ln -s b.c b 建立软链接,名字叫b
(链接分为两种,软链接(又叫符号链接),这个文件包含了另一个文件的路径名,可以是任意文件或目录,可以链接不同文件系统的文件,链接文件甚至可以链接不存在的文件,这就产生一般称为”断链“的现象,链接文件甚至可以循环链接自己。在对链接文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。
还有硬链接,是指通过索引节点来进行的链接。硬链接文件有两个限制,首先它不允许给目录创建硬链接,另外只有在同一文件系统中的文件之间才能创建链接。对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件时,硬链接文件任然存在,而且保留原有内容。
3.ls -l 查看一下可以看出链接情况。
11、cat 连接并显示指定的一个和多个文件的有关信息。
命令格式: cat [选项] 文件1,文件2。。。(其中的文件1,文件2为要显示的多个文件)
常用参数:
-n 由第一行开始对所有输出的行数编号。
将源文件的内容按行编号显示出来,则可以使用如下命令。
1.cat -n hello.c
12、chmod 改变文件的访问权限。
命令格式:chmod [选项] [权限] 文件
常用参数:
-c 若该文件权限确定已经更改,才显示其它更改动作。
-f 若该文件权限无法被更改也不要显示错误信息。
-v 显示权限变更的详细资料。