第二课 文件,目录管理{上} 2.1~2.16

2.1系统目录结构                                        2.9rm命令

2.2系统目录结构                                        2.10环境变量PATH

2.3ls命令                                                     2.11CP命令                                           

2.4文件类型                                                2.12mv命令

2.5alias命令                                                2.13文档查看cat-more-less-head-tail

2.6相对和绝对路径                                    2.14文件或目录权限chmod

2.7cd命令                                                    2.15更改所有者和所有组chown

2.8创建和删除目录mkdir  rmdir                2.16umask

涉及命令:ls(查看目录的内容)、alias(设定查询文件别名)、which(查询一个命令的路径)、cd(移动到指定位置)、touch(创建一个文件)、mkdir(创建一个目录)、rmdir(删除目录)、 tac(反向查询文件内容)、less(一整屏的显示文件内容)、more(一整屏的显示文件内容)、cat(查看并显示文件内容)、tail(显示文件的后10行)、head(显示文件的后10行)、history(命令历史)、umask(确认创建文件目录的默认权限)、wc -l(文件的行数)、chmod(文件目录的权限)、chown(文件目录的所有者和组)、pwd(查询当前位置)、cp(复制文件或目录)、mv(移动文件或目录)、PATH(环境变量);
 

{1} 系统目录结构(上)

  • list猎取目录或者是文件的{简写ls}。

  • root 上是root底下的家目录。

  • /下面的目录结构如图

  • tree 竖行的模式显示一个文件下都有那些子目录和文件

  • tree--hep 显示常用选项。

  • man用来显示一个文件的帮助文档{如man tree}。

  • 指定最大为二层tree -L 2 /

  • 安装tree命令用yun install -y tree  如图

  • /usr/bin/   /usr/sbin/  /bin/  /sbin/存的都是常用命令如:tree  man  vi  等等之前所有的命令都在这几个目录下面

  • bin和sbin有区分sbin一般都是root用户用的,普通用户没有权限用。

  • bin下的命令普通用户可以用root用户也可以用。

  • boot系统启动相关文件如图

  • dev是特有的一些设备文件比如说 光盘 硬盘 鼠标 键盘全部在aev下面。黄色的都是设备文件。

  • etc是系统的一些配置文件所在的目录。

  • home下面存用户的目录文件。

  • lib以及lib64这两个目录是存系统的库文件的,很多目录都会依赖一些库,绿色文件是库文件,浅绿色的是软连接

  • ldd 可以看命令依赖哪些库如{ldd /bin/ls}如图

{2} 系统目录结构(下

  • CentOS77开始 CentOS就不在区分32位 和64位全部都是64位不存在32位

  • media这是一个媒介目录默认是空的【插一个U盘它会自动到media下面去】

  • mnt是一个临时挂着的目录,默认也是空的,可以吧光驱和新的硬盘挂载在mnt下面。

  • opt也是一个空目录,

  • proc系统启动的进程,它会生成一个pad 每一个进程都会生成一个目录

  • run是一些进程它产生的一些临时文件,run是一重启就会消失的

  • srv也是空的,会存一些服务产生的文件

  • sys存一些系统内核相关的文件

  • tmp是系统的临时目录,权限是任何用户都可以在tmp下 写 删 读

  • usr用户的一些文件会放在这个下面,系统用户所用到的一些命令

  • var 存储系统日志(/var/log/messages 系统重要日志存储的地方)

{3}  ls命令

  • ls  -l 显示文件的详细信息

  •  ls  -i :查看ilod号 (ls -i filename)

  •  ls  -h :以K单位显示文件的大小,配合l使用

  •  ls  -a :显示隐藏文件

  •  ls  -d :只列目录本身

  •  ls  -t :按时间排序

{4} 文件类型

  • 第一列第一位表示这个文件的类型,蓝色表示目录,-表示普通文件

  • 普通文本文档可以用cat查看,但是带颜色的无法查看。被编辑过的文件,二进制。

  • 普通文件,二进制的都会显示-号

  • dev下黄色的表示c,c表示字符串设备 鼠标 键盘 等

  • l (粉绿色) :软链接文件类型

  • b:块设备文件(光驱、磁盘等

  • find命令查看指定文件,命令复杂以后会在讲

  • s(粉色):通信文件

  • d: 目录文件

{5}alias命令

  • 查看命令的具体参数:which 例:which ls 、which ll 

  • alias 命令 (查看系统里面所有的命令别名:alias)

  • which命令查看文件守在的路径的

  • 系统的环境变量名:PATH (就是系统命令一系列的路径:echo $PATH)

  • 自定义一个命令的别名如 alias  aming=‘ls -lha’取消unalias aming

{6} 相对和绝对路径

  • 绝对路径是从 / 根开始的路径,它指定到的目录或者文件具有唯一性,意思是不管目前在哪一个目录下面,你只要使用绝对路径就可以定位到系统任何一个目录或文件。

  • 相对路径:  相对你所在位置的一个路径。

  • pwd命令 ,查看当前目录。

比如我要访问我所在位置是root下,就可以直接访问。这就是相对路径。

  • cd命令cd到一个指定的目录下。

{7}  CD命令

  • cd -  cd - =意思是在当前目录和上一个目录之间切换。

  • 进入用户的home家目录。

  • cd ~ =进入用户的home家目录;同等与cd

  • cd . =表示当前的目录

  • cd..  =进入上一层目录,比如说目前在/etc/sysconfig/目录执行cd..就会进入/etc/,相当于逐级退出的意思如图:

{8} 创建和删除目录mkdir rmdir

  • make directory  {缩写mkdir}创建一个目录.

  • dete命令显示时间的

  • mkdir -pv 可视化  可以看见目录的创建过程。

  • mkdir -p 连续创建多个目录

  • remove  directory{缩写rmdir}删除一个目录,前提是目录是空的。

  • touch命令是创建一个空白文件的。

  • rmdir -p 可以连续删除多个目录

{9} rm命令

  • rm=删除,它既可以删除文件也可以非空的删除目录 remove

  • *是代表所有  ,也可以*.txt

  • 按两下tab键它会把底下的所有文件列出来。

  •  -f 强制的删除。

  • !tree命令:表示使用历史命令里面,上一次最近的tree开头的命令

  • history命令:可以看到之前敲过的历史命令

  • 删除目录的话需要加一个参数 r,rm -r

  • 如果不想提示,想直接删除非空目录,还需要加一个参数f, rm -rf

  • 加v:rm -rfv 可以查看删除全过程。

{10} 环境变量PATH

  • which命令,这个命令可以用来查看一个命令的绝对路径和是否做过别名

  • cp拷贝的意思,以后会单独讲。

  • PATH=$PATH:/tmp/就是在把tmp在加进来,但是开机重启就不在加载命令。

  • echo是用来输出$PATH的值。

  • vi /etc/profile打开这个文件,写入PATH=$PATH:/tmp/每次开关机都会加载命令如图:

  • 如果不想要了,PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/bin ,去掉/tmp/就可以。

  • 也可以 vi /etc/profile 把文件里PATH=$PATH:/tmp/删除

{11}cp命令

  • cp{copy}拷贝的意思,源文件拷贝成目标文件

比如说 /etc/passwd拷贝到/tmp/1.txt下并且改个名字,因为之前存在按y选择覆盖。

  • 拷贝一个目录  cp  -r  拷贝目录源要加斜杠,目标目录也要加如图:

  • !$ 可以代表上一条命令的最后一个参数,以空格或者tab键为分割 如图:

  • 不想让它问是否覆盖/usr/bin/cp 如图:

  • cp  -r  拷贝目录当目标目录已经存在的时候,它会把源目录直接放到目标目录的里面, 如果目标目录不存在,它会把源目录拷贝过来并改名字。

  • {12} mv命令
  • mv {move}移动文件位置,如果在同一个目录下直接mv相当于是改名字,格式 mv[源文件或源目录] [目标文件或目标目录]

  • 比如我把一个文件放在另外一个分区下  mv 1.txt /root/2.txt 如图:

  • 再把ls2放到aming如mv ls2  aming/如图:

  • mv ls2 aming会提示是否覆盖如果不不想提醒用绝对路径如:/usr/bin/mv  ls2  aming/

  • 如果说我把一个目录放到不存在的目录下如图:

  • 当目标文件是目录,且目录存在时,就会把源目录放到目标目录下面。

  • 当目标文件是目录,且目录不存在时,就会把源目录重命名为目标目录名

  • 当目标文件是文件,且文件存在时,会提示是否覆盖掉目标文件

{13} 文档查看cat_more_less_head_tail

  • cat  查看文件内容

  • tac 倒序查看一个文件的内容

  • -A显示所有的内容,包括特殊符号

  • -n 查看文件时,会把行号也显示出来

{2} more  more命令会分屏显示内容,看完一屏后可以使用空格键看下一屏,Ctrl +d 可以向上翻屏 ,Ctrl+f可以向下翻屏。如果想提前退出,可以使用q键。

  • wc查看一个文件行数

  • less和more命令差不多但支持方向键上下也要按q退出,less可以搜索先按一个/cdrom它就会高量显示cdrom这个字符串

  • 如果你还要看哪里还有这个字符串 按n 它提示没有存在就说明没有了, N往前看。

  • ? 这个和 / 的作用是一样的,不过/是从上向下搜索,而?是从下往上搜索。按n从后往上显示上一个,按N从前往后显示下一个

  • 按G光标定位到行首,按g光标定位到行尾

{3}head查看一个文件的行,头十行

  • tail 查看一个文件的尾十行

  • head  -n  2  只看前两行,更改数字选择查看文件几行

  • tail  -n  2 只看后两行,也可以更改数字选择查看文件几行

  • tail  -f 经常用来查看动态文件 的最后10行,比如看日志

{14} 文件或目录权限chmod

  • 第一个表示类型 ,剩下的9位表示权限

  • 是否可读 r=4 是否可写 w=2 是否可执行 x=1   rwx=7  rw-=6  --x=1   rw-r--r--=644

  • 三位一组;2-4位表示文件或目录的所有者的权限,5-7位表示文件所属组对这个文件的权限,8-10位表示出去所有者和所属组外其他用户对它的权限

  • chmod{change  mode}更改目录或文件的权限,如图:

  • 其它用户后面还有个点如:这个点{文件}意味着受制于selinux

  • chmod -R 加上-R选项时更改目录的权限时会将该目录下所有的子目录,子文件都更改权限。级联更改

  • chmod u=rw,g=r,o=r  aming2 这条命令当中,u 表示所有者,g 表示所属组,o表示其他用户最好用数字

  • chmod  a+x  aming 其中a表示所有, 这条命令表示对于这个文件,所有者,所属组,其他用户都有执行权限。

  • chmod  a-x  aming ,,这条命令的意思是,对于这个文件,所有者、所属组、其他用户都没有执行权限

  • 也可以  u-x  u+x  g-x   g+x  o+x   o-x  都是可以的。

{15} 更改所有者和所属组chown

  • chown{change  owner}更改所有者也可以更改所有组。

  • chgrp{change  group}更改文件或目录的所属组

  • chown加:号 在所有者和所有组之间加冒号  一次性更改所有者和所属组

  • chown  :所有组  只更改所属组 。

  • chown -R更改所有组和所有者以及目录下文件的所有者和所有者联级更改。 

{16} umask 

  • 系统概念umask可以更改值 0022是系统root umask默认值, umask值可以确定文件和目录的权限是什么, 用法是umask xxx(3个X代表3个数字应该是4个数字前面是零可以省略)

  • x 执行  没有x目录就打不开

  • 文件用777-umask值022=755,目录666-022=644貌似对其实不一定对 如果umask改为003(rw-rw-rw) - (--- --- -wx)=结果是rw-rw-r--=664就不对了。

  • 实验中,我们得出umask不能用数字减,应该是九位权限位减如图:

总结:

系统目录结构

“家”目录概念:Linux系统里的“家目录”(即用户目录)是存放个人数据。除了“root"(超级管理员)其他用户的设置文件,桌面文件以及个人数据都是存放在各自的用户目录下面。(普通用户模式下的路径,非超级管理员权限)

经常用到的几个目录:

usr/bin :该目录存放的是系统用户使用的应用程序。 
usr/sbin :该目录存放的是超级用户使用的比较高级的管理程序和系统守护程序。 
/bin :是Binary的缩写,该目录存放的是最常用的命令 
/sbin :S就是Super User的意思(超级用户),该目录存放的是系统管理员使用的系统管理程序 
/etc : 该目录下存放的是所有系统管理所需要的配置文件和子目录。 
/var : 该目录存放的是不断扩充且经常修改的目录,包括各种日志文件或者PID文件

Linux各目录及每个目录的详细介绍:
参考 :https://blog.csdn.net/u013239236/article/details/48845251 
如何看一个命令依赖哪个库,例:
ldd /bin/ls

useradd 创建普通用户

例:useradd zhangzhen-03
学会查询帮助文档 - man 
如果不知道一个命令如何使用 就敲: man 命令

 ls命令

ls -l 列出当前目录下所有除隐藏文件之外的所有文件的详细信息,包含权限,所属主,所属组以及文件创建日期和时间。
ls -a 列出当前目录下所有的文件和目录,含有隐藏文件的
ls -lh 列出文件的大小
ls -lta 以时间的顺序排序,从现在到之前顺序
ls -d 列出目录本身
ls -ld 列出显示目录的详细信息

文件类型

第一列是文件的类型
d:目录 
-:普通的文件
b:光盘、光驱、磁盘
s:SQL文件
I:软连接
c:字符串设备

alias命令 (别名)

which 查看一个命令在哪
which 查看一个文件所在的目录

alias 是一个命令组合成的一个新的命令 ,

例:把ls -lha自定义为zhang
alias zhang='ls -lha'
取消指定alias命令:
unalias zhang  

相对和绝对路径

涉及到的命令:

  1. pwd 查看当前在哪个目录
  2. cd 全称:"change directory",进入到哪个目录,如 cd /etc
  3. “*****” 通配符
  4. ! tree 查看最近一次敲打的命令
  5. history 查看所有敲过的命令
  6. man 查看命令怎么使用,如: man rm
  7. history 可以查看历史所有敲过的命令
  8. !tree 或者 !ls 再或者!mkdir 这个前面加"!"的意思是最近一次执行的命令。
概念:
绝对路径:路径的写法一定是由根目录"/"写起的
例:[root@zhangzhen-01 ~]# ls /etc/hostname
相对路径:路径的写法 不是由根目录写起,可以通过"pwd”查看当前在哪个目录下。
例:首先用户进入到/home,然后再进入到test
    cd /home
    cd zhangzhen-03

CD命令(可使用man cd 查看命令如何使用

cd - 表示上一次的目录在哪里,交替键
cd 和 cd ~ 表示回到家目录下,直接一键返回
cd .. 进入到上级目录

 mkdir命令

mkdir命令可以创建目录。

创建的目录前面没有加路径,则是在当前目录下创建目录。

创建的目录前面加了路径,则是在指定路径下创建一个子目录。

mkdir命令语法

mkdir [选项]  [参数]

 常用选项

-p:建立目录的上一层目录不存在的话,先建立上一层的目录,再建立指定目录。

-m <目标属性>:建立目录时,同时设置目录权限。

-v:显示详细信息。

--version:显示命令版本。

 PATH 系统环境变量名

查看echo $PATH 变量内容是什么。
注:如果你的命令在这个目录下面,你就可以直接运行这个命令并生效,如:ls。 可以用which ls查看,alias除外。

 环境变量PATH

命令介绍:
which 查找某个命令的绝对路径
!$ 这个命令可以查看你最后一个命令的参数 (上一条命令最后一个参数)
例:tree !$
cp -r 如果目标目录存在的话,则会拷贝到目标目录下的目录里面,如果目标目录不在的话,则会创建目录放置那里。
wc 可以查看一个文件的行数有多少, 语法:wc -l anaconda-ks.cfg.1 # -l后面跟要查看的文件相对路径或绝对路径

命令cp (拷贝原文件成目标文件)

概念:cp即copy的简写
命令格式为: cp [选项] [来源文件] [目的文件] 
-r : 如果要复制一个目录,必须加-r选项,否则不能复制。
cp -r 如果目标目录存在的话,则会拷贝到目标目录下的目录里面,如果目标目录不在的话,则会创建目录放置那里。

mv命令

mv命令可以对文件和目录进行重命名,或者将一个文件或目录移动到另一个目录里面去。

mv命令的使用方法

mv file1  file2 //更名

mv file1 dir1/ //移动

mv dir1/ dir2/ //更名

mv没有什么常用选项,用到特殊用法,可以man

rm命令

rm命令可以删除指定的文件或目录。也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

rm命令使用方法

语法:

rm [选项] 参数

选项:

-f:强制删除。

-r:递归处理,将指定目录下的文件与目录一起处理。

-i:删除前进行询问,默认选项。

-v:显示详细信息。

--preserve-root:不对根目录进行递归操作,通过环境变量对rm加上这个选项,就不能执行死亡命令 rm -rf /* 了。

文档查看命令 cat more less tail head tac

文档查看命令

查看文件内容的方式有很多种,下面是几个常用的命令。

cat命令

cat命令把文件内容一次性输出到屏幕(滚屏)。

语法:

cat [选项] [参数]

常用选项:

-n:列出行号。

-b:列出行号,空白行不编号。

more命令

more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。不常用。

less命令

less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。

操作方式:

用less命令显示文件时,

用PageUp键 ,ctrl+B向上翻页,

用PageDown键,ctrl+F,空格键向下翻页。

用方向键可一控制单行翻页。

要退出less程序,应按Q键。

head命令

head命令显示文件开头的内容。默认显示前10行。

语法:

head [选项] [参数]

选项:

-n<数字>:指定显示头部内容的行数; -c<字符数>:指定显示头部内容的字符数;

tail命令

tail命令显示文件尾部的内容,默认是尾部10行。

最常用的用法是 -f 选项,动态查看文件内容,常用于查看日志。

语法:

tail [选项] [参数]

选项:

-f:动态显示文件新追加的内容。

-n<数字>:指定显示尾部部内容的行数;

-c<字符数>:指定显示尾部内容的字符数;

文件或目录权限chmod

概念:linux目录或者文件,都会有一个所有者和所属组;
所有者是指文件的拥有者;所属组指是这个文件属于哪一个用户组;
linux这样设置文件属性的目的是为了文件的安全;
所有者(user) 所属组(group) 其他用户(others)

-

目录或文件权限九个字节分为三段,每段三个字节;例:如下表示
第一段表示:所有者的权限;
第二段表示:所属组的权限;
第三段表示:其他用户。

r:表示是否可读 (数字表示4)
w:表示是否可写 (数字表示2)
x:表示是否可执行 (数字表示1)
-rw-r--r-- 
拿这个做例子,最一开始"rw"前面的“-”这个表示文件或目录类型
1.假设:rw-r--r-x=645,第一段4+2=6,第二段4,第三段5.
这样的话,所有者有可读可写不可执行;所属组拥有可读不可写不可执行,其他用户可读可写可执行

例:查看/tmp/zhang/1这个目录的属性
[root@zhangzhen-01 ~]# ls -l /tmp/zhang/1 
-rw-r--r--. 1 root root 0 3月 27 00:07 /tmp/zhang/1
(权限)(目录名)(所有者)(所属组)( 日期 )

更改所有者和所属组chown (change owner)

概念:chown命令可以更改文件的所有者
命令格式如下:
chown [-R] 账户名(root) 文件名 更改文件所有者
chown [-R] 账户名(root):组名(root,中间不加空格) 文件名
-R 选项只适合于目录,作用是级联更改,不仅更改当前目录,连目录里的目录或文件也全部更改

猜你喜欢

转载自blog.csdn.net/weixin_42604768/article/details/81256528