linux系统管理操作指令学习笔记(二)管理好文件

Linux操作系统完全是小白一枚,最近在跟着视频学习linux系统法管理的操作指令,特此记录,一方面方便自己以后的查询,另一方面也希望能给大家提供一些资料。另外,在我的资源点击打开链接里有鸟哥的linux私房菜的pdf书,大家可以下载学习。另外这个系列的博客是我在学习视频的时候的笔记,视频链接点击打开链接

1/切换创建和删除目录。

linux目录的基本架构(基本上所有的linux发行版本都遵循了linux基金会发布的标准文件系统架构规范):根据FHS的规定,linux有一个树形的目录:其中最重要的是根目录,所有的目录都位于根目录下。FHS就规定了linux根目录下该有哪些目录及应该存放的数据。根目录下至少应该包括12个目录并各自存放着不同用途的数据。

1/    /bin:存放着可执行命令文件

2//boot:放着系统核心文件和开机文件

3//dev:系统设备相关文件

4//etc:系统主要的配置文件

5//home:除根用户外其他用户的家目录,默认情况下,每个用户都在该目录下有一个自己的私人目录

6//lib:系统和程序运行所要调用的库函数文件

7//root:root用户的家目录

8//sbin:放置着根目录才能够执行的命令文件

9//srv:放置着服务启动之后需要访问的数据,如web服务所需要的网页数据,就默认存放在/srv/www/目录下

10/ /tmp:程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下

11//opt:第三方软件建议安装目录,也即非本发行版本所提供的软件,建议放置在此目录下

12//media:放着移动设备相关文件,如光驱/u盘相关数据都放在此目录下

当使用linux时,我们总是处于某个目录中,这个所处的目录就被称为工作目录,登陆系统时,初始的默认工作目录,总是登陆用户的家目录,也即登录用户的私人目录。

可用pwd命令显示当前完整的工作目录:

wyt@wyt-OptiPlex-3020:~$ pwd
/home/wyt
wyt@wyt-OptiPlex-3020:~$ 

可以用cd(change directory)命令来切换工作目录:cd+目录名称切换到别的目录下。例如:

wyt@wyt-OptiPlex-3020:~$ pwd
/home/wyt                                %原先的工作目录
wyt@wyt-OptiPlex-3020:~$ cd /tmp                     %切换命令
wyt@wyt-OptiPlex-3020:/tmp$ pwd
/tmp %切换后的工作目录
wyt@wyt-OptiPlex-3020:/tmp$ 

为方便我们操作linux的外壳程序,bash提供了一些特殊字符用于代表特定目录,这些特殊目录有如下几种:

1/“.”表示当前工作目录,例如cd   ./dir01 就表示切换到当前目录中的dir01目录中。

2/“..”表示工作目录上层目录,例如cd  ../dir02就表示切换到上层目录中的dir02目录中

3/“-”表示前一个工作目录,例如cd - 表示退回到上一个工作目录中,也就是dir01目录中

4/“~”表示用户的家目录,例如cd  ~表示切换到当前登录用户,cd  ~nblinux表示切换到nblinux用户的家目录中。

我们可以用mkdir(make directory)来创建目录,例如我们您在当抢目录下创建一个名为sample的目录,并切换到此目录下,并用pwd显示当前完整的工作目录:

wyt@wyt-OptiPlex-3020:~$ mkdir /tmp/sample
wyt@wyt-OptiPlex-3020:~$ cd /tmp/sample
wyt@wyt-OptiPlex-3020:/tmp/sample$ pwd
/tmp/sample
wyt@wyt-OptiPlex-3020:/tmp/sample$ 

切换到上层目录中

wyt@wyt-OptiPlex-3020:/tmp/sample$ cd ..
wyt@wyt-OptiPlex-3020:/tmp$ 

通过添加-p选项来创建嵌套目录(创建dirlevel01,然后再嵌套的创建dirlevel02):

wyt@wyt-OptiPlex-3020:/tmp$ mkdir -p /tmp/dirlevel01/dirlevel02
wyt@wyt-OptiPlex-3020:/tmp$ cd /tmp/dirlevel01/dirlevel02
wyt@wyt-OptiPlex-3020:/tmp/dirlevel01/dirlevel02$ pwd
/tmp/dirlevel01/dirlevel02

我们可以用rmdir(remove directory)来删除目录:

例如,我们要将刚刚创建的sample目录删除,只需要将需要删除的目录名跟在命令后面就可以了。

wyt@wyt-OptiPlex-3020:/tmp/dirlevel01/dirlevel02$ cd ..
wyt@wyt-OptiPlex-3020:/tmp/dirlevel01$ cd ..
wyt@wyt-OptiPlex-3020:/tmp$ rmdir sample
wyt@wyt-OptiPlex-3020:/tmp$ cd sample
bash: cd: sample: 没有那个文件或目录
wyt@wyt-OptiPlex-3020:/tmp$ 

特别需要注意的是rmdir只能删除空目录,例如我们删除dirlevel01的话,由于该目录中还存在dirlevel02,所以:

wyt@wyt-OptiPlex-3020:/tmp$ rmdir dirlevel01
rmdir: 删除 "dirlevel01" 失败: 目录非空
wyt@wyt-OptiPlex-3020:/tmp$ 

当我们对工作目录下的文件进行操作的时候,有两种指定文件路径的方式,以创建目录为例:1/wyt@wyt-OptiPlex-3020:~$ mkdir /tmp/sample,在mkdir后面跟上了要创建目录的完整路径,这种路径被称为绝对路径,要从根目录开始写;另一种选择是从根目录到当前文件目录省略,例如wyt@wyt-OptiPlex-3020:/tmp$ rmdir sample,并没有跟上完整路径,根目录到当前路径的部分略去了,这种路径被称为相对路径,相对于当前的工作目录。

2/列出文件和文件属性

ls  文件名(列出该文件)/目录名(列出该目录下的文件)/none(none的话就列出当前所处工作目录下的文件)

ls命令往往带选项使用,常用的有-a和-l。-a表示列出包括隐藏文件(以.打头)在内的所有的文件;-l表示以长格式列出文件,也就是除文件名外,还要列出文件的详细属性信息。-a和-l可以连用,表示以长格式列出指定目录下的所有文件,第一字段(-rwxr-xr--)表示文件的类型和权限,第三字段表示文件的拥有者(只有一个),第四字段表示文件的用户组(用户可以有多个)。

-rwxr-xr--:r:表示读权限,w:表示写权限,x:表示执行权限,-表示没有相应的权限。

rwx:对文件拥有者可读可写可执行,r-x:对文件用户组里的用户是可读和可执行的,r--:对其他用户只能读。

我们可以用一个命令来修改文件的访问属性,chmod,例如chmod  700 hello.sh,700表示的是111000000,也就是这个干文件对她的拥有者可读可写可执行,但是对用户阻力的用户和其他用户则是不可读不可写不可执行的。

我们还可以用一个命令来修改文件的拥有者和从属用户组属性,chown,例如 chown   文件的拥有着:从属的用户组   hello.sh,当然如果只改文件拥有者,可以把冒号及后面的部分去掉,如果只修改从属的用户组,冒号前面部分可以省去(但冒号要保留)。

-rwxr-xr--中的第一个字段表示的是文件的类型,d表示目录文件,-表示普通文件,c表示字符设备文件,b表示块

设备文件,l表示符号链接文件。

3/拷贝/剪切/删除/创建文件

1、拷贝文件命令:cp(copy),cp命令后可以根两个参数:cp 【要拷贝的文件/文件列参数】 【目的文件名/目的目录】

第二个参数的目的文件名表示在拷贝的同时将这个文件重新命名。

例如:cp   /tmp/f1  ~表示将f1文件拷贝到当前用户的家目录中去

cp  /tmp/f1  ~/f2表示将f1拷贝到家目录中去并且重新命名为f2.

cp也可以同时拷贝多个文件 cp  /tmp/f1  /tmp/f2   /tmp/f3  ~表示将tmp中的f1,f2,f3拷贝到家目录中(他们之间只需要用空格隔开就可以了)。

cp还可以拷贝整个目录,需要在命令后面加一个-r: cp  -r  /tmp/f1  ~表示将/tmp/f1目录拷贝到当前用户的家目录中去。

使用cp时需要注意:1/在拷贝文件时,如果在目标目录中已有同名文件的存在,cp命令会默认询问用户是否覆盖,用户同意后cp命令才会执行。如果有批量同名文件存在的话,显然是件非常麻烦的事,这时可以在cp命令后跟上一个-f命令,并在cp命令前加上一个反斜杠命令即\cp  -f  /tmp/f1   ~,那么cp命令就会强制覆盖所有同名的文件了。

2/在cp命令拷贝文件时,文件的属性包括文件拥有者、文件从属组和访问权限位都有可能发生变化,会导致目标文件中的用户无法修改和执行这个文件,因此如果要原原本本的将文件拷贝过来,还要在cp命令后面加上-p选项,即

cp  -p   /tmp/f1  ~。当然使用-p这个选项的前提是,登录用户对这个文件有写权限才行。

2、移动文件命令mv(move)

mv与cp命令相似:mv  【要移动的文件/文件列表/目录】   【目的文件名/目的目录】,mv命令既可以移动一个文件也可以移动多个文件或者移动整个目录,但与cp命令不同,mv命令不需要加任何选项。

在使用mv时也有两点需要注意:1、与cp相同,在移动文件时,如果在目标目录中已有同名文件的存在,mv命令会默认询问用户是否覆盖,用户同意后mv命令才会执行。如果有批量文件相同,也是像cp一样在后面加-f选项。

2、linux中并没有专门的重命名文件的命令,mv可以实现这个功能,也就是从原本目录移动到原本目录,路径不变只改变文件名就可以了。如 mv  ./f1   ./f1_rename

3、删除文件rm(remove)

rm 【要删除的文件/文件列表/目录】

rm可以删除单个多个文件也可以删除整个目录,例如将当前用户家目录下的f1文件删除:rm  ./f1  ./f2

用rm文件删除整个目录时需要在rm后面加上-R选项

如果要批量删除文件的话就需要在rm后面加上 -f选项,不让他询问直接删除文件。-fR选项就是批量删除整个目录,也就是说-f选项是要求不询问的。

4、创建文件touch

touch  【要创建的文件名】命令创建的是一个没有任何内容的空文件

touch  ./emp表示在当前路径下创建了一个emp的空文件。在使用touch时需要注意,如果touch后面所跟的文件已经存在的话,touch将会改变这个文件的时间戳属性

4/链接文件

符号链接文件:类似于windows下的快捷方式,创建符号链接文件:ln(link) -s(symbolic 说明创建的是符号链接文件) 【链接指向的文件】 【链接名】

例如:ln  -s  /tmp/hello.sh   ./hello_slink

虽然我们可以用符号链接文件来读写或执行文件,但这不代表符号链接文件和源文件是同一个文件。如果符号链接文件名指向的源文件删除,那么在执行符号链接文件时就会出现没有那个文件的提示,名字也会变成红色。这时就称符号链接文件断裂了。

符号链接应用灵活,可以为任意文件创建符号链接。

硬链接文件:首先要明白linux文件是如何存储的。在linux中当划分磁盘分区并格式化的时候,整个分区会被划分成两个部分,inode区和data block区。inode-number和文件的其他属性信息放在inode区,文件实际数据放在data block区。在linux中,我们需要用文件的inode来找到存放文件数据的data block。在一个硬盘分区中不可能又两个文件公用一个inode,当然也就不可能有两个文件的inode-number 是一样的,可以用ls -il来显示inode-number属性。inode就相当于书的目录,data block 就相当于是他的内容。linux存取文件的过程就是,通过文件名,找到对应的inode-number,然后找到文件的inode,最后找到文件的数据。弄懂了这个过程我们就可以解释硬链接的概念了,就是在目录这张表中,让一个inode-number对应了多个文件名,文件inode和数据还是一份没有变,只不过文件多了一个名字,这个名字就被称为硬链接,创建硬链接:ln 【链接指向的文件】 【链接名】(链接名可以有多个),但是他们本质上是同一个文件,只不过有多个名字罢了,他们的inode-number是一样的,我们可以通过他们中的任意一个文件来进行读写和执行操作。当把源文件删除时,只是文件的硬链接数目会减少,但是不会像符号链接一样断裂。这是由于一个文件有了三个名字,他们都指向同一个文件,删除了一个文件只是相当于将某个文件名从系统中移除了,我们仍然可以通过余下的文件名找到,除非都删除了,我们才无法通过文件名找到文件inode,进而访问文件数据,文件这才算真正被删除了。硬链接由于文件系统的限制不如符号链接灵活,注意:1、强烈不推荐为目录创建硬链接,容易造成目录遍历死循环,2、不能跨硬盘分区创建硬链接,因为在不同的分区中,文件的inode-number不再唯一






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值