Linux常用命令梳理——文件管理(一)
由于本人目前仍是萌新一枚,所以《Linux常用命令梳理》系列仅依照个人目前掌握的知识,对一部分命令进行梳理,目的是为了对之前学到的知识进行巩固。当然了,如果机缘巧合被大家看到了,也欢迎各位评论指正,谢谢!
Linux命令包含了文件管理、文档编辑、文件传输、磁盘管理、磁盘维护、网络通讯、系统管理、系统设置、备份压缩、设备管理等方面的命令。这一篇呢,先梳理一下文件管理部分的常用命令。
一、文件管理
cat命令:concatenate,连接文件并打印到标准输出设备上
语法:cat [参数] 文件名
参数:-n 从1开始对每一行进行编号
-b 从1开始对每一行进行编号,空白行除外
-s 将连续2行以上的空白行用1行空白行代替
-v 用^和M-符号,LFD和TAB除外
-E 在每行结尾显示$
-T 将TAB显示为^I
-A 相当于-vET
-e 相当于-vE
-t 相当于-vT
扩展:使用cat命令创建文件,语法:cat > 文件名,运行后要求用户在终端上输入文件内容,输入完成后按下CTRL+D结束。
[root@centos- ~]# ls
anaconda-ks.cfg hello.sh initial-setup-ks.cfg
[root@centos- ~]# cat > abc
test
abc
hello
world
[root@centos- ~]# ls
abc anaconda-ks.cfg hello.sh initial-setup-ks.cfg
[root@centos- ~]# cat abc
test
abc
hello
world
[root@centos- ~]#
注意第3行和第10行代码的区别:第3行cat > abc表示创建一个之前不存在的文件abc,第10行cat abc表示将已存在的abc文件的内容打印出来。
chmod命令:change mode,变更文件权限
语法:chmod [参数] [mode] 文件名
参数:-c 文件权限确实已经更改,才显示其更改动作
-f 抑制大多数错误消息
-v 显示文件权限变更的详细过程
-R 以递归方式对当前目录下对所有文件及子目录进行权限变更
mode:权限设定参数来自 [ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+
ugoa:u表示文件拥有者,g表示和文件拥有者在同一群组的用户,o表示其他用户,a表示所有用户
-+=:-表示取消权限,+表示增加权限,=表示唯一设定权限
rwxXst:r表示可读,w表示可写,x表示可执行,Xst待解释
0-7:rwx权限也可以用数字表示,其中r = 4,w = 2,x = 1,如chmod a=rwx 文件名和chmod 777 文件名两个命令的效果是等价的,都是为所有用户赋予rwx权限。
扩展:可通过ls -l命令或简写的ll命令查看文件权限。
[root@centos- ~]# ll
total
-rw-r--r--. root root Jul : abc
-rw-------. root root Aug anaconda-ks.cfg
-rwxr-xr-x. root root Jul : hello.sh
-rw-r--r--. root root Aug initial-setup-ks.cfg
[root@centos- ~]# chmod hello.sh
[root@centos- ~]# ls -l
total
-rw-r--r--. root root Jul : abc
-rw-------. root root Aug anaconda-ks.cfg
-rwxrwxrwx. root root Jul : hello.sh
-rw-r--r--. root root Aug initial-setup-ks.cfg
[root@centos- ~]#
可以从第5行和第12行代码看出hello.sh文件的权限已经发生变更。
cmp命令:compare,以逐个字节对比的方式比较两个文件是否有差异,如果没有,则不显示任何信息;如果有,则会显示出第一个不同之处的位置
语法:cmp [参数] [第一个文件] [第二个文件]
参数:-b 打印出不同之处的字节
-i 指定一个数字,表示跳过的字节数
-l 输出所有不同之处的字节序号以及两个文件该位置对应的字符
-n 指定一个数字,表示限制比较的字节数,即只比较前n个字节
-s 抑制比较结果的输出,即不显示两个文件之间的差异
cp命令:copy,复制文件或目录
语法:cp [参数] [源文件] [目标文件]
cp [参数] [源文件1] [源文件2] [源文件3] ... [目录]
参数:-f 覆盖已经存在的目标文件而不给出提示
-i 与-f相反,覆盖已经存在的目标文件前进行询问提示(常用)
-p 连同文件的属性(权限、用户、修改时间)一起复制过去(备份常用)
-r 递归复制,用于目录复制,将目录下的所有文件及子目录进行复制(常用)
-d 复制时保留链接
-l 不复制文件,只生成链接文件
-a 相当于-dr
注意:当有多个源文件时,则目标文件必须是一个已经存在的目录。
rm命令:remove,删除文件或目录
语法:rm [参数] 文件名或目录
参数:-r 将目录及目录中的内容删除(删除目录的必要参数)
-f 直接删除,没有提示信息(使用需谨慎!!!)
-i 删除前提示确认信息
[root@centos- ~]# rm
rm: cannot remove ‘’: Is a directory
[root@centos- ~]# ls
abc abc.bak abc.ln anaconda-ks.cfg bca cba hello.sh initial-setup-ks.cfg
[root@centos- ~]# rm -f abc.bak
[root@centos- ~]# ls
abc anaconda-ks.cfg bca cba hello.sh initial-setup-ks.cfg
[root@centos- ~]#
mv命令:move,移动文件或目录位置,或对文件或目录重命名
语法:mv [参数] 源文件 目标文件
mv [参数] [源文件1] [源文件2] [源文件3] ... [目录]
参数:-i 覆盖已有目标前给出提示信息
-f 直接覆盖已有目标,不给出任何提示
mv file1 file2 | 将file1重命名为file2 |
mv file directory | 将file移动到directiry下 |
mv dir1 dir2 |
若dir2不存在,则将dir1改名为dir2; 若dir2存在,则将dir1移动到dir2 |
最新文章
- FreeBSD_11-系统管理——{Part_7 - AUDIT}
- 原生js实现放大镜效果
- Android菜鸟成长记13 -- 初识application
- /etc/resolv.conf overwritten. Redhat/Centos
- Android提升进入界面的速度
- 0x05: post 守护进程(deamon) json 任务调度
- Qt的“undefined reference to `vtable for”错误解决(手动解决,加深理解)
- ZOJ 3802 Easy 2048 Again 像缩进DP
- github + SourceTree管理自己的库并上传到cocoapods及各种坑的解决办法
- 问题排查:The requested URL /test/index.jsp was not found on this server
- 播放器授权后播放内容时出现Cnario logo水印
- ubuntu12.0.4开启root用户登陆
- Golang入门教程(十五)指针
- python模块-----pymysql
- h5项目如何打成war包
- RNA测序相对基因表达芯片有什么优势?
- layer插件学习——提示层
- 创建一个OpenGL窗口
- java基础篇---JSP内置对象详解
- python2.7入门---多线程
热门文章
- 【转】在Linux下写一个简单的驱动程序
- - Power Strings (字符串哈希) (KMP)
- 搭建 MySQL 5.7.19 主从复制,以及复制实现细节分析
- 用Chrome 浏览器调试移动端网页 chrome://inspect/#devices
- vue3之组件
- markdown编辑器常用命令
- spring boot2.0.2,<;-1.4.8
- android出现backtrace 定位方法
- WTL拖拽文件
- Thymeleaf 2-基础语法