Linux-文件与目录操作命令-ls|cd|cp|mv|pwd|rm|rmdir|
1.ls
Linux ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
1.1 语法:
ls [-alrtAFR] [name...]
1.2 参数:
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出) -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 ls -l 可以简写成:ll -r 将文件以相反次序显示(原定依英文字母次序) -t 将文件依建立时间之先后次序列出 -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录) -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/" -R 若目录下有文件,则以下之文件亦皆依序列出
1.3 实例
1 [root@VM-4-13-centos awk]# ls -a 2 . .. aa.txt bb.txt ll renyuan.txt 3 [root@VM-4-13-centos awk]# ls -A 4 aa.txt bb.txt ll renyuan.txt 5 [root@VM-4-13-centos awk]# ls -l 6 总用量 12 7 -rw-r--r-- 1 root root 1027 9月 27 10:50 aa.txt 8 -rw-r--r-- 1 root root 140 9月 27 11:01 bb.txt 9 -rw-r--r-- 1 root root 0 9月 29 08:54 ll 10 -rw-r--r-- 1 root root 125 9月 29 08:41 renyuan.txt 11 [root@VM-4-13-centos awk]# ls -r 12 renyuan.txt ll bb.txt aa.txt 13 [root@VM-4-13-centos awk]# ls -t 14 ll renyuan.txt bb.txt aa.txt 15 aa.txt 16 [root@VM-4-13-centos awk]# ls -F a* 17 aa.txt 18 [root@VM-4-13-centos awk]# ls -R 19 .: 20 aa.txt bb.txt ll renyuan.txt
2. cd
Linux cd(英文全拼:change directory)命令用于切换当前工作目录。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。 另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。
2.1 cd语法
cd [dirName] #dirName:要切换的目标目录。
2.2 实例
1. 如何进入上级目录:cd .. 2. 如何进入当前用户主目录:cd ~ 3. 如何进入上两级目录:cd ../.. 4. 进入当前目录命令:cd . 5. 如何进入目录 /usr/isTester:cd /usr/isTester 6. 切换到上一个目录,cd -
7. 进入到上次使用的路径 cd !$ #!$:表示上一次使用的路径
3.cp
Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。
3.1 语法
cp [options] source dest
3.2 参数说明
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。 -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。 -f:覆盖已经存在的目标文件而不给出提示。 -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。 -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。 -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 -l:不复制文件,只是生成链接文件。
3.3 实例
[root@VM-4-13-centos home]# cp -r shell test/ #把shell文件夹全部复制test文件夹下
4. mv移动文件或者改名
Linux mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。
4.1 语法
mv [options] source dest
4.2 参数说明
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。 -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。 -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。 -n: 不要覆盖任何已存在的文件或目录。 -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
4.3 实例
将文件 aaa 改名为 bbb : mv aaa bbb 将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。 mv info/ logs 再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为: $ mv /usr/runoob/* .
5.pwd
Linux pwd(英文全拼:print work directory) 命令用于显示工作目录。 执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
5.1 语法
pwd [--help][--version]
5.2 参数说明
--help 在线帮助。
--version 显示版本信息。
5.3 实例
[root@VM-4-13-centos home]# pwd /home
6.rm
rm 命令是remove 的缩写,Linux中 rm 命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变
6.1 语法
rm [选项] 目录名称
6.2 参数说明
-d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。 -f或--force 强制删除文件或目录,忽略不存在的文件,不提示确认。 -i或--interactive 删除既有文件或目录之前先询问用户。 -I 在删除超过三个文件或者递归删除前要求确认。此选项比-i 提示内容更少,但同样可以阻止大多数错误发生。 -r或-R或--recursive 递归删除,将指定目录下的所有文件及子目录一并删除。 -v或--verbose 显示指令执行过程。 --help 在线帮助 查看该命令功能和可带参数等。
6.3 实例
[root@VM-4-13-centos Linux-commands]# rm -rfv rms 已删除目录:"rms/1" 已删除"rms/2.txt" 已删除目录:"rms"
rm -- 等同于 rm
7. rmdir
命令英文原意:remove empty directories 命令用途: rmdir:删除空目录,非空的目录不能删除
7.1 语法
rmdir [-p] dirName
7.2 参数
-p: 递归删除,删除目录之前是否删除父目录,如果父目录为空的话就删除
-v: 删除目录时,显示删除信息
7.3 实例
[root@VM-4-13-centos Linux-commands]# rmdir -pv rms rmdir: 正在删除目录 "rms" rmdir: 删除 "rms" 失败: 目录非空 [root@VM-4-13-centos Linux-commands]# cd rms/ [root@VM-4-13-centos rms]# ll 总用量 4 drwxr-xr-x 2 root root 4096 11月 2 09:02 2 -rw-r--r-- 1 root root 0 11月 2 08:55 2.txt [root@VM-4-13-centos rms]# rmdir -pv 2 rmdir: 正在删除目录 "2" [root@VM-4-13-centos rms]# ll 总用量 0 -rw-r--r-- 1 root root 0 11月 2 08:55 2.txt
8.chgrp
命令用于变更文件或目录的所属群组。
8.1 语法
chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]
8.2 参数
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。 -f或--quiet或--silent 不显示错误信息。 -h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。 -R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。 -v或--verbose 显示指令执行过程。 --help 在线帮助。 --reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。 --version 显示版本信息。
8.3 实例
[root@VM-4-13-centos rms]# ll; 总用量 0 -rw-r--r-- 1 root root 0 11月 2 08:55 2.txt [root@VM-4-13-centos rms]# chgrp -v bin 2.txt changed group of "2.txt" from root to bin [root@VM-4-13-centos rms]# ll 总用量 0 -rw-r--r-- 1 root bin 0 11月 2 08:55 2.txt
9. chown
chown是change owner的缩写,在Linux中 chown 命令将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
单个文件:
[root@VM-4-13-centos chown]# useradd zhts [root@VM-4-13-centos chown]# ll 总用量 0 -rw-r--r-- 1 root root 0 11月 3 08:24 1.txt [root@VM-4-13-centos chown]# chown zhts:zhts 1.txt [root@VM-4-13-centos chown]# ll 总用量 0 -rw-r--r-- 1 zhts zhts 0 11月 3 08:24 1.txt
文件夹(加参数R递归):
[root@VM-4-13-centos chown]# mkdir 2 [root@VM-4-13-centos chown]# ll 总用量 4 -rw-r--r-- 1 zhts zhts 0 11月 3 08:24 1.txt drwxr-xr-x 2 root root 4096 11月 3 08:27 2 [root@VM-4-13-centos chown]# chown -R zhts:zhts 2 [root@VM-4-13-centos chown]# ll 总用量 4 -rw-r--r-- 1 zhts zhts 0 11月 3 08:24 1.txt drwxr-xr-x 2 zhts zhts 4096 11月 3 08:27 2
10.chmod
Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令 Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
10.1 语法
chmod [-cfvR] [--help] [--version] mode file...
10.2 参数说明
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
- -c : 若该文件权限确实已经更改,才显示其更改动作
- -f : 若该文件权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
- --help : 显示辅助说明
- --version : 显示版本
符号模式
使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示:
who | 用户类型 | 说明 |
---|---|---|
u | user | 文件所有者 |
g | group | 文件所有者所在组 |
o | others | 所有其他用户 |
a | all | 所有用户, 相当于 ugo |
operator 的符号模式表:
Operator | 说明 |
---|---|
+ | 为指定的用户类型增加权限 |
- | 去除指定用户类型的权限 |
= | 设置指定用户权限的设置,即将用户类型的所有权限重新设置 |
permission 的符号模式表:
模式 | 名字 | 说明 |
---|---|---|
r | 读 | 设置为可读权限 |
w | 写 | 设置为可写权限 |
x | 执行权限 | 设置为可执行权限 |
X | 特殊执行权限 | 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 |
s | setuid/gid | 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 |
t | 粘贴位 | 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 |
八进制语法
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r-- | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | --x | 001 |
0 | 无 | --- | 000 |
例如, 765 将这样解释:
- 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
- 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
- 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。
11.find (另起一个章节)
12.ln 为文件创建链接 (另起一个章节)
13.mkdir
Linux mkdir(英文全拼:make directory)命令用于创建目录。
13.1 语法
mkdir [-pv] dirName
13.2 参数说明
-p 确保目录名称存在,不存在的就建一个。
-v 显示mkdir创建过程
13.3 实例
[root@VM-4-13-centos Linux-commands]# mkdir mkdir1/mkdir2 mkdir: 无法创建目录"mkdir1/mkdir2": 没有那个文件或目录 [root@VM-4-13-centos Linux-commands]# mkdir -p mkdir1/mkdir2 [root@VM-4-13-centos Linux-commands]# mkdir -pv mkdir3/mkdir4 mkdir: 已创建目录 "mkdir3" mkdir: 已创建目录 "mkdir3/mkdir4"
14.whereis
Linux whereis命令用于查找文件。
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
14.1 语法
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
14.2 参数
-b 只查找二进制文件。 -B<目录> 只在设置的目录下查找二进制文件。 -f 不显示文件名前的路径名称。 -m 只查找说明文件。 -M<目录> 只在设置的目录下查找说明文件。 -s 只查找原始代码文件。 -S<目录> 只在设置的目录下查找原始代码文件。 -u 查找不包含指定类型的文件。
14.3 实例
[root@VM-4-13-centos Linux-commands]# whereis bash bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz
15.which
Linux which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
15.1 语法
which [文件...]
15.2 参数
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。 -w 指定输出时栏位的宽度。 -V 显示版本信息。
15.3 实例
[root@VM-4-13-centos Linux-commands]# which mkdir /usr/bin/mkdir [root@VM-4-13-centos Linux-commands]# which bash /usr/bin/bash [root@VM-4-13-centos Linux-commands]# which 1.txt /usr/bin/which: no 1.txt in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/soft/jdk1.8/bin:/soft/jdk1.8/jre/bin:/root/bin)
16.touch
Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
16.1 语法
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
16.2 参数说明
a 改变档案的读取时间记录。 m 改变档案的修改时间记录。 c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。 f 不使用,是为了与其他 unix 系统的相容性而保留。 r 使用参考档的时间记录,与 --file 的效果一样。 d 设定时间与日期,可以使用各种不同的格式。 t 设定档案的时间记录,格式与 date 指令相同。 --no-create 不会建立新档案。 --help 列出指令格式。 --version 列出版本信息。
16.3 实例
[root@VM-4-13-centos touch]# ll 总用量 0 -rw-r--r-- 1 root root 0 11月 8 08:35 1.txt [root@VM-4-13-centos touch]# touch 1.txt [root@VM-4-13-centos touch]# ll 总用量 0 -rw-r--r-- 1 root root 0 11月 8 08:39 1.txt
使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。
17.locate
Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。 一般情况我们只需要输入 locate your_file_name 即可查找指定文件。
17.1 语法
locate [-d ][--help][--version][范本样式...]
17.2 参数
-b, --basename -- 仅匹配路径名的基本名称 -c, --count -- 只输出找到的数量 -d, --database DBPATH -- 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db -e, --existing -- 仅打印当前现有文件的条目 -1 -- 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。 -0, --null -- 在输出上带有NUL的单独条目 -S, --statistics -- 不搜索条目,打印有关每个数据库的统计信息 -q -- 安静模式,不会显示任何错误讯息。 -P, --nofollow, -H -- 检查文件存在时不要遵循尾随的符号链接 -l, --limit, -n LIMIT -- 将输出(或计数)限制为LIMIT个条目 -n -- 至多显示 n个输出。 -m, --mmap -- 被忽略,为了向后兼容 -r, --regexp REGEXP -- 使用基本正则表达式 --regex -- 使用扩展正则表达式 -q, --quiet -- 安静模式,不会显示任何错误讯息 -s, --stdio -- 被忽略,为了向后兼容 -o -- 指定资料库存的名称。 -h, --help -- 显示帮助 -i, --ignore-case -- 忽略大小写 -V, --version -- 显示版本信息
17.3 实例
17.3.1 查找 passwd 文件,输入以下命令:
[root@VM-4-13-centos touch]# locate passwd
17.4 说明
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。 locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
updatedb
18. updatedb 命令用来创建或更新 slocate/locate 命令所必需的数据库文件。
updatedb 命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库文件中。
注意:slocate 本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
18.1 语法:
updatedb(选项)
18.2 参数
-o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件; -U<目录>:更新指定目录的slocate数据库; -v:显示执行的详细过程。
18.3 实例
18.3.1 以下实例检测一个未存在的文件lbs.txt:
[root@VM-4-13-centos ~]# locate lbs.txt #检索 lbs.txt,没有任何输出,表示没有该文件 [root@VM-4-13-centos ~]# touch ./lbs.txt #添加文件 lbs.txt [root@VM-4-13-centos ~]# locate lbs.txt # 再次检索 lbs.txt,依然没有该文件 [root@VM-4-13-centos ~]# updatedb # 更新 locate.db 数据库 [root@VM-4-13-centos ~]# locate lbs.txt # 再次数据库检索 lbs.txt,找到该文件 /root/lbs.txt
19 .