Linux系列教程(四)——Linux文件和目录处理命令
这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法。那么从这篇博客开始,我们就正式进入Linux命令的学习。学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条命令的详细语法格式,学完之后我们只需要知道某个命令能干什么。这样我们在实际应用中,遇到需要实现某个功能,我们脑海只要能想起来适用于某个命令就行,至于详细格式我们可以通过查资料。当我们使用的多了,会不知不觉的记住这些命令,这才是正确的学习方法。Linux命令有很多,如果初学者就想全部记住这些命令的详细格式,会对我们产生很大的学习挫败性,还没记完这些命令,或许你已经丧失了学习Linux的热情了。所以接下来的几篇博客,我会详细讲解Linux常用命令的语法格式以及用法,大家记住大概的用法就行了,到时候不会可以回过头来查询。
本篇博客我们学习Linux最常用的文件处理命令。
1、Linux命令的普遍语法格式
命令格式: 命令 【-选项】【参数】
例子: ls -la /etc
说明: ①、个别命令使用不遵循此格式,【】这种符号表示可以省略
②、当有多个选项时,可以写在一起
③、简化选项(一般用一个-)与完整选项(一般用两个--)
比如 ls -a 等于 ls --all
上面的便是Linux系统中的一般命令格式,基本上所有命令都是遵循这种语法格式(个别命令除外)。
2、目录处理命令
一、显示目录文件命令:ls
①、命令名称:ls
②、英文原意:list
③、命令所在路径:/bin/ls
④、执行权限:所有用户
⑤、功能描述:显示目录文件
⑥、语法: ls 选项【-ald】【文件或目录】
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 仅显示目录名,而不显示目录下的内容列表
-h 人性化显示(hommization)
-i 查看任意一个文件的i节点(类似于身份证唯一信息)
-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件
注意:. 开头的文件除非是目录,否则就是隐藏文件
上面我们分别列出了ls的各种命令组合显示效果。我们以 -rw-------. 1 root root 1.3k Mar 11 08:05 anaconda-ks.cfg 为例解析每个字段:
①、-rw------- 第一位表示文件类型,- 表示是二进制文件,d 表示目录, l 表示软连接文件。后面的每三个为一组:
rw- --- ---
u g o
u(user)所有者 g(group)所属组 o(other) 其他人
r 读 w写 x执行 -无权限
②、1 引用计数,表示文件被引用过多少次
③、root 这第一个root表示所有者,一般创建一个文件,所有者默认是创建者。
④、root 这第二个root表示所属组。
⑤、1.3K 表示文件字节大小,不带单位表示字节
⑥、ar 11 08:05 表示文件的最后修改时间。注意:Linux没有明确的创建时间,只有最后一次访问时间、文件的状态修改时间、文件的数据修改时间
⑦、anaconda-ks.cfg 表示文件名
二、创建目录命令:mkdir
①、命令名称:mkdir
②、英文原意:make directories
③、命令所在路径:/bin/mkdir
④、执行权限:所有用户
⑤、功能描述:创建新目录
⑥、语法: mkdir 【-p】【目录名】
-p 递归创建
例子:创建单个目录:mkdir /tmp/vae.txt
创建多个目录:mkdir /tmp/a.txt /tmp/b.txt
注意:1、创建的目录已经存在, 那么 Linux 会提示我们 Linux 无法创建它。
2、不带任何参数运行 mkdir 命令会在当前目录下创建目录。
3、不带上-p,如果新建的文件上级目录不存在则不会执行成功这种说法是错误的。加或者不加上 -p 前面的目录没有得都会依次创建。
4、创建目录的首要条件是, 在想要创建目录的目标路径下你必须具有访问权限。
三、切换目录命令:cd
①、命令名称:cd
②、英文原意:change directory
③、命令所在路径:shell 内置命令
④、执行权限:所有用户
⑤、功能描述:切换目录
⑥、语法: cd【目录名】
例子:切换到指定目录:cd /tmp/vae
回到上一级目录:cd ..
还是在当前目录:cd .
返回上两级目录:cd ../..
返回进入此目录之前所在的目录:cd -
四、shell内置命令和外部命令的区别
大家可以看到前面的三个命令,ls命令和mkdir命令都有命令的所在路径,而cd命令我们说是shell内置命令。这两者便是Linux内置命令和外部命令。
内部命令实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。比如:exit,history,cd,echo等。
外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin......等等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。
用type命令可以分辨内部命令与外部命令:
内部命令和外部命令最大的区别之处就是性能。内部命令由于构建在shell中而不必创建多余的进程,要比外部命令执行快得多。因此和执行更大的脚本道理一样,执行包含很多外部命令的脚本会损害脚本的性能。
五、显示当前目录命令:pwd
①、命令名称:pwd
②、英文原意:print working directory
③、命令所在路径:/bin/pwd
④、执行权限:所有用户
⑤、功能描述:显示当前目录
⑥、语法: pwd
例子:显示当前目录:pwd
六、删除空目录命令:rmdir
①、命令名称:rmdir
②、英文原意:remove empty directories
③、命令所在路径:/bin/rmdir
④、执行权限:所有用户
⑤、功能描述:删除空目录(如果目录下存在文件则不能删除)
⑥、语法: rmdir 【空目录名】
例子:删除指定空目录:rmdir /tmp/a
注意:由于此命令只能删除空目录,在实际操作中应用的不多,后面我们讲解 rm 命令可以替代。
七、复制文件或目录命令:cp
①、命令名称:cp
②、英文原意:copy
③、命令所在路径:/bin/cp
④、执行权限:所有用户
⑤、功能描述:复制文件或目录
⑥、语法: cp -rp 【原文件或目录】【目标目录】
-r 复制目录
-p 保留文件属性
例子:比如我们将 root 目录下的install.log 文件复制到 tmp 目录下
可以用于复制后文件改名,比如我们将 root 目录下的 install.log 文件复制到 tmp的copyinstall.log 文件
还可同时复制多个文件,注意复制目录的时候要加 -r选项。加-p属性之后会将原文件的一些属性比如修改时间等也原封不动的复制过去。如果不加-p属性,那么复制后的文件修改时间为当前系统时间。
八、剪切文件或目录命令:mv
①、命令名称:mv
②、英文原意:move
③、命令所在路径:/bin/mv
④、执行权限:所有用户
⑤、功能描述:剪切文件、改名
⑥、语法: mv【原文件或目录】【目标目录】
例子:在 tmp 目录下创建目录 tmp1 ,然后在 tmp1 目录下创建目录 tmp1_1,然后 命令 mv /tmp/tmp1/tmp1_1 /tmp 将 tmp1目录下的 tmp1_1 剪切到 tmp 目录下。
九、删除文件或目录命令:rm
①、命令名称:rm
②、英文原意:remove
③、命令所在路径:/bin/rm
④、执行权限:所有用户
⑤、功能描述:剪切文件、改名
⑥、语法: rm -rf 【文件或目录】
-r 删除目录
-f 强制执行
例子:在 tmp 目录下有两个目录 tmp1 和 tmp1_1,rm -r tmp1_1 是删除这个目录,但是需要输入 y 来确认
rm -rf tmp1 是强制删除 tmp1 目录,不需要输入 y 来确认,这种做法很简单,但是容易误删文件,没有反悔的机会
rm -rf tmp1 tmp2 同时删除两个文件
3、文件处理命令
一、创建空文件命令:touch
①、命令名称:touch
②、英文原意:
③、命令所在路径:/bin/touch
④、执行权限:所有用户
⑤、功能描述:创建空文件
⑥、语法: touch 【文件名】
例子:在 tmp 目录下创建 tmp.log 文件
注意:创建文件时,文件名不要有空格,不然就是创建了 两个文件
touch progrom files 这是创建了两个文件,progrom 和 files
如果我们想创建一个文件名为 progrom files ,应该用引号括起来(尽量避免文件名包含空格)
touch "progrom files"
二、显示文件内容命令(适合内容较少的文件):cat
①、命令名称:cat
②、英文原意:
③、命令所在路径:/bin/cat
④、执行权限:所有用户
⑤、功能描述:显示文件内容(只能显示内容较少的文件)
⑥、语法: cat【文件名】
-n 显示文件行号
例子:通过不加参数-n和加参数-n,显示/etc/issue的内容
注意:此命令只能显示文件内容比较少的文件,如果文件内容很多,用cat命令是不合适的,视觉效果是屏幕不断滚动更新。
三、反向显示文件内容命令(适合内容较少的文件):tac
①、命令名称:tac
②、英文原意:
③、命令所在路径:/bin/tac
④、执行权限:所有用户
⑤、功能描述:显示文件内容(只能显示内容较少的文件)
⑥、语法: tac【文件名】
例子:显示/etc/issue的内容
四、分页显示文件内容命令(不能向前翻页):more
①、命令名称:more
②、英文原意:
③、命令所在路径:/bin/more
④、执行权限:所有用户
⑤、功能描述:分页显示文件内容
⑥、语法: more【文件名】
(空格)或f 翻页(一页一页的往后显示)
(Enter) 换行(一行一行的往后显示)
q 或 Q 退出
例子:查看etc目录下的 services 文件信息:more /etc/services
五、分页显示文件内容命令(可以前后翻页):less
①、命令名称:less
②、英文原意:
③、命令所在路径:/usr/bin/less
④、执行权限:所有用户
⑤、功能描述:分页显示文件内容
⑥、语法: less【文件名】
(空格)或f 或PgDn 翻页(一页一页的往后显示)
PgUp向前翻页
(Enter) 换行或向下的箭头(一行一行的往后显示)
向上的箭头(一行一行的往前显示)
q 或 Q 退出
输入/想搜索的字符,然后回车键
例子:查看etc目录下的 services 文件信息:less/etc/services。这个比较简单,我们就不截图演示了,主要是最后提到的搜索功能,我们在进入命令之后,输入
/想搜索的字符,然后回车键,如下:
回车之后,如下显示:
六、显示文件内容命令(指定行数):head
①、命令名称:head
②、英文原意:
③、命令所在路径:/usr/bin/head
④、执行权限:所有用户
⑤、功能描述:显示文件的前面几行
⑥、语法: head【文件名】
-n 指定显示的行数
不加 -n 默认显示前 20 行数据
例子:显示 etc目录下的 services 文件前面 20 行 head -n 20 /etc/services
七、反向文件内容命令(文件即时更新后也能动态显示,多用于日志文件显示):tail
①、命令名称:tail
②、英文原意:
③、命令所在路径:/usr/bin/tail
④、执行权限:所有用户
⑤、功能描述:显示文件的后面几行
⑥、语法: tail【文件名】
-n 指定显示的行数
-f 动态显示文件末尾内容(即文件实时变化,那么显示内容也会随之变化)
例子:显示 etc目录下的 services 文件后面 20 行 tail -n 20 -f /etc/services
注意:如果我们想结束加上 -f显示的tail命令,通过 Ctrl+C。
4、总结
本篇博客我们主要讲解了Linux系统中的文件和目录处理命令,显示目录文件信息 ls 这是我们最常用的,然后创建目录命令 mkdir,切换目录命令 cd,显示当前目录 pwd,删除空目录命令 rmdir,这个命令用的不多,如果我们想删除目录可以用 rm 命令,注意 rm 如果加上 -f 参数,那将没有提示,直接将文件从系统中删除,需要特别注意,以免删除系统文件。然后我们接着介绍了复制文件或目录命令 cp,剪切文件或目录命令 mv,注意mv命令在剪切后可以直接更改文件或目录名称。
接着我们介绍了几个文件处理命令,创建空文件 touch,显示文件内容的命令有很多,我们也不需要记住那么多,首先less命令能显现文件内容比较多的文件,而且能前后翻页显示。再就是如果我们需要动态监视文件内容的变化,比如某个日志文件,我们可以通过 tail 加上-f参数动态显示文件末尾的内容。
Linux系列教程(四)——Linux文件和目录处理命令的更多相关文章
- Linux中一个快速查找文件和目录的命令
功能介绍: locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,值得注意的是:版本不同,会有所不 ...
- Linux系列教程(四)——Linux常用命令之文件和目录处理命令
这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...
- Linux系列教程(六)——Linux文件搜索命令
前一篇博客我们讲解了Linux链接命令和权限管理命令, 通过 ln -s 链接名 表示创建软链接,不加-s表示创建硬链接:还有三个更改权限的命令,chmod命令可以更改文件或目录权限,chown命令 ...
- Linux系列教程(六)——Linux常用命令之文件搜索命令
前一篇博客我们讲解了Linux链接命令和权限管理命令, 通过 ln -s 链接名 表示创建软链接,不加-s表示创建硬链接:还有三个更改权限的命令,chmod命令可以更改文件或目录权限,chown命令 ...
- Linux常用命令之文件和目录处理命令
目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...
- Linux系列教程(五)——Linux链接命令和权限管理命令
前一篇博客我们讲解了Linux文件和目录处理命令,还是老生常淡,对于新手而言,我们不需要完全记住命令的详细语法,记住该命令能完成什么功能,然后需要的时候去查就好了,用的多了我们就自然记住了.这篇博客我 ...
- Linux系列教程(七)——Linux帮助和用户管理命令
上篇博客我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而loca ...
- Linux系列教程(七)——Linux常用命令之帮助和用户管理命令
上篇博客我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而loca ...
- Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令
前一篇博客我们讲解了Linux文件和目录处理命令,还是老生常淡,对于新手而言,我们不需要完全记住命令的详细语法,记住该命令能完成什么功能,然后需要的时候去查就好了,用的多了我们就自然记住了.这篇博客我 ...
随机推荐
- 201521123050 《Java程序设计》第9周学习总结
1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避 ...
- apache: apache-tomcat-6.0.35完整下载
Index of /dist/tomcat/tomcat-6/v6.0.35/bin Name Last modified Size Description Parent Directory - ex ...
- Linux 文件系统的组织方式
在linux中,一切都看成文件,不管是目录还是设备.所以想要熟练使用Linux,那么对文件的本质和组织结构要有一定的认识. linux系统下使用的设备不用像windows系统下一样创建驱动器磁盘符.l ...
- linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...
- JDBC操作数据库之连接数据库
通过JDBC向数据库中添加数据的时候,使用insert语句实现数据的插入,再SQL语句中的参数可以用占位符"?"来替代,然后通过PreparedStatement对象或者State ...
- JVM 菜鸟进阶高手之路九(解惑)
转载请注明原创出处,谢谢! 在第八系列最后有些疑惑的地方,后来还是在我坚持不懈不断打扰笨神,阿飞,ak大神等,终于解决了该问题.第八系列地址:http://www.cnblogs.com/lirenz ...
- 移动端与PHP服务端接口通信流程设计(增强版)
增强地方一: 再增加2张表,一个接口表,一个授权表,设计参考如下: 接口表 字段名 字段类型 注释 api_id int 接口ID api_name varchar(120) 接口名,以"/ ...
- 再说AutoComplete
一.简述 昨天support一同事,帮她的客户做类似下面的效果(自动完成): 以前在搜房的时候,弄过这个,调用楼盘字典: 这是一个小功能,也是一个大功能.因为它可以做大,也可以做小. 二.搜房的Aut ...
- 【转】开源中国上看到的一个vim的自动配置的好东西,分享下
https://www.oschina.net/p/onekey-to-vim-ide 变量有高亮,竖行上有直线定位,对python的支持效果更佳,从事C/C++开发的程序员使用也不错.
- pytorch实现DCGAN、pix2pix、DiscoGAN、CycleGAN、BEGAN以及VAE
https://github.com/sunshineatnoon/Paper-Implementations