Ubuntu入门学习

Shell命令

本质:终端敲命令

Shell命令的格式
如下:

command -options [argument]

command: Shell命令名称。
options:选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。
argument Shell命令是可以带参数的,也可以不带参数运行。

1、目录信息查看命令 ls

文件浏览是最基本的操作了, Shell下文件浏览命令为 ls,格式如下
ls [选项 ] [路径 ]
ls命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,
它的主要参数有:

-a 显示所有的文件以及子目录,包括以“ “.”开头的隐藏文件。
-l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
-t 将文件按照创建时间排序列出。
-A 和 -a一样,但是不列出“ “.””(当前目录 )和“ “..””(父目录 )。
-R 递归列出所有文件,包括子目录中的文件。

Shell命令里面的参数是可以组合在一起用的,比如组合“ “-al”就是显示所有文件的详细信息,包括以“ “.”开头的隐 藏文件,

2、目录切换命令 cd

要想在 Shell中切换到其它的目录,使用的命令是 cd,命令格式如下
cd [路径 ]
路径就是我们要进入的目录路径,比如下面所示操作:
cd / //进入到根目录“ “/”下 Linux系统的根目录为“ “/””,
cd /usr //进入到目录“ “/usr”里面。
cd … //进入到上一级目录。
cd ~ //切换到当前用户主目录

3、当前路径显示命令 pwd

pwd命令用来显示当前工作目录的绝对路径,不需要任何的参数,使用如图

4、系统信息查看命令 uname

要查看当前系统信息,可以使用命令 uname,命令格式如下
uname [选项 ]
可选的选项参数如下:

-r 列出当前系统的具体内核版本号。
-s 列出系统内核名称。
-o 列出系统信息。

5、清屏命令 clear

clear命令用于清除终端上的所有内容,只留下一行提示符。

6、切换用户执行身份命令 sudo

Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的就是超级用户 root,有时候我们执行一些操作的时候是需要用 root用户身份才能执行,比如安装软件。

7、添加用户命令 adduser

在讲解 sudo命令的时候我们已经用过命令“ adduser”,此命令需要 root身份去运行。命令格式如下:
adduser [参数 ] [用户名 ]

8、删除用户命令 deluser

前面讲了添加用户的命令,那肯定也有删除用户的命令,删除用户使用命令“ deluser”,命令参数如下:
deluser [参数 ] [用户名 ]

9、切换用户命令 su

前面在讲解命令“ sudo”的时候说过 sudo”是以 root用户身份执行一个命令,并没有更改当前的用户身份,所有需要 root身份执行的命令都必须在前面加上“ sudo”。命令su可以直接将当前用户切换为 root用户,切换到 root用户以后就可以尽情的进行任何操作了!因为你已经获得了系统最高权限,在 root用户下,所有的命令都可以无障碍执行,不需要在前面加上sudo su”命令格式如下
su [选项 ] [用户名 ]

10、显示文件内容命令 cat

查看文件内容是最常见的操作了,在 windows下可以直接使用记事本查看一个文本文件内容, linux下也有类似记事本的软件,叫做 gedit,找到一个文本文件,双击打开,默认使用的就是 gedit

就是命令“ cat”,命令格式如下
cat [选项 ] [文件 ]
选项主要参数如下:

-n 由 1开始对所有输出的行进行编号。
-b 和 -n类似,但是不对空白行编号。
-s 当遇到连续两个行以上空白行的话就合并为一个行空白行。

11、显示和配置网络属性命令 ifconfig

ifconfig是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络
属性,也可以通过此命令配置网络属性,比如设置网络 IP地址等等,此命令格式如下:
ifconfig interface options | address
主要参数如下:

interface 网络接口名称,比如 eth0等。
up 开启网络设备。
down 关闭网络设备。
add IP地址,设置网络 IP地址。
netmask add 子网掩码。

ens33和 lo ens33是我的电脑实际使用的网卡, lo是回测网卡。可以看出网卡 ens33的 IP地址为 192.168.31.235,我们使用命令 ifconfig”将网卡 ens33的IP地址改为 192.168.31.20在使用命令“ ifconfig”修改网卡 ens33的 IP地址的时候使用了sudo”,说明在 Ubuntu下修改网卡 IP地址是需要 root用户权限的。当修改完以后使用命令ifconfig ens33”再次查看网卡 ens33,发现网卡 ens33的 IP地址变成了192.168.31.20

12、系统帮助命令 man

Ubuntu系统中有很多 命令,这些命令都有不同的格式,不同的格式对应不同的功能,要完全记住这些命令和格式几乎是不可能的,必须有一个帮助手册,当我们需要了解一个命令的详细信息的时候查阅这个帮助手册就行了。 Ubuntu提供了一个命令来帮助用户完成这个功能,那就是“ man”命令,通过 man”命令可以查看其它命令的语法格式、主要功能、主要参数说明

man命令格式如下
man [命令名 ]

13、 系统重启命令 reboot

通过点击 Ubuntu主界面右上角的齿轮按钮来选择关机或者重启系统,同样的我们也可以

14、系统关闭命令 poweroff

使用命令“ reboot”可以重启系统,使用命令 poweroff”就可以关闭系统,在终端中输入命令“ poweroff”然后按下回车键即可关闭 Ubuntu系统,如图

15、软件安装命令 install

开发。命令“ install
格式如下:
install [选项 ]… [-T] 源文件 目标文件
或: install [选项 ]… 源文件 … 目录
或: install [选项 ]… -t 目录 源文件 … 或: install [选项 ]… -d 目录 …

install”命令是将文件 (通常是编译后的文件 )复制到目的位置,在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。在第四种形式会创建指定的目录。命令“ install”通常和命令 apt-get”组合在一起使用的,关于“ apt-get”命令我们稍后会讲解。

APT下载工具

1、更新本地数据库

如果想查看本地哪些软件可以更新的话可以使用如下命令:
sudo apt-get update
这个命令会访问源地址,并且获取软件列表并保存在本电脑上

2、检查依赖关系

有时候本地某些软件可能存在依赖关系,所谓依赖关系就是 A软件依赖于 B软件。通过如下命令可以查看依赖关系,如果存在依赖关系的话 APT会提出解决方案:
sudo apt-get check

3、软件安装

这个是重点了,安装软件,使用如下命令:
sudo apt-get install package-name
可以看出上述命令是由“ apt-get”和 install”组合在一起的 package-name”就是要安装的软件名字,“ apt-get”负责下载软件 install”负责安装软件。比如我们要安装软件 Ubuntu下的串口工具“ minicom”,我们就可以使用如下命令sudo apt-get install minicom执行上述命令以后就会自动下载和安装 minicom软件

4、软件更新

有时候我们需要更新软件,更新软件的话使用命令:
sudo apt-get upgrade package-name
其中 package-name为要升级的软件名字,比如我们升级刚刚安装的

5、卸载软件

如果要卸载某个软件的话使用如下命令:
sudo apt-get remove package-name

Ubuntu下文本编辑

Gedit编辑器

ubuntu自带的文本编辑器,窗口式

VI/VIM编辑器

在终端模式下进行文本编辑或者修改文件就可以使用 VI/VIM编辑器,指令式

VIM编辑器有 3种工作模式:输入模式、指令模式和底行模式,通过切换不同的模式可以完成不同的功能,我们就以编辑一个文本文

VIM默认是以只读模式打开的文档,因此我们要切换到输入模式,切换到输入模式的命令如下:

i 在当前光标所在字符的前面,转为输入模式。
I 在当前光标所在行的行首转换为输入模式。
a 在当前光标所在字符的后面,转为输入模式。
A 在光标所在行的行尾,转换为输入模式。
o 在当前光标所在行的下方,新建一行,并转为输入模式。
O 在当前光标所在行的上方,新建一行,并转为输入模式。
s 删除光标所在字符。
r 替换光标处字符。

最常用的就是 a”,我们在按下键盘上的“ a”键,这时候终端左下角会提示“插入”字样,表示我们进入到了输入模式。

在 Ubuntu下 Ctrl+S快捷键不是用来完成保存的功能的,而是暂停该终端!所以你一旦在使用终端的时候按下 Ctrl+S快捷键,那么你的终端肯定不会再有任何反应,如果你按下 Ctrl+S关闭了当前终端的话可以按下 Ctrl+Q来重新打开终端。

1、移动光标指令:

h(或左方向键 ) 光标左移一个字符。
l(或右方向键 ) 光标右移一个字符。
j(或下方向键 ) 光标下移一行。
k(或上方向键 ) 光标上移一行。
nG 光标移动到第 n行首。
n+ 光标下移 n行。
n- 光标上移 n行。

2、屏幕翻滚指令

Ctrl+f 屏幕向下翻一页,相当于下一页。
Ctrl+b 屏幕向上翻一页,相当于上一页。

3、复制、删除和粘贴指令

cc 删除整行,并且修改整行内容。
dd 删除该行,不提供修改功能。
ndd 删除当前行向下 n行。
x 删除光标所在的字符。
X 删除光标前面的一个字符。
nyy 复制当前行及其下面 n行。
p 粘贴最近复制的内容。

从上面的命令可以看出,并没有保存文本的命令,那是因为保存文档的命令是在底行模式中,我们要先进入到指令模式,进入底行模式的方式是先进入指令模式下,然后在指令模式下输入“:”进入底行模式。

后面输入命令,常用的命令如下:

x 保存当前文档并且退出。
q 退出。
w 保存文档 。
q! 退出 VI/VIM,不保存文档。

如果我们要退出并保存文本的话需要在“:”底行模式下输入“wq”

在“ “/”底行模式下我们可以在文本中搜索指定的内容,比如搜索

Linux文件系统

Linux文件系统简介以及类型

操作系统就是处理各种数据的,这些数据在硬盘上就是二进制,人类肯定不能直接看懂这些二进制数据,要有一个翻译器,将这些二进制的数据还原为人类能看懂的文件形式,这个工作就是由文件系统来完成的,文件系统的目的就是实现数据的查询和存储,由于使用场合、使用环境的不同, Linux有多种文件系统,不同的文件系统支持不同的体系。

Linux下常用的磁盘分割工具为: fdisk。Linux下我们使用 mount命令来挂载磁盘。挂载磁盘的时候是需要确定挂载点的,也就是你的这个磁盘要挂载到哪个目录下。

在 Windows下有 FAT、 NTFS和 exFAT这样的文件系统,在 Linux下又有哪些文件系统呢, Linux下的文件系统主要有 ext2、 ext3、 ext4等文件系统。 Linux还支持其他的 UNIX文件系统,比如 XFS、 JFS、 UFS等,也支持 Windows的 FAT文件系统和网络文件系统 NFS等。

在终端中输入如下命令来查询当前磁盘挂载的啥文件系统:df -T h

image-20230226165026661

框起来的就是我们安装 Ubuntu的这个磁盘,在 Linux下一切皆为文件,/dev/sda1就是磁盘分区,可以看出这个磁盘分区类型是 ext4,它的挂载点是 “/”,也就是根目录。

Linux文件系统结构

Windows下的 C盘根目录就是“ C:””,在 Linux下的根目 录就是“ “/”,Linux根目录就是用“ “/”来表示的

其实所谓的给每个用户创建一个根目录只是方便说而已,这个所谓的用户根目录其实就是“ “/”下的一个文件夹,以我的“ zuozhongkai”这个用户为例,其用户根目录就是 :/home/zuozhongkai。只要你创建了一个用户,那么系统就会在 /home这个目录下创建一个以这个用户名命名的文件夹,这个文件夹就是这个用户的根目录。

用户可以对自己的用户根目录下的文件进行随意的读写操作,但是如果要修改根目录“/”下的文件就会提示没有权限。打开终端以后默认进入的是当前用户根目录

进入到根目录“ “/”里面以后终端提示符前面的符号 “~”变成了 “/”,这是因为当我们在终端中切换了目录以后“ “$”前面就会 显示切换以后的目录路径。

/bin 存储一些二进制可执行命令文件, ,/usr/bin也存放了一些基于用户的命令文件。
/sbin 存储了很多系统命令, ,/usr/sbin也存储了许多系统命令。
/root 超级用户 root的根目录文件。
/home 普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹。
/boot 存放 Ubuntu系统内核和系统启动文件。
/mnt 通常包括系统引导后被挂载的文件系统的挂载点。
/dev 存放设备 文件,我们后面学习 Linux驱动主要是跟这个文件夹打交道的。
/etc 保存系统管理所需的配置文件和目录。
/lib 保存系统程序运行所需的库文件, ,/usr/lib下存放了一些用于普通用户的库文件。
/lost+found 一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件。
/var 存储一些不断变化的文件,比如日志文件
/usr 包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件。
/media 存放 Ubuntu系统自动挂载的设备文件。
/proc 虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息。
/tmp 存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限。
/opt 可选文件和程序的存放目录。
/sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。

文件操作命令

1、创建新文件命令 touch

touch [参数 ] [文件名 ]

-a 只更改存取时间。
-c 不建立任何文件。
-d<日期> 使用指定的日期,而并非现在日期。
-t<时间> 使用指定的时间,而并非现在时间。

2、文件夹创建命令 mkdir

mkdir [参数 ] [文件夹名目录名 ]

-p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录。

3、文件及目录删除命令 rm

rm [参数 ] [目的文件或文件夹目录名 ]

-d 直接把要删除的目录的硬连接数据删成 0,删除该目录。
-f 强制删除文件和文件夹 (目录 )。
-i 删除文件或者文件夹 (目录 )之前先询问用户。
-r 递归删除,指定文件夹 (目录 )下的所有文件和子文件夹全部删除掉。
-v 显示删除过程。

直接使用命令“ rm”是无法删除文件夹 (目录 )的,我们需要加上参数“ “-rf”,也就是强制递归删除文件夹 (目录 )

4、文件夹 (目录 )删除命令 rmdir

rmdir [参数 ] [文件夹 (目录 )]

Linux提供了直接删除文件夹 (目录 )的命令 rmdir,它可以不加任何参数的删除掉指定的文件夹

-p 删除指定的文件夹 (目录 )以后,若上层文件夹 (目录 )为空文件夹 (目录 )的话就将其一起删除。

5、文件复制命令 cp

cp [参数 ] [源地址 ] [目的地址 ]

-a 此参数和同时指定“ “-dpR”参数相同
-d 在复制有符号连接的文件时,保留原始的连接。
-f 强行复制文件,不管要复制的文件是否已经存在于目标目录。
-I 覆盖现有文件之前询问用户。
-p 保留源文件或者目录的属性。
-r或 -R 递归处理,将指定目录下的文件及子目录一并处理

一些高级使用技巧,首先是拷贝 a.c和 b.c文件到 test2文件夹中,我们使用了通配符 ““”,“”,“.c”就表示 test1下的所有以“ “.c”结尾的文件,也就是 a.c和b.c “…/test2”中的 “…/”表示上级目录,因此 “…/test2”就是上级目录下的 test2文件夹。

6、文件移动命令 mv

mv [参数 ] [源地址 ] [目的地址 ]

-b 如果要覆盖文件的话覆盖前先进行备份。
-f 若目标文件或目录与现在的文件重复,直接覆盖目的文件或目录。
-I 在覆盖之前询问用户。

文件压缩和解压缩

1、图形化压缩和解压缩

右键压缩即可,选择压缩格式和归档名称

右键提取到此处即可解压缩

2、命令行进行文件的压缩和解压缩

命令 zip

zip命令看名字就知道是针对 .zip文件的,用于将一个或者多个文件压缩成一个 .zip结尾的文件,命令格式如下:

zip [参数 ] [压缩文件名 .zip] [被压缩的文件 ]

-b<工作目录 > 指定暂时存放文件的目录。
-d 从 zip 文件中删除一个文件。
-F 尝试修复已经损毁的压缩文件。
-g 将文件压缩入现有的压缩文件中,不需要新建压缩文件。
-h 帮助。
-j 只保存文件的名,不保存目录。
-m 压缩完成以后删除源文件。
-n<字尾符号 > 不压缩特定扩展名的文件。
-q 不显示压缩命令执行过程。
-r 递归压缩,将指定目录下的所有文件和子目录一起压缩。
-v 显示指令执行过程。
-num 压缩率,为 1~9的数值。
命令 unzip

unzip命令用于对 .zip格式的压缩包进行解压,命令格式如下:
unzip [参数 ] [压缩文件名 .zip]

-l 显示压缩文件内所包含的文件。
-t 检查压缩文件是否损坏,但不解压。
-v 显示命令显示的执行过程。
-Z 只显示压缩文件的注解。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中的原有目录路径。
-L 将压缩文件中的全部文件名改为小写。
-n 解压缩时不要覆盖原有文件。
-P<密码 > 解压密码。
-q 静默执行,不显示任何信息。
-x<文件列表 > 指定不要处理 .zip中的哪些文件。
-d<目录 > 把压缩文件解到指定目录下。
命令 tar

Linux下最常用的 .bz2和 .gz这两种压缩格式。其它格式的压缩和解压使用命令tar,tar将压缩和解压缩集合在一起,使用不同的参数即可,命令格式如下:
tar [参数 ] [压缩文件名 ] [被压缩文件名 ]

-c 创建新的压缩文件。
-C<目的目录 > 切换到指定的目录。
-f<备份文件 > 指定压缩文件。
-j 用 tar生成压缩文件,然后用 bzip2进行压缩。
-k 解开备份文件时,不覆盖已有的文件。
-m 还原文件时,不变更文件的更改时间。
-r 新增文件到已存在的备份文件的结尾部分。
-t 列出备份文件内容。
-v 显示指令执行过程。
-w 遭遇问题时先询问用户。
-x 从备份文件中释放文件,也就是解压缩文件。
-z 用 tar生成压缩文件,用 gzip压缩。
-Z 用 tar生成压缩文件,用 compress压缩。

使用如下两个命令将 test1文件夹压缩为 .bz2和 .gz这两个格式:
tar -vcjf test1.tar.bz2 test1
tar -vczf test1.tar.gz test1
在上面两行命令中,-vcjf表示创建 bz2格式的压缩文件, -vczf表示创建 .gz格式的压缩文件。

中我们使用如下所示两行命令完成 .bz2和 .gz格式文件的解压缩:
tar -vxjf test1.tar.bz2
tar -vxzf test2.tar.gz
上述两行命令中, ,-vxjf用来完成 .bz2格式压缩文件的解压, ,-vxzf用来完成 .gz格式压缩文件的解压。关于 Ubuntu下的命令行压缩和解压缩就讲解到这里,重点是 tar命令,要熟练掌握使用 tar命令来完成 .bz2和 .gz格式的文件压缩和解压缩。

文件查询和搜索

1. 命令find

find命令用于在目录结构中查找文件,其命令格式如下:
find [路径 ] [参数 ] [关键字 ]
路径是要查找的目录路径,如果不写的话表示在当前目录下查找,关键字是文件名的一部分,主要参数如下:

-name<filename> 按照文件名称查找,查找与 filename匹配的文件,可使用通配符。
-depth 从指定目录下的 最深层的子目录开始查找。
-gid<群组识别码 > 查找符合指定的群组识别码的文件或目录。
-group<群组名称 > 查找符合指定的群组名称的文件或目录。
-size<文件大小 > 查找符合指定文件大小的文件。
-type<文件类型 > 查找符合指定文件类型的文件。
-user<拥有者名称 > 查找符合指定的拥有者名称的文件或目录。

2. 命令grep

find命令用于在目录中搜索文件,我们有时候需要在文件中搜索一串关键字, grep就是完成这个功能的, grep命令用于查找包含指定关键字的文件,如果发现某个文件的内容包含所指定的关键字, grep命令就会把包含指定关键字的这一行标记出来, grep命令格式如下:
grep [参数 ] 关键字 文件列表
grep命令一次只能查一个关键字,主要参数如下:

-b 在显示符合关键字的那一列前,标记处该列第 1个字符的位编号。
-c 计算符合关键字的列数。
-d<进行动作 > 当指定要查找的是目录而非文件时,必须使用此参数!否则 grep指令
将回报信息并停止搜索。
-i 忽略字符大小写。
-v 反转查找,只显示不匹配的行。
-r 在指定目录中递归查找。

文件类型

这里的文件类型不是说这个文件是音乐文件还是文本文件,在用户根目录下使用命令“ ls -l”来查看用户根目录下所有文件的详细信息

每个文件的详细信息占一行,每行最前面 的 符号标记了当前文件类型

- 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。
d 目录文件。
c 字符设备文件, Linux驱动里面的字符设备驱动,比如串口设备,音频设备等。
b 块设备文件,存储设备驱动,比如硬盘, U盘等。
l 符号连接文件,相当于 Windwos下的快捷方式。
s 套接字文件。
p 管道文件,主要指 FIFO文件。

我们后面学习 Linux驱动开发的时候基本是在和字符设备文件和块设备文件打交道。

Linux用户权限管理

Ubuntu用户系统

装系统的时候创建的用户其权限比后面创建的用户大一点,但是没有 root用户权限大,Ubuntu下用户类型分为以下 3类:
● 初次创建的用户,此用户可以完成比普通用户更多的功能。
● root用户,系统管理员,系统中的玉皇大帝,拥有至高无上的权利。
● 普通用户,安装完操作系统以后被创建的用户。

以上三种用户,每个用户都有一个 ID号,称为 UID,操作系统通过 UID来识别是哪个用户,用户相关信息可以在文件 /etc/passwd中查看到。从配置文件 passwd中可以看到,每个用户名后面都有两个数字,比如用户zuozhongkai后面1000:1000”,第一个数字是用户的 ID,另一个是用户的 GID,也就是用户组 ID。 Ubuntu里面每个用户都属于一个用户组里面,用户组就是一组有相同属性的用户集合。

权限管理

用户的部分权限,其它普通用户的权限最低。对于我们做嵌入式开发的人一般不关注用户的权限问题,因为嵌入式基本是单用户,做嵌入式开发重点关注的是文件的权限问题。

对于一个文件通常有三种权限:读 ®、写 (w)和执行 (x),使用命令 ls -l”可以查看某个目录下所有文件的权限信息

-rw-rw-r-- 1 zuozhongkai zuozhongkai 0 12月 25 20:44 test.c
其中“ “-rw-rw-r–”表示文件权限与用户和用户组之间的关系,第一位表示文件类型,上一小节已经说了。剩下的 9位以 3位为一组,分别表示文件拥有者的权限,文件拥有者所在用户组的权限以及其它用户权限。后面的“ zuozhongkai zuozhongkai”分别代表文件拥有者 (用户 )和该用户所在的用户组,因此文件 test.c的权限情况如下:
① 、文件 test.c的拥有者是用户 zuozhongkai,其对文件 test.c的权限是“ rw-”,也就是对该
文件拥有读和写两种权限。
② 、用户 zuozhongkai所在的用户组也叫做 zuozhongkai,其组内用户对于文件 test.c的权
限是“ rw-”,也是拥有读和写这两种权限。
③ 、其它用户对于文件 test.c的权限是“ r–”,也就是只读权限。

对于文件,可读权限表示可以打开查看文件内容,可写权限表示可以对文件进行修改,可执行权限就是可以运行此文件 (如果是软件的话 )。对于文件夹,拥有可读权限才可以使用命令 ls查看文件夹中的内容,拥有可执行权限才能进入到文件夹内部。

我们也可以使用二进制数表示,三种权限就可以使用 3位二进制数来表示,一种权限对应一个二进制位,如果该位为 1就表示具备此权限,如果该位为 0就表示没不具备此权限,如表

字母二进制八进制
r1004
w0102
x0011

权限组合即可得到不同的二进制数和八进制数,另外我们也开始使用 a、 u、 g和 o表示文件的归属关系,用 =、 +和 -表示文件权限的变化

字母意义
r可读权限
w可写权限
x可执行权限
a所有用户
u归属用户
g归属组
o其他用户
=具备权限
+添加某权限
-去除某权限

对于文件 test.c,我们想要修改其归属用户 (zuozhongkai)对其拥有可执行权限,那么就可以使用: u+x。如果希望设置归属用户及其所在的用户组都对其拥有可执行权限就可以使用: gu+x

权限管理命令

权限修改命令chmod

命令“ chmod”用于修改文件或者文件夹的权限,权限可以使用前面讲的数字表示也可以使用字母表示,命令格式如下:
chmod [参数 ] [文件名 /目录名 ]

-c 效果类似“ “-v”参数,但仅回显更改的部分。
-f 不显示错误信息。
-R 递归处理,指定目录下的所有文件及其子文件目录一起处理。
-v 显示指令的执行过程。

我们创建了一个文件: test,这个文件的默认权限为 rw-rw-r–”,我们将其
权限改为“ rwxrw-rw”,对应数字就是 766,操作如下

chmod 766 test.txt

上面我们是通过数字来修改权限的,我们接下来使用字母来修改权限,

image-20230226200405209

文件夹权限修改同理。

文件归属者修改命令chown

命令 chown用来修改某个文件或者目录的归属者用户或者用户组,命令格式如下:
chown [参数 ] [用户名 .<组名 >] [文件名 /目录 ]

其中 [用户名 .<组名 >]表示要将文件或者目录改为哪一个用户或者用户组,用户名和组名用““.”隔开,其中用户名和组名中的任何一个都可以省略,命令主要参数如下

-c 效果同 -v类似,但仅显示更改的部分。
-f 不显示错误信息。
-h 只对符号连接的文件做修改,不改动其它任何相关的文件。
-R 递归处理,将指定的目录下的所有文件和子目录一起处理。
-v 显示处理过程。

将文件test.txt归属用户改为root用户,所属的用户组也改为root

image-20230226200936663

同样可以递归处理修改文件夹的归属者。

Linux磁盘管理

Linux磁盘管理基本概念

Linux的磁盘管理体系和 Windows有很大的区别,在 Windows下经常会遇到“分区”这个概念,在 Linux中一般不叫“分区”而叫“挂载点”。 “挂载点”就是将一个硬盘的一部分做成文件夹的形式,这个文件夹的名字就是“挂载点”,不管在哪个发行版的 Linux中,用户是绝对看到不到 C盘、 D盘这样的概念的 ,只能看到以文件夹形式存在的“挂载点 ”.

没有出现实际的硬盘。可以通过如下命令查看当前系统中的磁盘:

ls /dev/sd*

sd表示是 SATA硬盘或者其它外部设备,最后面的数字表示该硬盘上的第 n个分区,比如 /dev/sda1就表示磁盘 sda上的第一个分区。都是以 /dev/sda开头的,说明当前只有一个硬盘。如果再插上 U盘、 SD卡啥的就可能会出现
/dev/sdb,,/dev/sdc等等。如果你的 U盘有两个分区那么可能就会出现 /dev/sdb1、 dev/sdb2这样的设备文件。

磁盘管理命令

1. 磁盘分区命令fdisk

如果要对某个磁盘进行分区,可以使用命令 fdisk,命令格如下
fdisk [参数 ]

-b<分区大小 > 指定每个分区的大小。
-l 列出指定设备的分区表。
-s<分区编号 > 将指定的分区大小输出到标准的输出上, 单位为块。
-u 搭配“ “-l”参数,会用分区数目取代柱面数目,来表示每个分区的起始地址。

比如我要对 U盘进行分区, 千万不要对自己装 Ubuntu系统进行分区!!! 可以使用如下命令:
sudo fdisk /dev/sdb

p 显示现有的分区
n 建立新分区
t 更改分区类型
d 删除现有的分区
a 更改分区启动标志
w 对分区的更改写入到硬盘或者存储器中。
q 不保存退出。

2. 格式化命令mkfs

使用命令 fdisk创建好一个分区以后,我们需要对其格式化,也就是在这个分区上创建一个文件系统, Linux下的格式化命令为 mkfs,命令格式如下
mkfs [参数 ] [-t 文件系统类型 ] [分区名称 ]

fs 指定建立文件系统时的参数
-V 显示版本信息和简要的使用方法。
-v 显示版本信息和详细的使用方法。

比如我们要格式化 U盘的分区 /dev/sdb1为 FAT格式,那么就可以使用如下命令:
mkfs t vfat /dev/sdb1

3. 挂载分区命令mount

我们创建好分 区并且格式化以后肯定是要使用硬盘或者 U盘的,那么如何访问磁盘呢?比如我的 U盘就一个分区,为 /dev/sdb1,如果直接打开文件 /dev/sdb1会发现根本就不是我们要的结果。我们需要将 /dev/sdb1这个分区挂载到一个文件夹中,然后通过这个文件访问 U盘,磁盘挂载命令为 mount,命令格式如下
mount [参数 ] -t [类型 ] [设备名称 ] [目的文件夹 ]

-V 显示程序版本。
-h 显示辅助信息。
-v 显示执行过程详细信息。
-o ro 只读模式挂载。
-o rw 读写模式挂载。
-s-r 等于 -o ro。
-w 等于 -o rw。

image-20230226211145466

4. 卸载命令umount

当我们 不再 需要访问已经挂载的 U盘,可以通过 umount将其从卸载点卸除,命令格式如下:
umount [参数 ] -t [文件系统类型 ] [设备名称 ]

-a 卸载 /etc/mtab中的所有文件系统。
-h 显示帮助。
-n 卸载时不要将信息存入到 /etc/mtab文件中
-r 如果无法成功卸载,则尝试以只读的方式重新挂载。
-t<文件系统类型 > 仅卸载选项中指定的文件系统。
-v 显示执行过程。

image-20230226211331199

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值