$$ 图形界面 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 中全部字符 如 |
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】
sudo adduser lilei- 为新用户在 /home 目录下创建一个工作目录
ls /home- 切换登录用户
su -l lilei- 打印当前工作目录的路径
pwd- 使用
exit命令退出当前用户
`adduser` 和 `useradd` 的区别是什么
useradd只创建用户,不会创建用户密码和工作目录,创建完了需要手动使用passwd <username>去设置新用户的密码,更像是一种命令adduser在创建用户时,会创建工作目录和密码,做这一系列的操作。更像是一种程序,需要你输入、确定等一系列操作
删除用户
// 将lilei用户删除,--remove-home是删除用户时会一并将该用户的工作目录
sudo deluser lilei --remove-home用户组
每个用户都有一个用户组,用户组里的用户共享一些资源和权限,同时拥有私有资源
- 一个用户可以属于多个用户组
- 默认情况下新创建的用户不在
sudo用户组【也就不具有root权限】 - 新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组
查看当前用户组
groups 用户名添加用户到用户组
使用 `usermod` 命令必需有 root 权限【可以直接使用 root 用户,或者用在 sudo 用户组的用户使用 sudo 命令获取权限】
// 将lilei添加到 sudo 用户组
sudo usermod -G sudo lilei删除用户组
sudo groupdel 用户名文件
在 Unix/Linux 中的每一个文件或目录都包含访问权限【决定谁能访问和如何访问】,Linux 里面一切皆文件
文件的详细信息 
以 `.` 开头的文件都是隐藏文件
ls 命令
| 参数 | 描述 |
|---|---|
-l | 以长格式显示文件和目录的详细信息 |
-a | 显示所有文件和目录【包括隐藏文件】 |
-h | 以可读的格式显示文件大小 |
-d | 仅显示目录本身,不显示其内容 |
-S | 按文件大小排序,从大到小显示文件和目录 |
-r | 反向排序,以逆序显示文件和目录 |
-t | 按修改时间排序,最新修改的文件或目录显示在前面 |
-R | 递归地显示子目录和文件 |
-i | 显示文件的 inode 号 |
--color | 以彩色形式显示不同类型的文件 |
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// 以长格式,按文件的大小排序,以可读的方式,显示所有所有文件和目录
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,包含用户、组和其他人)。用
+/-来修改】
cd ……/testdir
chmod go-rw iphone11 # group,others同时减去r权限,和w权限
chmod -R go-rw abc/ # -R 递归其子目录链接数
链接到该文件所在的 inode 结点的文件名数目
所有者
- 更改所有者
cd ……/testdir
sudo chown shiyanlou testdir