Skip to content

$$ 图形界面 Linux 上看到的图形界面,都只是运行在 Linux 系统之上的一套软件,跟 windows 完全不同 $$

介绍

Linux 默认提供了 6 个纯命令行界面的终端让用户登录。在物理机系统上你可以通过使用 [Ctrl]+[Alt]+[F1]~[F6] 进行切换,当你切换到其中一个终端后想要切换回图形界面,你可以按下 [Ctrl]+[Alt]+[F7] 来完成

没有结果就是最好的结果

快捷键

按键作用
Tab补全命令,命令参数,目录【当忘记某个命令的全称时可以只输入它的开头的一部分,然后使用 Tab 补全】
Ctrl+c强行终止当前程序【使用在光标在闪烁却无法继续输入命令,或者不停地输出一大堆你不想要的结果】
Ctrl+d键盘输入结束或退出终端
Ctrl+s暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z将当前程序放到后台运行,恢复到前台为命令 fg
Ctrl+a将光标移至输入行头,相当于 Home
Ctrl+e将光标移至输入行末,相当于 End
Ctrl+k删除从光标所在位置到行末
Alt+Backspace向前删除一个单词
Shift+PgUp将终端显示向上滚动
Shift+PgDn将终端显示向下滚动
恢复之前的命令

当你看到终端没有任何反应或提示,也不能接受输入时,可能只是运行的程序需要等一下,先不要急着按 `Ctrl+c`

通配符

通配符用来对字符串进行模糊匹配

字符含义
*匹配 0 或多个字符
?匹配任意一个字符
[list]匹配 list 中的任意单一字符
[^list]匹配 除 list 中的任意单一字符以外的字符
[c1-c2]匹配 c1-c2 中的任意单一字符 如:[0-9][a-z]
{string1,string2,...}匹配 string1 或 string2 (或更多) 其一字符串
{c1..c2}匹配 c1-c2 中全部字符 如
bash
ls *.txt 
查找多个 `.txt` 后缀的文件

touch love_{1..10}_shiyanlou.txt 
一次性创建多个文件【 `love1linux.txt``love2linux.txt`,... ,`love10linux.txt`

权限

用户

什么是 `root` 账户 ? `root` 是 Linux 和 UNIX 系统中的超级管理员用户帐户,拥有整个系统至高无上的权限【新建,添加用户】

大部分 Linux 系统在安装时都会建议用户新建一个用户,而不是直接使用 root 用户进行登录


  • 查看本机上所有的用户 cat /etc/passwd

  • 切换到 root 用户 sudo -i

who 命令

参数说明
-m查看当前用户。如果没有输出用户名,可以在 shell 里设置 在命令启动时更新 utmp/wtmp 记录
-a打印能打印的全部
-d打印死掉的进程
-q打印当前登录用户数及用户名
-u打印当前登录用户登录信息
-r打印运行等级

`who -m` 与 `whoami` 的区别

  • who -m 显示当前登录用户的信息
  • whoami 显示当前执行命令的用户的用户名

创建,登录,退登

使用 `sudo` 命令的两个前提

  • 你要知道当前登录用户的密码
  • 当前用户必须在 sudo 用户组

su <user> 可以切换到用户 user,执行时需要输入目标用户的密码 sudo <cmd> 可以以特权级别运行 cmd 命令【暂时获得 root 权限】,需要当前用户属于 sudo 组,且需要输入当前用户的密码 su - <user> 命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的


  • 创建用户【用户名为 lilei
bash
sudo adduser lilei
  • 为新用户在 /home 目录下创建一个工作目录
bash
ls /home
  • 切换登录用户
bash
su -l lilei
  • 打印当前工作目录的路径
bash
pwd
  • 使用 exit 命令退出当前用户

`adduser` 和 `useradd` 的区别是什么

  • useradd 只创建用户,不会创建用户密码和工作目录,创建完了需要手动使用 passwd <username> 去设置新用户的密码,更像是一种命令
  • adduser 在创建用户时,会创建工作目录和密码,做这一系列的操作。更像是一种程序,需要你输入、确定等一系列操作

删除用户

bash
// 将lilei用户删除,--remove-home是删除用户时会一并将该用户的工作目录
sudo deluser lilei --remove-home

用户组

每个用户都有一个用户组,用户组里的用户共享一些资源和权限,同时拥有私有资源

  • 一个用户可以属于多个用户组
  • 默认情况下新创建的用户不在 sudo 用户组【也就不具有 root 权限】
  • 新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组

查看当前用户组

bash
groups 用户名

添加用户到用户组

使用 `usermod` 命令必需有 root 权限【可以直接使用 root 用户,或者用在 sudo 用户组的用户使用 sudo 命令获取权限】

bash
// 将lilei添加到 sudo 用户组
sudo usermod -G sudo lilei

删除用户组

sudo groupdel 用户名

文件

在 Unix/Linux 中的每一个文件或目录都包含访问权限【决定谁能访问和如何访问】,Linux 里面一切皆文件

文件的详细信息 ![](https://obsidian-1307744200.cos.ap-guangzhou.myqcloud.com/%E5%9B%BE%E7%89%87/202403101054357.png)

以 `.` 开头的文件都是隐藏文件

ls 命令

参数描述
-l以长格式显示文件和目录的详细信息
-a显示所有文件和目录【包括隐藏文件
-h以可读的格式显示文件大小
-d仅显示目录本身,不显示其内容
-S按文件大小排序,从大到小显示文件和目录
-r反向排序,以逆序显示文件和目录
-t按修改时间排序,最新修改的文件或目录显示在前面
-R递归地显示子目录和文件
-i显示文件的 inode 号
--color以彩色形式显示不同类型的文件
bash
ls -l

---
lrwxrwxrwx 1 root root 14 3月 10 02:37 anaconda3 -> /opt/anaconda3 
drwxr-xr-x 2 shiyanlou shiyanlou 4096 1月 6 2021 Code 
drwxr-xr-x 2 shiyanlou shiyanlou 4096 1月 6 2021 Desktop
bash
// 以长格式,按文件的大小排序,以可读的方式,显示所有所有文件和目录
ls -aShl   

---
-rw-r--r-- 1 shiyanlou shiyanlou 6.3K 1月 6 2021 .vimrc
-rw-r--r-- 1 shiyanlou shiyanlou 4.2K 3月 10 05:00 .zshrc

文件类型

  • 设备文件:/dev 目录下有各种设备文件,大都跟具体的硬件设备相关
  • socket:网络套接字
  • pipe: 管道
  • 软链接:软链接等同于 Windows 上的快捷方式,另一种是“硬链接”
  • 目录:目录是一种特殊类型的文件,目录 = 目录文件 = 文件数据 + 文件列表信息 + 文件名 + 文件的 inode 号 + ……

Linux 上不是通过文件后缀名来区分文件的类型

文件权限

当你想打开一个目录并查看其内部的文件时,该目录必须同时具有读权限和执行权限

  • 读权限:允许你读取目录的内容【查看目录中的文件列表和相关信息】
  • 执行权限:允许你进入目录并访问其内部的文件

文件的权限有三种:所有者,所属用户组,其他用户

  • 修改文件权限【u 代表文件的所有者(user),g 代表文件所在组(group),o 代表其他用户(others),a 代表所有用户(all,包含用户、组和其他人)。用 +/- 来修改】
bash
cd ……/testdir
chmod go-rw iphone11  # group,others同时减去r权限,和w权限

chmod -R go-rw abc/  # -R 递归其子目录

链接数

链接到该文件所在的 inode 结点的文件名数目

所有者

  • 更改所有者
bash
cd ……/testdir
sudo chown shiyanlou testdir