linux基础
最后更新于
最后更新于
Linux 系统目录结构是一个由各种目录和文件组成的树形结构,每个目录都有特定的用途。在这篇文章中,我们将讨论 Linux 系统中最常见的目录,并解释它们的用途
登录系统后输入ls
命令查看系统目录
Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位并拥有不同的权限。在 Linux 系统中,通常使用 chown
命令来修改文件或目录的所有者,chmod
命令则用于设置用户的权限。
chown
(change owner) :用于修改文件或目录的所有者和组。
chmod
(change mode) :用于修改文件或目录的权限,如读、写、执行权限
在Linux 中可使用 ll
或者 ls –l
命令来显示一个文件的属性以及文件所属的用户和组
如上图所示, Mail文件的第一个属性用d表示, 则代表此文件是一个目录文件, 在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等
当为 d 则是目录
当为 - 则是文件;
若是 l 则表示为链接文档(link file);
若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
如下图所示, 每个文件的属性由左边第一部分的 10 个字符来确定, 从左至右用 0-9 这些数字来表示。
第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限, 第4-6位确定属组(所有者的同组用户)拥有该文件的权限, 第7-9位确定其他用户拥有该文件的权限。
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。在 Linux 系统中,用户是按组分类的,一个用户可以属于一个或多个组。
文件所有者以外的用户可以分为文件所属组的同组用户和其他用户。这些用户对文件的访问权限可能不同,因此在 Linux 系统中,需要对文件的访问权限进行管理。
在如下实例中, mysql 文件是一个目录文件, 属主和属组都为 mysql, 属主有可读、可写、可执行的权限; 与属主同组的其他用户有可读和可执行的权限; 其他用户也有可读和可执行的权限。而对于root用户来说, 文件的权限对其不起作用
chgrp
: 更改文件属组命令语法如下所示:
-R: 如果加上-R的参数,那么该目录下的所有文件的属组都会更改
chown
: 更改文件属主, 也可同时修改文件属组命令语法如下所示:
进入/root
目录(~)将install.log
的拥有者改为bin
这个账号:
将install.log
的拥有者与群组改回为root
chmod
: 更改文件权限首先了解下文件的权限等级, Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
u
表示文件所有者, g
表示与文件拥有者属于同一个群体, o
表示其他人, a
表示这三者皆是
+
表示添加权限、-
表示取消权限、=
表示设定唯一权限
r
表示可读取, w
表示可写入, x
表示可执行
使用符号模式可以设置多个项目: who(用户类型)、operator(操作符)、permission(权限)
以下是各个项目的符号模式表:
chmod
命令可以使用八进制来指定权限
chmod
命令使用实例如下表格所示:
umask
:更改文件默认权限创建文件的默认权限为rw-rw-rw-
, 创建目录的默认权限为rwxrwxrwx
使用umask
命令即可查询umask值, umask值表示从默认权限了去掉一些权限,然后成为最终的默认权限
可以看到umask的值为0022,第一个0为特殊权限暂且不用理他,后面三个数字分别代表u(文件拥有者)、g(用户组用户)、o(其他用户)的权限变化。u为0,权限没发生改变;g为2,权限-2,失去w(写)权限;o为2,同理
新创建一个文件, 其默认权限为rw-rw-rw-
, 由于umask值为0022, 即group和Other Users失去w权限, 最终文件的权限为rw-r--r--
新创建一个目录, 其默认权限为rwx-rwx-rwx
, 由于umask值为0022, 即group和Other Users失去w权限, 最终文件的权限为rwxr-xr-x
还可使用umask
命令修改文件默认权限
ls
ls
命令是linux系统中用来列出文件和目录的常用命令,它可以显示文件和目录的名称、权限、大小、修改时间等信息
以下是ls
命令的常用参数:
-a
:列出全部的文件,连同隐藏文件
-d
:仅列出文件目录,而不是列出目录内的文件数据
-l
:长数据串列出,包含文件的属性与权限等等数据
1.列出当前所有文件(包含隐藏文件)
2.列出当前目录下的文件属性
cd
cd命令是change directory的缩写,用于改变当前工作目录
1.使用绝对路径切换至test目录
2.使用相对路径切换至test目录
3.返回到家目录,即root目录
4.返回上级目录
pwd
pwd命令用于显示当前工作目录的绝对路径, 它是print working directory的缩写
下面是pwd命令的常用参数:
-p
:显示出确实的路径,而非使用链接 (link) 路径
1.列出当前所在目录
2.显示确实的路径, 而不显示使用链接的路径
为啥加了-P后显示的是"/var/spool/mail"呢?因为/var/mail 是链接档,链接到 /var/spool/mail
mkdir
mkdir
命令用于在Linux系统中创建新目录
下面是mkdir
命令的常用参数:
-m
:指定新创建目录的权限
-p
:如果指定的路径不存在则一并创建
1.创建新目录
2.创建多层目录
3.创建指定权限的目录
rmdir
rmdir
用于删除空目录, 若目录不为空则报错, 以下是rmdir
命令的常用参数
-p
:从该目录起,一次删除多级空目录
1.删除一个空目录
2.删除多层空目录
rm
rm
命令用于删除文件或目录,不管其是否为空
-f
:就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i
:互动模式,在删除前会询问使用者是否动作
-r
:递归删除, 最常用删除整个目录
1.删除某个目录且询问是否要删除
2.删除整个test目录
cp
cp
命令用于复制或移动文件和目录, 以下是cp
命令的常用参数:
**-f:**强制复制,若目标文件已经存在且无法开启,则移除后再尝试复制。
**-i:**在覆盖时会先询问用户是否继续,防止误操作。
**-l:**创建硬链接,而非复制文件本身。
**-p:**复制文件的权限和时间戳,适用于备份。
**-r:**递归复制,用于目录的复制。
**-s:**复制为符号链接,也叫快捷方式。
**-u:**仅当目标文件较旧时才更新。
1.将 root 目录下的 .bashrc
复制到 /tmp
下,并命名为 bashrc
2.将root/test
目录复制到/root/file
目录中
3.将/root/test/database.db
备份名为database_backup.db
mv
mv
命令用于移动文件和目录, 或修改名称, 以下是mv
命令的常用参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
1.更改test目录名称为test1
2.将当前目录的12.txt文件移动至上级目录
cat
cat
命令是一种用于查看文件内容的命令,它可以将文件的内容直接输出到标准输出
以下是cat
命令常用参数:
-A :显示所有字符,包括特殊字符
-b :显示行号,仅针对非空白行
-E :在每行末尾显示$字符
-n :显示行号,包括空白行
-T :将制表符显示为^I
-v :显示不可见字符
1.查看12.txt文件的内容
2.把12.txt文件的内容加上行号输入至34.txt文件
3.清空12.txt文件
/dev/null是Linux系统中的一个特殊文件,写入/dev/null的数据都会被丢弃。这条命令将/dev/null的内容重定向输出到12.txt文件中,由于/dev/null文件内容为空,所以12.txt文件的内容会被清空
tac
tac
与cat
命令刚好相反,文件内容从最后一行开始显示
1.从末行开始显示34.txt的文件内容
more
一页一页的显示文件内容, 只能往后翻
在 more 这个程序的运行过程中,有如下几个键可以按:
空白键 (space): 向下翻一页
Enter: 向下翻一行
/字串: 代表在这个显示的内容当中, 向下搜寻"字符串"这个关键字