Linux文件操作总结

1.目录操作:

pwd命令:显示当前目录

不论是我们使用Windows操作系统还是Linux,当我们以任何一个用户身份登录到系统中时,都是在一个目录下面的,比如我们常见的下面这个界面:

092329325.png

初次登录的时候Windows会让我们处于和我们的用户身份同名的文件夹下,这个目录在Linux中称之为家目录:

092345975.png

由于我使用的是桌面版,所以刚登录的时候是处于桌面目录下,但使用pwd命令查看时,我们会发现我们处在root用户的家目录root目录下的Desktop目录下。

命令行前面中括号部分称之为主提示符,@符号之前是当前登录的用户身份,@符号后面指的是主机名空格当前目录名,而使用pwd命令的目的是查看该目录的绝对路径,因为系统中存在很多相同名字的目录。


cd命令:切换当前目录

cd命令很简单,跟windows我感觉完全一样,读者如果学过不适用IDE写Java程序一定对cd命令很熟悉,比如说我们要切到跟目录下的etc目录下:

093540479.png

需要注意的是跟windows不同,Linux的目录分隔符是/,而windows是\

另外如果cd 不加参数,回车就会回到当前用户的家目录:

093555312.png

在主提示符里面使用 ~ 来代替家目录,读者如果看的不是很明白我们可以切换一下用户身份来重复这个命令来看看(当前我是root身份):

093605467.png

原本我是在root用户的家目录root目录下,而我直接切换到rhel用户的时候,目录位置没有变,使用cd命令之后,发现我的当前目录是/home/rhel,因为除了root用户的家目录是在根目录下的root目录以外,普通用户的家目录都在/home目录下面,这也印证了cd不加参数时的作用,注意看此时的主提示符上显示的也是 ~ 。另外和Windows中一样,Linux中也用 . 来表示当前目录,用 .. 表示当前目录的父目录。

ls命令:列出当前或指定目录下的文件和目录。

用法:ls [选项] [目录或文件],常用方法是cd到指定目录然后ls查看目录内容:

092530460.png

还有几个常用可选选项:

-l 代表列出文件详细信息(单位字节数)

092548594.png

-h -l 代表列出文件具体大小(使用KMG单位

092602237.png

[指定目录的绝对路径]:列出该目录下的文件信息,比如我们想在家目录下查看/etc/sysconfig目录中的内容:


092616517.png


-a 显示所有文件(包括隐藏文件,以点开头的文件名文件)

092634575.png

查看一个目录本身的详细信息:

ls -l -d /root/

093624542.png

单独用-d选项没有意义,一般跟-lh一起用,表示查看当前目录的详细信息(文件类型和权限,包含链接数,文件属主,文件属组,文件大小,创建时间)该信息的详解在另一篇博文《ls -l 显示出来的文件信息字段的具体含义(最全)》有详解。

mkdir命令:创建目录(make directory

不加任何选项,直接跟要创建的目录名,就在当前目录下创建一个新目录:

093634319.png

如果我们需要创建嵌套的目录:mkdir /aa/bb/cc 这样写会出错的,这条命令的意思是 在/aa/bb目录下创建cc目录,而/aa/bb/目录并不存在,解决方法就是在后面加上-p选项:

092907904.png

这个命令可以同时创建多个目录(蓝色字体就是表示目录):

092941955.png

2.文件操作

touch命令:创建一个空的普通文件。

093010305.png

跟mkdir类似,touch也可以同时创建多个文件,这里不再赘述

cp命令:拷贝文件或目录到指定位置,格式:cp + 原文件 + [目标路径+]文件名

093031730.png

这条命令的含义为:讲abc.txt的文件内容拷贝一下,放到自动创建的a.txt文件中。

如果想拷贝到指定目录,只需要在目标文件名前面加上绝对或者相对路径即可:

093150942.png

以上是拷贝文件,如果是拷贝目录的时候,注意加上-r选项,表示递归拷贝整个目录树:

093204627.png

rm命令:remove删除。删除文件或者目录(删除目录时需要加-r选项表示删除整个目录树)

格式:rm [选项] 文件或目录 删除时不提示确认 删除目录必须加 -r

093218977.png

rm -f 文件表示强制删除不提示确认

rm -rf 将该目录直接删除 比较常用,比如想删除整个cc目录:

093230186.png


mv命令:两个作用,一是移动文件或目录,二是重命名文件或目录

移动文件:将a.txt移动到a目录下。

093243134.png

移动目录:

093256354.png

可以发现它和cp命令的格式完全一样,只不过不需要考虑目录和文件的不同,不需要加选项-r

改名:

我们把abc.txt改成cba.txt:

093316780.png

我们会发现如果mv的原位置和目标位置一样,则相当于改名

find命令:查找指定文件位置

格式:find 查找范围 [查找条件]

常用查找条件

 -name 按照文件名查找  find / -name abc.txt 在根目录下查找abc.txt文件

 -user 按照文件属主查找 find / -user root 表示查找该用户的文件或目录

 -type 按照文件类型查找 find / -type f 表示查找文件-type d 表示查找目录

比如我们要在根目录下查找cba.txt文件,就可以这样写:

093329139.png

这样查找会比较慢,因为要遍历整个目录树

因此为了提高效率,我们可以增加其他约束条件缩小查找范围:

比如我们要查找指定用户的所属文件:

我们先使用rhel用户身份创建一个文件,然后查找:

093342786.png

指定文件类型同理,这里不再演示。

通配符* 代表多个字符查找abc 不知道扩展名 用 abc.* 不要写成abc* *是不能直接放在最后,需要和.同时存在通配符?代表一个字符,比如:

093400843.png

cat命令:读取普通文件内容并输出到控制台

格式很简单,直接跟上文件名即可:

093412881.png

这个命令适用于比较小的文件,如果文件内容很长就不适用了。

less命令:进入交互式环境翻页显示文件内容,上下键翻页,q键退出。

093424624.png

093434338.png

交互式环境,Q键退出。

grep命令,查找并显示文件中包含指定字符串的行。

格式:grep [选项] 查找条件 目标文件

比如我们要查找fstab文件中包含ext3的行:

093448168.png

与刚才的less的示例图对比一下,就能理解这条命令的意思了。这条命令输出的就是fstab文件中包含ext3的那一行。

终于写完了,本来以为Linux里面的文件操作很简单呢,结果一直整理到现在,整理的过程中也发现自己不少问题,看来真是老师说的对,听懂了不一定就掌握了,如果你会了之后能给一个什么都不会的人讲明白那才算真正掌握。希望读者也能借鉴这种方法,把学过的东西整理出来,写出一个文字小教程,如果你的教程能让一个没有学过的人看明白,那你就真的掌握了。你帮助别人的同时,自己也得到提升,我想这就是写技术博客的意义所在。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章