-
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
-
语法格式
cat [-AbeEnstTuv] [--help] [--version] fileName 参数说明: -n 或 --number:由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。 -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。 -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。 -E 或 --show-ends : 在每行结束处显示 $。 -T 或 --show-tabs: 将 TAB 字符显示为 ^I。 -A, --show-all:等价于 -vET。 -e:等价于"-vE"选项; -t:等价于"-vT"选项;
实例:
把text的文档内容加上行号后输入text1这个文档里
cat -n text > text1
把text和text1的文档内容加上行号(空白行不加)之后将内容附加到text2文档里
cat -b text text1 >>text2
清空/etc/text.txt文档内容
cat /dev/null > /etc/text.txt
-
chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
-
语法格式
chmod [-cfvR] [--help] [--version] mode file... 参数说明: -c : 若该文件权限确实已经更改,才显示其更改动作 -f : 若该文件权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更) --help : 显示辅助说明 --version : 显示版本 mode:权限设定字符串,格式如下: [ugoa...][[+-=][rwxX]...][,...] 其中: u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
who 用户类型 说明 u user 文件所有者 g group 文件所有者所在组 o others 所有其他用户 a all 所有用户,相当于ugo # 权限 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 实例:
将文件file.txt设为所有人皆可读取
chmod ugo+r file.txt
将文件file.txt设为所有人皆可读取
chmod a+r file.txt
将文件file.txt与file1.txt设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
chmod ug+w,o-w file.txt file1.txt
为ex1.py文件拥有者增加可执行权限
chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取
chmod -R a+r *
此外chmod也可以用数字来表示权限如 :
chmod 777 file
- 若要 rwx 属性则 4+2+1=7;
- 若要 rw- 属性则 4+2=6;
- 若要 r-x 属性则 4+1=5。
-
chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令、需要超级用户root的权限才能执行命令。
-
语法格式:
chown [-cfhvR] [--help] [--version] user[:group] file... 参数说明: user : 新的文件拥有者的使用者 ID group : 新的文件拥有者的使用者组(group) -c : 显示更改的部分的信息 -f : 忽略错误信息 -h :修复符号链接 -v : 显示详细的处理信息 -R : 处理指定目录以及其子目录下的所有文件 --help : 显示辅助说明 --version : 显示版本
实例:
把 /var/run/httpd.pid 的所有者设置 root:
chown root /var/run/httpd.pid
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt
将当前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:
chown :512 /home/runoob
-
cksum命令用于检查文件的CRC是否正确。确保文件从一个系统传输到另一个系统的过程中不被损坏
-
语法格式
cksum [--help][--version][文件...] 参数说明: --help:在线帮助 --version:显示版本信息 文件…:需要进行检查的文件路径
实例:
使用指令"cksum"计算文件"testfile1"的完整性,输入如下命令:
cksum testfile1
以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:
1263453430 78 testfile1 //输出信息
上面的输出信息中,"1263453430"表示校验码,"78"表示字节数。
-
cmp命令用于比较两个文件是否有差异
-
语法格式:
cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件] 参数说明: -c或--print-chars 除了标明差异处的十进制字码之外,一并显示该字符所对应字符 -i<字符数目>或--ignore-initial=<字符数目> 指定一个数目 -l或--verbose 标示出所有不一样的地方 -s或--quiet或--silent 不显示错误信息 -v或--version 显示版本信息 --help 在线帮助
实例:
要确定两个文件是否相同,请输入:
cmp prog.o.bak prog.o
这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:
prog.o.bak prog.o differ: char 4, line 1
如果显示消息 cmp: EOF on prog.o.bak,则 prog.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其他数据。
-
diff命令用于比较文件的差异
-
语法格式
diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
实例:
比较两个文件
diff log2014.log log2013.log
并排格式输出
[zt@localhost work]$ diff test1.txt test.txt -y -W 50 1 123123123 | 123123123 2 assdasdasdas | assdasdasdas 3 hhahhahahah | hhahhahahah asdasdasda < < asdasdasde1223as < [zt@localhost work]$
- "|"表示前后2个文件内容有不同
- "<"表示后面文件比前面文件少了1行内容
- ">"表示后面文件比前面文件多了1行内容
-
file命令用于辨识文件类型
-
语法格式:
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...] 参数说明: -b 列出辨识结果时,不显示文件名称 -c 详细显示指令执行过程,便于排错或分析程序执行的情形 -f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称 -L 直接显示符号连接所指向的文件的类别 -m<魔法数字文件> 指定魔法数字文件 -v 显示版本信息 -z 尝试去解读压缩文件的内容 [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件
实例:
显示文件类型
[zt@localhost work]$ file test1.txt test1.txt: ASCII text
-
find命令用来在指定目录下查找文件
-
语法格式:
find path -option [ -print ] [ -exec -ok command ] {} \;
实例:
将当前目录及其子目录下所有文件后缀为.c的文件列出来
find . -name "*.c"
将当前目录及其子目录中所有一般文件列出
find . -type f
将当前目录及其子目录下所有最近20天内更新过的文件列出
find . -ctime -20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
find . -type f -perm 644 -exec ls -l {} \;
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径
find / -type f -size 0 -exec ls -l {} \;
-
ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
-
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
-
语法格式:
ln [参数][源文件或目录][目标文件或目录] 参数: -s 软连接
实例:
给文件创建软链接,为test1.txt文件创建软链接link_test1,如果test1.txt丢失,link_test1将失效。
[zt@localhost work]$ ln -s test1.txt link_test1 [zt@localhost work]$ ll 总用量 8 lrwxrwxrwx. 1 zt zt 9 5月 7 00:32 link_test1 -> test1.txt -rw-rw-r--. 1 zt zt 85 5月 6 23:55 test1.txt -rw-rw-r--. 1 zt zt 35 5月 6 22:57 test.txt
-
more命令类似cat,不过会以一页一页的形式显示。更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
-
语法格式:
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] 参数说明: -num 一次显示的行数 -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声 -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能 -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料 -s 当遇到有连续两行以上的空白行,就代换为一行的空白行 -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同) +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示 +num 从第 num 行开始显示 fileNames 欲显示内容的文档,可为复数个数
实例:
逐页显示testfile文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s testfile
从第 20 行开始显示 testfile 之文档内容
more +20 testfile
-
mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。
-
语法格式:
mv [options] source dest mv [options] source... directory 参数说明: -b 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份 -i 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作 -f 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件 -n 不要覆盖任何已存在的文件或目录 -u 当源文件比目标文件新或者目标文件不存在时,才执行移动操作
实例:
将文件aaa改名为bbb
mv aaa bbb
将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv info/ logs
再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为
mv /usr/runoob/* .
-
rm命令(英文全拼:remove)命令用于删除一个文件或者目录。
-
语法格式:
rm [options] name... 参数说明: -i 删除前逐一询问确认 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认 -r 将目录及以下之档案亦逐一删除
实例:
删除文件可以直接用rm命令,若删除目录则必须配合选项"-r",例如:
rm test.txt rm -r homework
删除当前目录下所有
rm -rf ./*
文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
-
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
ls -l 可以显示档案的时间记录。
-
语法格式:
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…] 参数说明: a 改变档案的读取时间记录 m 改变档案的修改时间记录 c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样 f 不使用,是为了与其他 unix 系统的相容性而保留 r 使用参考档的时间记录,与 --file 的效果一样 d 设定时间与日期,可以使用各种不同的格式 t 设定档案的时间记录,格式与 date 指令相同 --no-create 不会建立新档案 --help 列出指令格式 --version 列出版本讯息
实例:
使用指令“touch”修改文件“testfile”的时间属性为当前系统时间、输入如下命令:
touch testfile #修改文件的时间属性 ls -l testfile #查看文件的时间属性
使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令。
touch file #创建一个名为“file”的新的空白文件
-
which 命令用于查找文件。which命令会在环境变量$PATH设置的目录里查找符合条件的文件。
-
语法格式:
which [文件...] 参数说明: -n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。 -w 指定输出时栏位的宽度 -V 显示版本信息
实例:
使用指令"which"查看指令"bash"的绝对路径,输入如下命令:
which bash 上面的指令执行后,输出信息如下所示: /bin/bash #bash可执行程序的绝对路径
-
cp (英文全拼:copy file)命令主要用于复制文件或目录。
-
语法格式:
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
-
whereis命令用于查找文件。
-
语法格式:
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...] 参数说明: -b 只查找二进制文件。 -B<目录> 只在设置的目录下查找二进制文件。 -f 不显示文件名前的路径名称。 -m 只查找说明文件。 -M<目录> 只在设置的目录下查找说明文件。 -s 只查找原始代码文件。 -S<目录> 只在设置的目录下查找原始代码文件。 -u 查找不包含指定类型的文件。
实例:
使用指令"whereis"查看指令"bash"的位置,输入如下命令:
whereis bash [zt@localhost work]$ whereis bash bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz
-
scp命令用于 Linux 之间复制文件和目录
-
语法格式:
scp [可选参数] file_source file_target 参数说明: -r: 递归复制整个目录
实例:
从本地复制到远程
scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:remote_folder 或者 scp local_file remote_ip:remote_file 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名; 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
应用实例:
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3 scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3
复制目录命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder 或者 scp -r local_folder remote_ip:remote_folder 第1个指定了用户名,命令执行后需要再输入密码 第2个没有指定用户名,命令执行后需要输入用户名和密码
应用实例:
scp -r /home/space/music/ root@www.runoob.com:/home/root/others/ scp -r /home/space/music/ www.runoob.com:/home/root/others/
从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
应用实例:
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 scp -r www.runoob.com:/home/root/others/ /home/space/music/
说明:
如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下
#scp 命令使用端口号 4588 scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的
Linux操作《文件管理》常用命令总结
最新推荐文章于 2022-05-15 20:33:27 发布