ubuntu 22.04 学习笔记

ubuntu22.04安装

  1. 初始安装选项,选择第一个【Try or Install Ubuntu】,直接按回车、

    image

  2. 选择语言,点击安装Ubuntu

image

  1. 键盘布局,使用默认即可

image

  1. 安装桌面环境

image

  1. 安装类型,默认即可,

image

询问将改动写入磁盘?点击继续。

image

  1. 选择时区

image

  1. 设置登录用户,和密码

image

  1. 接下来等着安装即可

image

  1. 安装完成,点击重启

image

一.初始化配置

1.1.配置静态IP

  1. 图形化配置方法

    • 点击桌面右上角,有线设置

image

  • 点击齿轮

image

  • 选择IPV4,勾选手动,填写IP地址,点击右上角应用

image

  • 显示“已连接”,表示静态IP设置成功。
    image
  1. 命令配置方法

    • 首先,使用命令sudo passwd root启用root用户,执行命令后,先输入当前用户密码,再输入两次root用户密码,root启用完成

image

  • 执行命令sudo vim /etc/netplan/01-network-all.yaml

    然后在文件中添加如下内容,然后wq!保存退出。

    # Let NetworkManager manage all devices on this system
    network:
        ethernets:
           ens160:                    ## network card name
                dhcp4: false
                addresses:
                  - 172.16.0.235/24   ## set static IP
                routes:
                  - to: default
                    via: 172.16.0.1  ## gateway
                nameservers:
                  addresses: [172.16.0.53]
        version: 2
    

image

  • 执行命令sudo netplan apply重启网络服务

1.2.修改软件源

  1. 图形化配置方法

    • 首先备份默认软件源,运行终端,执行如下命令:

      sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
      
    • 打开显示应用程序,点击软件和更新

image

  • 点击下载自:,选择其他站点...

image

  • 在新的窗口中,通过鼠标滚动,找到自己想设置的软件源,比如本人比较喜欢清华的镜像源,那么就找到 mirrors.tuna.tsinghua.edu.cn,然后单击 选择服务器,默认会让我们输入密码,如下图所示

image

image

  • 选择完毕,在软件和更新窗口中,可以看到此时下载自:一栏为http://mirrors.tuna.tsinghua.edu.cn/ubuntu

image

  • 接下来,单击 关闭,系统需要确认是否进行更改,如果确定,单击 重新载入 即可。耐心等待更新完成,完成之后 软件和更新 窗口会自动关闭

image

image

  • 完成后打开终端,执行sudo apt -y update && sudo apt -y upgrade更新软件列表和软件包
  1. 命令配置方法

    • 首先备份默认软件源,运行终端,执行如下命令:

      sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
      
    • 替换清华镜像源

      sudo sed -i s/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list
      sudo sed -i s/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list
      

      命令执行后,可以使用cat命令查看一下,是否已替换。

    • 更新软件列表和软件包,执行如下命令:

      sudo apt -y update
      sudo apt -y upgrade
      

1.3.开启SSH

Ubuntu 22.04 LTS系统默认没有安装和启用SSH服务,

  • 因此首先在终端中运行以下命令,执行安装操作:

    sudo apt install -y openssh-server 
    
  • 安装完成后,需要启动SSH服务

    sudo systemctl enable --now ssh
    
  • 服务开启后,需要检查一下服务是否已正常运行

    sudo systemctl status ssh
    

    如果显示如下,表示服务已正常运行

image

另一种检查连接状态的命令

sudo ss -lt

image

  • 修改SSH配置

    在不熟悉修改文件操作时,修改文件之前一定要记得先备份文件,再操作,以免配置错误

    使用cp命令备份文件,以ssh配置文件举例

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_cinfig.bak
    

    备份完成后,修改ssh配置文件

    sudo vim /etc/ssh/ssh_config
    

    ① 默认不允许ssh密码验证,找到PasswordAuthentication,将注释符“#”删除,后面的参数修改为:yes,保存退出。

image

② 默认是不允许root远程登录的,如果需要开启的话,找到PermitRootLogin,将注释符“#”删除,并修改后面的参数为:yes;或者另起一行,编辑内容PermitRootLogin yes,保存退出。

image

  • 验证配置修改

    使用其他电脑上的终端连接工具远程连接Ubuntu,验证配置修改是否成功

image

如上,登陆成功。

二.基本操作

在Linux世界里,一切皆文件,因此Linux系统下的操作也基本都是围绕着文件而开展的。

因此在了解Linux的基本操作之前,理解Linux的目录结构是非常重要的。

Linux的文件系统是采用级层式的树状目录结构。在该结构中,最上层是根目录 “/” ,然后在该目录下再创建其他的目录。

image

2.1. 目录操作

cd

通过cd+目录路径命令跳转到指定目录,linux路径分为相对路径和绝对路径

绝对路径是从根开始的路径,无论当前在什么目录下,使用cd+绝对路径都可以跳转到指定的目录下。

例如:当前目录为/etc/systemd/想要跳转到/usr/local/src目录

image

相对路径是相对于当前目录的路径,使用cd+相对路径,可以进入当前目录下的指定目录。

例如:当前在/usr路径下,想要进入/usr/local或者/usr/local/src目录

image

cd命令的几个使用技巧:

cd 不加任何路径,回到当前用户家目录
cd - 前后路径热切换,类似于电视遥控器中的回看按键
cd .. 返回上级目录,cd ../..即返回上两级目录

image

pwd

用作显示工作目录的路径名称,

全称是“Print Working Directory”。

image

ls

列出当前目录下的文件和文件夹

image

ll命令,等同于ls -l,可以显示权限、所有者、修改日期等信息

image

mkdir

创建一个空目录

例如:在家目录下,创建一个名为test的空目录

image

rmdir

删除一个共目录

例如:删除刚刚创建的test目录

image

2.2. 文件操作

cat

查看文件内容

image

查看文件的前10行内容

image

配合-n选项,可以自定义查看前几行的内容,例如:查看前5行的内容。

image

当数字为负数时,例如-11,即查看除最后11行外的内容

image

tail

tail命令与head命令正好相反,默认查看末尾10行的内容

image

配合-n选项,可以自定义查看末尾几行的内容,例如:查看末尾5行的内容。

image

数字前加上'+',例如+8,即查看从第8行到末尾的内容

image

另外,cat、head、tail可以组合起来使用,通过 " | " 分隔

例如:查看3到12行的内容

image

cat、head、tail也均可以和grep命令组合起来使用,查看包含指定字符的内容

image

vi/vim

vi/vim是LINUX操作系统下最常用的编辑文件命令,vim是vi的升级版,一些版本的linux最小化安装的情况下,不预装vim,需要手动安装一下才可以使用。

安装命令:sudo apt install vim

vim一共有四种模式

  • 命令模式(command-mode):
    用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器……
    正常模式下
    按:(shift加;键)进入命令模式

    :w 保存
    :wq 保存并退出
    :q! 强制退出(未保存的修改,不保存)

  • 插入模式(insert-mode):
    用来向文本中添加内容的
    正常模式下
    按 i 在光标前插入
    按 I 在行首插入
    按 a 在光标后插入
    按 A 在行末插入
    按 s 删除光标所在的字符再插入
    按 S 删除光标所在行再插入
    按 o 在当前行之下新建行
    按 O 在当前行之上新建行

  • 可视模式(visual-mode):

    可视模式相当于高亮选取文本后的普通模式。
    可视模式具有子模式,以行为单位进行选取的可视行模式,使用“V”键进入(也就是Shift+v);和以块为单位进行选取的可视块模式,使用“Ctrl+v”键进入。

  • 正常模式(normal-mode) :
    正常模式主要用来浏览和修改文本内容的
    一般打开Vim默认进入正常模式。
    在任何模式下,只要按下 Esc 键就可以返回正常模式。
    按u 撤销

    按U撤销一步
    按dd 删除光标所在行

    按D删除此行光标之后的内容(包括光标所在字符)
    按gg 光标移动至首行首字符
    按h或左箭头 光标左移
    按j或下箭头 光标下移

    按J删除光标所在行末的换行符
    按k或上箭头 光标上移
    按l或右箭头 光标右移
    按q进入记录功能,再按q退出记录功能
    按r再接着按其他内容,修改光标选中字符
    按y复制光标所在行及下一行(共两行)

    按Y复制光标所在行
    按p在光标所在行下一行粘贴

    按P在光标所在行上一行粘贴
    按x删除光标位置字符
    按X删除光标位置前一个字符
    按S\C\cc 删除光标所在行,并进入插入模式正常模式下

touch

将所指定的每个文件的访问时间和修改时间更改为当前时间。

一般用作创建一个空文件。

例如:创建一个名为“file1”的新文件

image

例如:将之前创建的名为“test”的文件的访问时间和修改时间更改为当前时间。

image

image

cp

拷贝文件

用法:cp [选项]... [-T] 源文件 目标文件
  或:cp [选项]... 源文件... 目录
  或:cp [选项]... -t 目录 源文件...

image

mv

移动文件,或者重命名(同目录移动,一般用于重命名)

用法:mv [选项]... [-T] 源文件 目标文件
  或:mv [选项]... 源文件... 目录
  或:mv [选项]... -t 目录 源文件...

image

image

rm

删除文件

默认时,rm 不会删除目录。使用--recursive(-r 或-R)选项可删除每个给定
的目录,以及其下所有的内容。

请注意,如果使用rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证
该文件的内容无法还原,请考虑使用shred。

常用参数

rm -f 忽略不存在的文件和参数,执行期间不询问

image

rm -i 每个执行动作均询问

image

rm -d 删除空目录

image

rm -r 删除目录及其下内容

image

2.3 重启关机

shutdown

shutdown命令是相对安全的重启/关机命令

sudo shutdown -r  # 停止login服务,并向所有已登录用户发送消息,一分钟后重启
sudo shutdown -P  # 停止login服务,并向所有已登录用户发送消息,一分钟后关机
sudo shutdown -r 10  # 十分钟后重启。
sudo shutdown -r now  # 立即重启。

image

reboot、halt

reboot、halt是相对简单一点的重启和关机命令

sudo reboot  # 无提示,立即重启, -p 立即关机
sudo halt --reboot  # 无提示,立即重启, -p 立即关机 

2.4 用户管理

2.4.1 新建用户

使用useraddadduser创建新用户

sudo useradd user
sudo adduser user

在CentOs下useradd与adduser是没有区别的都是在创建用户,在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码。

而在Ubuntu下useradd与adduser有所不同:

- useradd:使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。
- adduser:使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。

useradd命令也可以在创建用户时同时创建用户目录、密码和默认shell,但需要结合复杂的参数。

因此,一般情况下使用adduser创建可登录的用户,使用useradd创建一般用户。

2.4.2 删除用户

使用userdel删除用户

userdel只能删除用户,并不会删除相关的目录文件。userdel -r 可以删除用户及相关目录。

image

2.4.3 管理用户

1.修改密码
sudo passwd user

image

2.锁定和解锁用户

passwdusermod命令都可以锁定和解锁用户

sudo usermod -L user  ## 锁定用户 (--lock)
sudo usermod -U user  ## 解锁用户 (--unlock)
sudo passwd -l user  ## 锁定用户 (--lock)
sudo passwd -u user  ## 解锁用户 (--unlock)

使用下面命令查看帐户状态

sudo passwd -S user  ## 查看用户状态 (--status)

image

虽然passwdusermod命令都可以锁定和解锁帐户,但根据帮助信息可知,passwd命令多与帐户状态有关。

例如:重设密码、设置密码有效期等。

image

usermod命令,更综合。

例如:修改用户目录、ID、默认shell用户组等。

image

3.其他修改
  • 修改用户ID
sudo usermod -u [新ID] user

image

  • 修改用户目录
sudo usermod -d [home_dir] -m user

image

参数-m是不可或缺的,虽然从帮助信息中看不出来,但如果不加-m参数的话,会出现如下情况。

image

三.常用系统命令

3.1.查看操作系统信息

lsb_release -a命令

ubt@ubt-local:~$ lsb_release -a
Distributor ID: Ubuntu  ## 发行商
Description:    Ubuntu 22.04 LTS  ## 系统版本详细信息
Release:        22.04  ## 发行版本号
Codename:       jammy  ## 系统代号

image

3.2.查看内核信息

uname -a命令

ubt@ubt-local:~$ uname -a
Linux ubt-local 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
ubt@ubt-local:~$ 

image

3.3.查看CPU信息

lscpu命令

image

3.4.查看内存信息

free -h命令

image

3.5.磁盘信息

df -h命令

image

3.6.查看IP信息

ifconfig命令

image

ip addr命令

image

3.7.查看进程资源占用情况

top命令

可以查看系统进程的CPU及内存的资源占用情况,默认状态为动态实时刷新,直到执行Ctrl+C截至

image

结合head命令,查看资源占用前几位的进程,但得到的结果是执行命令时的情况,并不会实时刷新。

top命令头部汇总信息(包括空行及进程列表标题行)共7行,因此想要查看资源占用前十的进程,需要查看前17行内容。

top | head -n 17

image

htop命令

Htop是一个免费的(GPL)基于NCourses的Linux进程查看器。它类似于top,但允许您垂直和水平滚动,因此您可以看到系统上运行的所有进程,以及它们的完整命令行,还可以将它们视为进程树,选择多个进程并同时对它们执行操作。与流程相关的任务(终止、重新冻结)可以在不输入PID的情况下完成。

Ubuntu不预装此工具,因此需要先安装一下才可以使用。

使用sudo apt install htop安装。

image

htop的执行结果,也是动态刷新的,显示结果共有四个区域

  • 区域一:CPU、内存、Swap的使用情况
  • 区域二:任务、线程、平均负载及系统运行时间的信息。平均负载部分提供了三个数字,这仅仅表示的是过去的5分钟、10分钟和15分钟系统的平均负载而已。uptime标示的数字是从系统启动起到当前的运行总时间。
  • 区域三:当前系统中的所有进程。各列说明:
    PID:进程标志号,是非零正整数
    USER:进程所有者的用户名
    PR:进程的优先级别
    NI:进程的优先级别数值
    VIRT:进程占用的虚拟内存值
    RES:进程占用的物理内存值
    SHR:进程使用的共享内存值
    S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
    %CPU:该进程占用的CPU使用率
    %MEM:该进程占用的物理内存和总内存的百分比
    TIME+:该进程启动后占用的总的CPU时间
    COMMAND:进程启动的启动命令名称
  • 区域四:当前界面中F1-F10功能键中定义的快捷功能。

3.8.查看最近登录

last命令

last命令可以查看最近一段时间用户登录情况。

image

lastlog命令

lastlog命令可以查看所有用户的最后一次登录情况,包括不能登录的系统用户(伪用户),但是会显示这些伪用户从未登录过。

image

3.9.查看防火墙状态

可以使用以下命令查看ufw的状态,默认情况ufw是不开启的

sudo ufw status verbose

image

关于ufw防火墙的配置,会在下面单独一段进行介绍。

3.10.查看端口开放状态

sudo netstat -atnlp命令

使用ip地址列出所有监听状态的TCP端口,且加上程序名

image

3.11 查看修改主机名

3.11.1 查看主机名

  • 方式一:uname命令
uname -n

image

  • 方式二:hostname命令
hostname

image

  • 方式三:cat命令
cat /etc/hostname

image

3.11.2 临时修改主机名

sudo hostname [newhostname]

image

3.11.3 永久修改主机名

sudo hostnamectl set-hostname [newhostname]

image

四.安装软件

Ubuntu22.04上,可以使用的安装软件方式有多种,比较常用的两种方式是apt和dpkg。

4.1.apt方式

  • 简介

apt是高级包装工具(Advanced Packaging Tools)的缩写。
apt是Debian及其衍生发行版(如:ubuntu)的软件包管理器。
在/etc/apt/sources.list下配置了软件镜像源地址,apt可以根据用户的要求,在软件镜像源中自动寻找、下载、配置、安装二进制或者源代码格式的软件包及其相关依赖项。

  • 应用场景

    • 有互联网权限
    • 软件镜像源中包含的软件
    • 需要使用root用户或具有sudo权限的普通用户才能执行
  • 常用命令

    命令 功能介绍
    apt update 更新可用软件包列表
    apt upgrade 通过 安装/升级 软件来更新系统
    apt install 安装软件包
    apt reinstall 重新安装软件包
    apt remove 移除软件包
    apt autoremove 卸载所有自动安装且不再使用的软件包
    apt search 搜索软件包
    apt list 根据名称列出软件包
    apt --help 查看apt命令的详细用法

    apt = apt-get 、apt-cache、apt-config中最常用命令选项的集合。apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。

    apt-get 、apt-cache、apt-config的详细用法,可以通过--help来查看。

以安装MariaDB数据库为例:

sudo apt install mariadb-server

执行命令后,首先会读取软件包列表,并检查软件包的依赖关系。

image

下载相关软件包

image

解压

image

配置

image

未发生报错的情况下,软件包即安装完成

可以使用systemctl status mysql命令查看服务状态

image

Active:active(running)即表示服务已启动,正在运行。

4.2.dpkg方式

  • 简介

dpkg 即 package manager for Debian,是Debian及其衍生发行版(如:ubuntu)中一个主要的包管理工具,可以用来安装、构建、卸载、管理 deb 格式的软件包。

  • 应用场景

    • 用于安装已经下载到本地的 deb 软件包
    • 用于对安装好的软件进行管理
  • 安装软件

    sudo dpkg -i <package_file_path>
    

    安装软件包

  • 列出已安装的软件

    可以使用 dpkg -l 命令列出当前系统中已经安装的软件以及软件包的状态

image

该命令每行输出中的第一列 ii 表示软件包的安装和配置状态,其格式如下:
期望状态|当前状态|错误

其中期望状态有以下几种

  • u:即 unknown,软件包未安装且用户未请求安装
  • i:即 install,用户请求安装该软件包
  • r:即 remove,用户请求卸载该软件包
  • p:即 purge,用户请求卸载该软件包并清理配置文件
  • h:即 hold,用户请求保持续当前软件包版本

当前状态 有以下几种:

  • n:即 not-installed,软件包未安装
  • i:即 installed,软件包已安装并完成配置
  • c:即 config-files,软件包已经被卸载,但是其配置文件未清理
  • u:即 unpacked,软件包已经被解压缩,但还未配置
  • f:即 half-configured,配置软件包时出现错误
  • w:即 triggers-awaited,触发器等待
  • t:即 triggers-pending,触发器未决

错误状态 有以下几种:

  • h:软件包被强制保持
  • r:即 reinstall-required,需要卸载并重新安装
  • x:软件包被破坏

因此 ii 表示该软件需要安装且已经安装,没有出现错误;
iu 表示已经安装该软件,但未正确配置;
rc 表示该软件已经被删除,但配置文件未清理。

查看处于 rc 状态的软件包:

image

此外,还可以使用 dpkg -l <package_name_pattern> 命令筛选出名称中包含指定模式的软件包。

image

  • 卸载软件

    dpkg 命令的 -r 选项可以用来卸载已安装的软件包,此时只需要指定软件的名称即可。

image

需要注意的是,-r 选项只会移除指定的软件包而不对其配置文件产生影响,可以使用 -P 选项在删除软件包的同时清理配置文件。

sudo dpkg -P <package>
  • 其他包管理工作
    • 查看软件包的内容:dpkg -c <package_file_path>
    • 查看已安装软件包的详细信息:dpkg -s <package>
    • 查看软件包的安装位置:dpkg -L <package>

4.3.apt和dpkg的区别

  • apt是会解决和安装模块的依赖问题,并会咨询软件仓库,是在线安装。
  • dpkg只能安装本地的deb文件,不会关心Ubuntu的软件仓库内的软件,不会解决模块的依赖关系。
  • 两者的区别是dpkg绕过apt包管理数据库对软件包进行操作,所以使用dpkg安装过的软件包用apt可以再安装一遍,系统不知道之前安装过了,将会覆盖之前dpkg的安装。

五.UFW防火墙的配置

5.1.ufw安装

Ubuntu22.04默认安装了ufw,如果没有安装,使用以下命令安装

sudo apt install ufw

5.2.查看ufw的状态

使用以下命令查看ufw的状态

sudo ufw status verbose

image

一般ufw是不会开启的,可以通过下面命令开启ufw防火墙。

sudo ufw enable

image

需要注意的是,ufw开启后,默认是不允许ssh端口连接的,但当前连接会保持,这时需要执行sudo ufw allow ssh来开启ssh的端口。否则重启后下次ssh就无法连接了。

image

还可以通过下面两条命令查看状态和规则

sudo ufw status
sudo ufw status numbered

相比于sudo ufw status verbosesudo ufw status显示的信息要少一些,前面一条会显示更为详细的端口规则。

image

sudo ufw status numbered命令会给规则前面加上序列号,一般用于通过此序列号删除规则。

image

5.3.端口规则设置

ufw激活后的默认的策略是允许出去,不允许流量进来,这个可以在ufw的配置文件中看到。

在配置文件/etc/default/ufw中可以看到以下内容:

DEFAULT_OUTPUT_POLICY=“ACCEPT”

在文件/etc/services 中配置了一些特定的端口,ufw可以直接用。例如:http

sudo ufw allow http  ## 允许http连接
sudo ufw deny http  ## 阻止http连接

image

image

也可以自己配置端口规则,命名格式为:ufw allow port_number/protocol

sudo ufw allow 3306/tcp  ## 允许3306端口的TCP连接
sudo ufw allow 3306/udp  ## 允许3306端口的UDP连接
sudo ufw deny 3306/tcp   ## 阻止3306端口的TCP连接
sudo ufw deny 3306/udp   ## 阻止3306端口的UDP连接

image

image

如果不带TCP或者UDP,则默认两种都可以。

sudo ufw allow 443  ## 允许443端口的连接

image

如果要配置一组连续的端口,则可以这样。

sudo ufw allow 10010:10020/tcp  ## 允许10010到10020端口的TCP连接

image

5.4.设置特定IP连接

可以设置指定的IP连接过来

sudo ufw allow from 10.10.40.192  ## 允许指定IP访问

image

指定IP连接到指定端口

sudo ufw allow from 10.10.40.192 to any port 1433

image

设置指定的子网连接

sudo ufw allow from 172.16.0.1/24

image

5.5.配置出入

默认的规则都是进来的,可以通过in和out配置。

sudo ufw allow in 22/tcp
sudo ufw allow out 22/tcp

image

5.6.删除规则

删除有两种方式:

通过规则前面加上delete删除规则

sudo ufw delete allow from 172.16.0.0/24

image

还可以通过查看规则序列号来删除。

sudo ufw status numbered

image

六.文件权限

6.1 超级用户和普通用户

Linux下有两种用户:超级用户(root)、普通用户
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$“。

使用su [username]命令切换用户。

例如:要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

image

su - [username]也可以切换用户,与su [username]的区别是:su - 会切换为当前用户家目录,而su 仍保持在原先的目录下。

使用su - 命令切换

image

使用su命令切换

image

6.2 访问者分类

Linux中文件/目录的访问身份有三种:

u:文件拥有者
g:文件所属组
o:其他用户

image

6.3文件类型

image

Linux系统中的文件类型:

d:文件目录
-:普通文件
l:软连接(类似于Windows中的快捷方式)
b:块设备文件(例如硬盘、光驱)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接文件

6.4 文件权限

Linux系统中的文件权限

r:读(read)
对于文件来讲就是能否读取其内容的权限,对于目录来讲能否查看目录里面的内容(即能否被ls)

w:写(write)
对于文件来讲就是能否向文件写数据,对于目录来讲能否删除目录里面的文件

x:可执行(execute)
对于可执行文件来讲能否被执行,对于目录来讲能否进入目录(即能否cd进入)

6.5 权限修改

image

如上图,新建一个普通空文件,初始的权限是:

文件拥有者:可读可写
文件所属组:可读可写
其他用户:只读

使用chmod命令可以修改文件及目录权限。

chmod [参数] [用户符号][修改符号][权限符号] [file]
  • 方式一:以字符形式修改文件权限

用户权限:

u:拥有者
g:所属组
o:其他用户
a:所有用户

修改符号:

+:增加权限
-:取消权限
=:赋予权限

权限符号:

r:读
w:写
x:执行

示例:为文件拥有者和所属组新增可执行权限。

image

示例:为文件拥有者和所属组取消可写可执行权限。

image

示例:为所有用户赋予可写可执行权限。

image

参数:R -> 递归修改目录文件的权限

  • 方式二:以数字形式修改文件权限

Linux权限的表示方法:

Linux表示 二进制表示 八进制表示 解释说明
r-- 100 4 只读
-w- 010 2 只写
--x 001 1 可执行
rw- 110 6 可读可写
r-x 101 5 可读可执行
-wx 011 3 可写可执行
rwx 111 7 可读可写可执行
--- 000 0

image

目录dir和文件file的权限使用八进制表示为:

目录dir的权限:775
文件file的权限:664

示例:将文件file的权限修改为所有用户可读可写可执行,如果使用方式一:

chmod a=rwx file

使用方式二:

image

示例:再将文件file修改回原来的权限

image

  • 参数R:递归修改目录文件的权限

如果目录层级很深,或者下级有多个目录,逐个目录修改权限会很麻烦。

这是可以使用参数:R

示例

新建多级目录

image

修改目录dir的权限

image

不加参数时,只修改了目录dir本身的权限,其下级目录的圈钱未改变。

image

加了参数R后,目录dir和其下级所有目录均改变了权限。

6.6 修改拥有者和所属组

使用chown修改文件及目录的拥有者和所属组

格式:

chown [参数] [拥有者][所属组] [文件或目录]

image

chmod命令相同,如果要修改目录及其下级目录和文件,需要使用参数R

image

posted @   奔放热带鱼在家刷剧  阅读(1294)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示