2.Linux用户和权限与实用操作

三. Linux 用户和权限

  1. 认知 root 用户
    root (超级管理员):拥有最大的系统操作权限
    • 普通用户的权限,一般在其 HOME 目录内是不受限的
    • 一旦出了 HOME 目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
  • su 命令:切换到 root 账户
    su [-] [用户名]
    • - 符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
    • 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到 root
    • 切换用户后,可以通过 exit 命令退回上一个用户,也可以使用快捷键: ctrl + d
    • 使用普通用户,切换到其它用户需要输入密码,如切换到 root 用户
    • 使用 root 用户切换到其它用户,无需密码,可以直接切换
  • sudo 命令:为普通的命令授权,临时以 root 身份执行
    sudo 其他命令
    • 在其它命令之前,带上 sudo ,即可为这一条命令临时赋予 root 授权
    • 但是并不是所有的用户,都有权利使用 sudo ,我们需要为普通用户配置 sudo 认证
    配置sudo认证:
    su进入root-> visudo ->o ->底部输入[用户名] ALL=(ALL) NOPASSWD:ALL ->按esc ->:wq保存
  1. 用户、用户组管理
  • 用户组管理:需 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)
    getent group:查看当前系统中有哪些用户组
    含 3 份信息,组名称 : 组认证 ( 显示为 x): 组 ID
  1. 查看权限控制
    ls -l 可以以列表形式查看内容,并显示权限细节

    举例: drwxr-xr-x ,表示:
    • 这是一个文件夹,首字母 d 表示
    • 所属用户 ( 右上角图序号 2) 的权限是:有 r 有 w 有 x , rwx
    • 所属用户组 ( 右上角图序号 3) 的权限是:有 r 无 w 有 x , r-x ( - 表示无此权限)
    • 其它用户的权限是:有 r 无 w 有 x , r-x
    rwx
    • r 表示读权限
    • w 表示写权限
    • x 表示执行权限

  2. 修改权限控制 - 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 751 hello.txt
    r 记为 4 , w 记为 2 , x 记为 1

  3. 修改权限控制 - chown
    chown 命令:修改文件、文件夹的所属用户和用户组 (只适用于 root 用户执行)
    chmwn [-R] [用户][:][用户组] 文件或文件夹
    • 选项, -R ,同 chmod ,对文件夹内全部内容应用相同规则
    • 选项,用户,修改所属用户
    • 选项,用户组,修改所属用户组
    • : 用于分隔用户和用户组
    示例:
    • chown root hello.txt ,将 hello.txt 所属用户修改为 root
    • chown :root hello.txt ,将 hello.txt 所属用户组修改为 root
    • chown root:itheima hello.txt ,将 hello.txt 所属用户修改为 root ,用户组修改为 itheima
    • chown -R root test ,将文件夹 test 的所属用户修改为 root 并对文件夹内全部内容应用同样规则

四. Linux 实用操作

  1. 各类小技巧(快捷键)
  • ctrl + c 强制停止
  • ctrl + d 退出或登出,退出账户的登录(不能用于退出 vi/vim)
  • history 命令:查看历史输入过的命令
    可以通过: ! 命令前缀,自动执行上一次匹配前缀的命令
    可以通过快捷键: ctrl + r ,输入内容去匹配历史命令
    • 回车键可以直接执行
    • 键盘左右键,可以得到此命令(不执行)
  • 光标移动快捷键
    • ctrl + a ,跳到命令开头
    • ctrl + e ,跳到命令结尾
    • ctrl + 键盘左键,向左跳一个单词
    • ctrl + 键盘右键,向右跳一个单词
  • 清屏
    • 通过快捷键 ctrl + l ,可以清空终端内容
    • 或通过命令 clear 得到同样效果
  1. 软件安装
  • yum 命令:RPM 包软件管理器,用于自动化安装配置 Linux 软件,并可以自动解决依赖问题。(需要 root 权限,需要联网)
    yum [-y] [install | remove | search] 软件名称
    • 选项: -y ,自动确认,无需手动确认安装或卸载过程
    • install :安装
    • remove :卸载
    • search :搜索y
  • \此时出现cannot find a valid baseurl for repo:base/7/x86_64错误
    使用网站:https://blog.csdn.net/g310773517/article/details/140321025 的第四种办法解决
    使用阿里云或其他国内镜像源
    1更新YUM仓库源为阿里云镜像源:
    sudo nano /etc/yum.repos.d/CentOS-Base.repo
    2将内容替换为以下内容:
点击查看代码
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
保存文件并退出。3清理并重建缓存
点击查看代码
sudo yum clean all
sudo yum makecache
sudo yum update
  • Ubuntu 使用 apt 管理器
    apt [-y] [install | remove | search] 软件名称
  1. systemctl
    Linux 系统很多软件(内置或第三方)均支持使用 systemctl 命令控制:启动、停止、开机自启
    能够被 systemctl 管理的软件,一般也称之为:服务
    systemctl start | stop | status | enables | disable 服务名
    • start 启动
    • stop 关闭
    • status 查看状态
    • enable 开启开机自启
    • disable 关闭开机自启

  2. 软连接

  • ln 命令:创建软连接
    类似 Windows 系统中的《快捷方式》
    ln -s 参数1 参数2
    • -s 选项,创建软连接
    • 参数 1 :被链接的文件或文件夹
    • 参数 2 :要链接去的目的地
  1. 日期、时区
  • date 命令:在命令行中查看系统的时间
    date [-d] [+格式化字符串]
    • -d 按照给定的字符串显示日期,一般用于日期计算
    • 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
    示例:
    date +%Y-%m-%d %H:%M:%S:按照 2025-01-01 10:00:00 的格式显示日期
  • date 命令进行日期加减
    示例:
    date -d "+1 day" +%Y%m%d:显示后一天的日期
  • 修改Linux时区:修改时区为东八区时区
    root权限下,输入rm -f /etc/localtime
    `ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • ntp 程序:自动校准系统时间
    安装 ntp : yum -y install ntp
    启动并设置开机自启:
    systemctl start ntpd
    systemctl enable ntpd
  1. IP地址,主机名
  • 在 Linux 中修改主机名
    hostname: 查看主机名
    hostnamectl set-hostname 主机名:修改主机名(需 root )
  • 固定IP
    • 在 VMware Workstation (或 Fusion )中配置 IP 地址网关和网段( IP 地址的范围)
    • 在 Linux 系统中手动修改配置文件,固定 IP
  1. 网络传输
  • ping命令:检查指定的网络服务器是否是可联通状态
    ping [-c num] ip或主机名
    • 选项: -c ,检查的次数,不使用 -c 选项,将无限次数持续检查
    • 参数: ip 或主机名,被检查的服务器的 ip 地址或主机名地址
  • wget 命令 是非交互式的文件下载器,可以在命令行内下载网络文件
    wget [-b] url
    • 选项: -b ,可选,后台下载,会将日志写入到当前工作目录的 wget-log 文件
    • 参数: url ,下载链接
  • curl 命令:发送 http 网络请求,可用于:下载文件、获取信息等
    curl [-O] url
    • 选项: -O ,用于下载文件,当 url 是下载链接时,可以使用此选项保存文件
    • 参数: url ,要发起请求的网络地址
  • 端口
    Linux 系统支持 65535 个端口,分为 3 类:
    • 公认端口: 1~1023 ,通常用于一些系统内置或知名程序的预留使用,如 SSH 服务的22端口, HTTPS 服务的443端口
    • 注册端口: 1024~49151 ,通常可以随意使用,用于松散的绑定一些程序\服务
    *查看端口占用
    nmap 命令:查看端口的占用情况
    安装nmap:yum -y install nmap
    语法:nmap 被查看的 IP 地址
    netstat 命令:查看指定端口的占用情况
    安装 netstat : yum -y install net-tools
    语法: netstat -anp | grep 端口号
  1. 进程管理
  • ps 命令:查看 Linux 系统中的进程信息
    ps [-e -f]
    选项: -e ,显示出全部的进程
    选项: -f ,以完全格式化的形式展示信息(展示全部信息)
    管道符配合 grep 来进行过滤,示例:
    ps -ef | grep tail :即可准确的找到 tail 命令的信息
  • kill 命令:关闭进程
    kill [-9] 进程ID
    选项: -9 ,表示强制关闭进程。
  1. 主机状态
  • top 命令:查看 CPU 、内存使用情况,类似 Windows 的任务管理器
    top
  • df 命令:查看硬盘的使用情况
    di [-h]
    选项: -h ,以更加人性化的单位显示
  • iostat :查看 CPU 、磁盘的相关信息
    iostat [-x][num1][num2]
    • 选项: -x ,显示更多信息
    • num1 :数字,刷新间隔, num2 :数字,刷新几次
  • sar 命令:查看网络的相关统计( sar 命令非常复杂,这里仅简单用于统计网络)
    sar -n DEV num1 num2
    选项: -n ,查看网络, DEV 表示查看网络接口
    num1 :刷新间隔(不填就查看一次结束), num2 :查看次数(不填无限次数)
  1. 环境变量
  • env 命令:查看当前系统中记录的环境变量
    env
  • $ 符号:用于取”变量”的值。
    比如: echo $PATH:可以取得 PATH 这个环境变量的值,并通过 echo 语句输出出来
  • 自行设置环境变量
    临时设置,语法: export 变量名 = 变量值
    永久生效
    • 针对当前用户生效,配置在当前用户的: ~/.bashrc 文件中
    • 针对所有用户生效,配置在系统的: /etc/profile 文件中
    • 并通过语法: source 配置文件,进行立刻生效,或重新登录 FinalShell 生效
  1. 上传、下载
    在 FinalShell 软件的下方窗体中,提供了 Linux 的文件系统视图,可以方便的:
    • 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑
    • 浏览文件系统,找到合适的目录,将本地电脑的文件拓展进入,即可方便的上传数据到 Linux 中
  • rz 、 sz 命令:进行文件传输
    安装: yum -y install lrzsz
    • rz 命令,进行上传,语法: rz
    • sz 命令进行下载,语法: sz 要下载的文件
    文件会自动下载到桌面的: fsdownload 文件夹中。
  1. 压缩、解压
    .tar ,称之为 tarball ,归档文件,即简单的将文件组装到一个 .tar 的文件内,并没有太多文件体积的减少,仅仅是简单的封装
    .gz ,也常见为 .tar.gz , gzip 格式压缩文件,即使用 gzip 压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
  • tar 命令
    tar [-c -v -x -f -z -C] 参数1 参数2 ...参数N
    • -c ,创建压缩文件,用于压缩模式
    • -v ,显示压缩、解压过程,用于查看进度
    • -x ,解压模式
    • -f ,要创建的文件,或要解压的文件, -f 选项必须在所有选项中位置处于最后一个
    • -z , gzip 模式,不使用 -z 就是普通的 tarball 格式
    • -C ,选择解压的目的地,用于解压模式
  • tar压缩
    示例:
    tar -cvf test.tar 1.txt 2.txt 3.txt:将 1.txt 2.txt 3.txt 压缩到 test.tar 文件内
    tar -zcvf test.tar.gz 1.txt 2.txt 3.txt:将 1.txt 2.txt 3.txt 压缩到 test.tar.gz 文件内,使用 gzip 模式
  • tar解压
    示例:
    tar -xvf test.tar:解压 test.tar ,将文件解压至当前目录
    tar -xvf test.tar -C /home/itheima: 解压 test.tar ,将文件解压至指定目录( /home/itheima )
    tar -zxvf test.tar.gz -C /home/itheima: 以 Gzip 模式解压 test.tar.gz ,将文件解压至指定目录( /home/itheima )
  • zip 命令: 压缩文件为 zip 压缩包
    zip [-r] 参数1 参数2 ...参数N
    • -r ,被压缩的包含文件夹的时候,需要使用 -r 选项,和 rm 、 cp 等命令的 -r 效果一致
    示例:
    zip test.zip a.txt b.txt c.txt将 a.txt b.txt c.txt 压缩到 test.zip 文件内
    zip -r test.zip test itheima a.txt将 test 、 itheima 两个文件夹和 a.txt 文件,压缩到 test.zip 文件内
  • unzip 命令:解压 zip 压缩包
    unzip [-d] 参数
    • -d ,指定要解压去的位置,同 tar 的 -C 选项
    • 参数,被解压的 zip 压缩包文件
    示例:
    unzip test.zip ,将 test.zip 解压到当前目录
    unzip test.zip -d /home/itheima ,将 test.zip 解压到指定文件夹内( /home/itheima )
posted on 2025-05-18 15:25  Ctrl+C人生  阅读(44)  评论(0)    收藏  举报