Linux命令-文件\文件夹、用户\用户组(Linux基础笔记第二期)

p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解

目录

目录结构与路径描述方式

Linux的目录结构是一个树型结构

Windows系统可以拥有多个盘符,如C盘、D盘

而Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面
在Linux系统中,路径之间的层级关系用/表示

在Windows系统中,路径之间的层级关系用\表示

文件crud命令

无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
​​command [-options] [parameter]​​

​​command​​: 命令本身

​​-options​​: 可选,非必填 命令的一些选项,可以通过选项控制命令的行为细节

​​parameter​​: 可选,非必填 命令的参数,多数用于命令的指向目标等

语法中的\[\],表示可选的意思。

ls命令

ls命令的作用是列出目录下的内容,语法细节如下:
ls [ -a -l -h ] [ Linux路径]

● -a -l -h是可选的选项

● Linux路径是此命令可选的参数

.

当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录 下的内容

当使用参数时,ls命令的参数表示:指定一个Linux路径,列出指定路径的内容

-a选项:表示all的意思,即列出全部文件(包含隐藏的文件和文件夹);以.开头的就是Linux的隐藏文件/文件夹

-l选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息

-h表示以易于阅读的形式,列出文件大小,如K、M、G;-h选项必须要搭配-l一起使用
当前工作目录:

Linux系统的命令行终端,在启动的时候,默认会加载:

● 当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容

● HOME目录:每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名
通过ls -l可以以列表形式查看内容,并显示权限细节

序号1,表示文件、文件夹的权限控制信息

序号2,表示文件、文件夹所属用户

序号3,表示文件、文件夹所属用户组

举例: drwxr-xr-x,表示:

这是一个文件夹,首字母d表示

所属用户(右上角图序号2)的权限是: 有r有w有x,rwx

所属用户组(右上角图序号3)的权限是: 有r无w有x,r-x(-表示无此权限)

其它用户的权限是: 有r无w有x,r-x

rwx

那么,rwx到底代表什么呢?

r表示读权限

w表示写权限

x表示执行权限

针对文件、文件夹的不同,rwx的含义有细微差别:

.

​​r权限​​

针对文件:可以查看文件内容

针对文件夹:可以查看文件夹内容,如ls命令

.

​​w权限​​

针对文件:可以修改此文件

针对文件夹:可以在文件夹内进行创建、删除、改名等操作

.

​​x权限​​

针对文件:可以将文件作为程序执行

针对文件夹:表示可以更改工作目录到此文件夹,即cd进入

修改文件\文件夹权限-chmod命令

我们可以使用chmod命令,修改文件、文件夹的权限信息。
注意,只有文件、文件夹的所属用户或root用户可以修改。

语法:chmod [-R] 权限 文件或文件夹

选项:-R,对文件夹内的全部内容应用同样的操作

示例:

• chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwxr-x--x

• 其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限

• chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x

.

除此之外,还有快捷写法:chmod 751 hello.txt 将hello.txt的权限修改为751

权限的数字序号

权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。数字的细节如下:r记为4,w记为2,x记为1,可以有:

0:无任何权限,即---

1:仅有x权限,即--x

2:仅有w权限,即-w-

3:有w和x权限,即-wx

4:仅有r权限,即r--

5:有r和x权限,即r-x

6:有r和w权限,即rw-

7:有全部权限,即rwx

所以751表示:rwx(7) r-x(5) --x(1)

目录切换-cd命令

当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录,我们可以通过cd命令,更改当前所在的工作目录。

cd命令来自英文:Change Directory

语法:cd [Linux路径]

· cd命令无需选项,只有参数,表示要切换到哪个目录下

· cd命令直接执行,不写参数,表示回到用户的HOME目录

修改文件\文件夹所属权限-chown命令

使用chown命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:chown -R 用户 : 用户组 文件或文件夹

选项,-R,同chmod,对文件夹内全部内容应用相同规则

选项,用户,修改所属用户

选项,用户组,修改所属用户组

:用于分隔用户和用户组

示例:

chown root hello.txt,将hello.txt所属用户修改为root

chown :root hello.txt,将hello.txt所属用户组修改为root

chown root:group1 hello.txt,将hello.txt所属用户修改为root,用户组修改为group1

chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

目录切换-pwd命令

通过ls来验证当前的工作目录,其实是不恰当的。

我们可以通过pwd命令,来查看当前所在的工作目录。

pwd命令来自:Print Work Directory

语法:pwd

·pwd命令,无选项,无参数,直接输入pwd即可

创建文件夹-mkdir命令

通过mkdir命令可以创建新的目录(文件夹)

mkdir来自英文:Make Directory

语法:mkdir [-p] Linux路径

· 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可

· -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

创建文件-touch命令

可以通过touch命令创建文件

语法:touch Linux路径

·touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用

查看文件内容-cat命令

准备好文件内容后,可以通过cat查看内容。

语法:cat Linux路径

· cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用。

分页查看文件内容-more命令

more命令同样可以查看文件内容,同cat不同的是:

· cat是直接将内容全部显示出来

· more支持翻页,如果文件内容过多,可以一页页的展示

语法:more Linux路径

· 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

复制文件\文件夹-cp命令

cp命令可以用于复制文件\文件夹,cp命令来自英文单词:copy

语法:cp [-r] 参数1 参数2

· -r选项,可选,用于复制文件夹使用,表示递归

· 参数1,Linux路径,表示被复制的文件或文件夹

· 参数2,Linux路径,表示要复制去的地方

移动文件\文件夹-mv命令

mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move

语法:mv 参数1 参数2

· 参数1,Linux路径,表示被移动的文件或文件夹

· 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

删除文件\文件夹-rm命令

rm命令可用于删除文件、文件夹

rm命令来自英文单词:remove

语法:rm [-r -f] 参数1 参数2 ...... 参数N

· 同cp命令一样,-r选项用于删除文件夹

· -f表示force,强制删除(不会弹出提示确认信息)

· 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示

· 所以一般普通用户用不到-f选项

· 参数1、参数2、...、参数N表示要删除的文件或文件夹路径,按照空格隔开

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

rm命令支持通配符*,用来做模糊匹配

符号*表示通配符,即匹配任意内容(包含空),示例:

test*,表示匹配任何以test开头的内容

*test,表示匹配任何以test结尾的内容

test,表示匹配任何包含test的内容

查找命令的程序文件-which命令

我们在前面学习的Linux命令,其实它们的本体就是一个个的二进制可执行程序和Windows系统中的.exe文件,是一个意思。

我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里

语法: which 要查找的命令

按文件名查找文件-find命令

在Linux系统中,我们可以通过find命令去搜索指定的文件。

语法:find 起始路径 -name "被查找文件名"

文件名支持使用通配符*来做模糊查询。

● 符号*表示通配符,即匹配任意内容(包含空),示例:

● test*,表示匹配任何以test开头的内容

● *test,表示匹配任何以test结尾的内容

● test,表示匹配任何包含test的内容

基于通配符的含义,可以结合find命令做文件的模糊查询。

按文件大小查找文件-find命令

语法:find 起始路径 -size +- n[kMG]

• +、- 表示大于和小于

• n表示大小数字

• kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

示例:

• 查找小于10KB的文件:find / -size -10k

• 查找大于100MB的文件:find / -size +100M

• 查找大于1GB的文件:find / -size +1G

软连接-ln命令

在系统中创建软链接,可以将文件、文件夹链接到其它位置。类似Windows系统中的快捷方式

语法:ln -s 参数1 参数2

● -s选项,创建软连接

● 参数1:被链接的文件或文件夹

关键字过滤-grep命令

可以通过grep命令,从文件中通过关键字过滤文件行。

语法:grep [-n] 关键字 文件路径

选项-n,可选,表示在结果中显示匹配的行的行号。

参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用""将关键字包围起来

参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口

统计-wc命令

可以通过wc命令统计文件的行数、单词数量等

语法: wc [-c -m -l -w] 文件路径

选项,-c,统计bytes数量

选项,-m,统计字符数量

选项,-l,统计行数

选项,-w,统计单词数量

参数,文件路径,被统计的文件,可作为内容输入端口

管道符

学习了grep命令后,我们在来学习一个新的特殊符号,管道符:|

管道符的含义是:将管道符左边命令的结果,作为右边命令的输入

输出内容-echo命令

可以使用echo命令在命令行内输出指定内容

语法:echo 输出的内容

无需选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围

比如在终端上显示:Hello Linux

带有空格或\等特殊符号 ,建议使用双引号包围

因为不包围的话,空格后很容易被识别为参数2

反引号`

比如:echo pwd

输出为pwd

本意是想,输出当前的工作路径,但是pwd被作为普通字符输出了。

我们可以通过将命令用反引号(通常也称之为飘号)将其包围被包围的内容,会被作为命令执行,而非普通字符

重定向符:>和>>

两个特殊符号,重定向符:>和>>
>,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>,将左侧命令的结果,追加写入到符号右侧指定的文件中

查看文件尾部-tail命令

使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改,语法如下:
tail [-f -num] Linux路径

参数,Linux路径,表示被跟踪的文件路径

选项,-f,表示持续跟踪

选项,-num,表示查看尾部多少行,不填默认10行

vi/vim

vi\vim是visual interface的简称,是Linux中最经典的文本编辑器。同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
vi/vim编辑器的三种工作模式

命令模式(Command mode)

命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。

此模型下,不能自由进行文本编辑。

输入模式(Insert mode)

也就是所谓的编辑模式、插入模式。

此模式下,可以对文件内容进行自由编辑。

底线命令模式(Last line mode)

以:开始,通常用于文件的保存、退出。




用户相关命令

root

无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理;而在Linux系统中,拥有最大权限的账户名为:root(超级管理员)

普通用户的权限, 一般在其HOME目录内是不受限的

一旦出了HOME目录, 大多数地方, 普通用户仅有只读和执行权限, 无修改权限

切换用户 -su和exit命令

在前面,我们接触过su命令切换到root账户。

su命令就是用于账户切换的系统命令,其来源英文单词:Switch User

语法:su [-] 用户名]

符号-是可选的,表示是否在切换用户后加载环境变量

参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root

切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d

使用普通用户,切换到其它用户需要输入密码,如切换到root用户

使用root用户切换到其它用户,无需密码,可以直接切换

临时root权限-sudo命令

在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。

但是我们不建议长期使用root用户,避免带来系统损坏。

我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。

语法:sudo 其它命令

在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权

但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

用户组相关命令

在Linux系统中可以:配置多个用户、配置多个用户组、用户可以加入多个用户组中
inux中关于权限的管控级别有2个级别,分别是:

· 针对用户的权限控制

· 针对用户组的权限控制

比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。
以下命令需root权限

创建用户组:groupadd 用户组名

删除用户组:groupdel 用户组名
以下命令需root权限

创建用户:useradd [-g -d] 用户名

选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g

选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

.

删除用户:userdel [-r] 用户名

选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留

.

查看用户所属组:id [用户名]

选项:用户名,被查看的用户,如果不提供则查看自身

.

修改用户所属组:usermod -aG 用户组 用户名,将指定用户添加到指定用户组
使用getent命令,可以查看当前系统中有哪些用户

语法:getent passwd

共有7份信息, 分别是:用户名:密码(x):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言