linux笔记
环境
debian 12
(提示:作者记录的是debian 12的笔记,如果你的是不同的Linux系统,命令可能不一样。)
基本说明
闲来无事,记录一下学习linux的笔记,一来可以备忘,假如忘了翻自己的笔记就是最有效的回忆方法,二来可以在别人需要的时候给他推我的笔记。
基础概念
绝对路径和相对路径:绝对路径是从根目录开始到某个目录的完整路径;相对路径是相对当前所在目录来说的。比如我在“/home/biamxine”目录下,假设该目录下有目录“test”,则“test”就是我在“/home/biamxine”下“test”的相对路径,而它的绝对路径是“/home/biamxine/test”。假如你在“/home/biamxine”目录下,想知道“test”目录下有什么,你可以用相对路径(ls test),也可以用绝对路径(ls /home/biamxine/test),在任何地方用绝对路径都不会有问题,相对路径需要以当前目录作为参照目录。
笔记
目录和文件
cd:change directory,进入目录,可以是绝对路径,也可以是相对路径。
pwd:print working directory,输出当前目录绝对路径。
ls:list,显示当前所在目录的子目录和文件。
常用选项 | 选项作用 |
---|---|
a | 显示当前所在目录的所有子目录和文件,包括隐藏目录和文件,还有“.”(当前目录)和“..”(当前目录的父目录) |
A | 显示当前所在目录的所有子目录和文件,包括隐藏目录和文件,不包括“.”(当前目录)和“..”(当前目录的父目录) |
l | 列出目录和文件的详细信息 |
h | 以适合人类阅读的单位显示存储信息 |
“ls -l”列出的文件和目录详细信息有7列,例如“drwxr-xr-x 3 root root 4096 Jul 20 00:03 test”,从左到右每一列的含义如下
- 文件类型和文件权限,“drwxr-xr-x”首字符是文件类型,常见的有“d”(目录)和“-”(文件);后面9个字符每连续三个为一组,分别表示所有者、所属组和其他人对该目录或文件的权限。对于文件来说,“r”表示可读,“w”表示可写,即修改,“x”表示可执行;对于目录来说,“r”表示可读,即可查看目录的子目录和文件,“w”表示具有删除、移动目录的子目录和文件的权限,“x”表示可进入目录。
- 该目录或文件的一级子目录数目,文件的为1,即只有它自己,可以通过“ls 文件路径”查看,只会打印文件自己;目录的就看该目录有几个一级子目录,包含“.”和“..”。
- 目录或文件的所有者。
- 所属的组。
- 目录或文件的大小。
- “Jul 20 00:03”,文件或目录最后的修改日期和时间。
- 文件或目录名。
mkdir:make directory,创建一个或多个目录。
常用选项 | 选项作用 |
---|---|
p | 默认只允许在已存在目录创建新目录,加了此选项可以在创建新目录时也创建新目录不存在的父目录 |
touch:touch,创建一个或多个文件。
rm:remove,删除一个或多个文件或目录(删除目录需要带r选项)。
常用选项 | 选项作用 |
---|---|
r | 递归删除目录及其内容 |
f | 强制,忽略不存在的文件和参数,且从不询问 |
clear:clear,清空屏幕。
ln:
vim编辑器
介绍
vim是Linux里一款非常好用的编辑器,它有着众多的快捷键,熟练使用的话能极大提高你的工作效率。
基本操作
编辑文件命令
1 | vim <file_name> |
最基本快捷键和命令
- 切换模式
i:从光标当前位置进入插入模式,插入模式可以输入内容。
ESC键:退出到正常模式,比如在插入模式插入内容完成,需要按“ESC”键退出插入模式再保存并退出。
::命令模式,冒号后面跟命令,按回车执行命令。
- 保存和退出
快捷键:
ZZ(shift+zz):保存更改并退出。
ZQ(shift+zq):不保存更改退出。
命令:命令 命令作用 :wq 保存更改并退出 :q! 不保存更改退出
想了解更多vim相关快捷键及命令请参阅我另外一篇博文“vim 常用快捷键及命令(点我跳转)”。
用户和群组
命令
useradd:user add,创建新用户。
常用选项 | 选项左右 |
---|---|
m | 创建用户家目录,debian中创建新用户默认不创建用户家目录,即使用d选项指定也不会创建新的家目录,故若要在创建用户时创建家目录则必须带着该选项 |
d | 指定新用户的家目录 |
D | 显示或更改默认的useradd配置,比如“useradd -D -s /bin/bash”表示更改创建新账户的默认登录shell为bash |
g | 新账户主组的名称或 ID |
G | 新账户的附加组列表 |
s | 新账户的登录 shell |
userdel:user delete,删除用户,默认不删除用户主目录。
常用选项 | 选项作用 |
---|---|
r | 删除主目录和信件池 |
usermod:user modify,用于修改用户账户的属性和配置。
常用选项 | 选项作用 |
---|---|
d | 用户的新家目录 |
e | 设置用户账户的过期时间,例如“usermod -e 2023-7-25 user_name”表示修改user_name的账户过期时间为2023-7-25,过期账户无法登录系统。e选项参数为“-1”表示永不过期 |
g | 参数为一个组,强制设置参数为用户新主组 |
G | 新的附加组列表GROUPS,会将用户从G中没有提到的原有附加组中移除 |
a | 需要配合G选项使用,将用户追加至上边G选项中提到的附加组中,并不从其它组中删除此用户 |
l | 修改登录名称 |
s | 更改用户新登录shell |
u | 更改用户ID |
L | 锁定用户,将无法使用密码登录该用户,但我试了一下,使用ssh公钥登录仍可以登录账户 |
U | 解锁被锁定的用户,解锁之前需要给用户改密码,不然无法解锁 |
passwd:password,更改用户密码。
常用选项 | 选项作用 |
---|---|
d | 删除用户密码,就是让用户可以不使用密码登录 |
e | 强制使用户密码过期 |
k | 仅在密码过期后修改密码???????? |
w | 设置过期警告天数 |
m | 设置到下次修改密码所须等待的最短天数 |
x | 设置到下次修改密码所须等待的最多天数 |
l | 锁定用户 |
u | 解锁用户 |
chage:change age,修改用户密码过期时间或查看用户密码过期时间等信息(需带选项)。
常用选项 | 选项作用 |
---|---|
l | 显示指定用户年龄信息,参数为用户名 |
E | 设置用户过期时间,如“chage -E 2023-7-25 user_name”,参数为“-1”表示永不过期,若要取消过期仍然是用这个选项为用户指定新的过期时间 |
m | 设置用户连续两次修改密码的最短天数 |
M | 设置用户连续两次修改密码的最长天数 |
W | 设置密码过期警告天数 |
id:打印一个或多个用户的用户和组信息。
常用选项 | 选项作用 |
---|---|
g | 仅显示有效组ID |
G | 仅显示所有组ID |
u | 仅显示有效用户ID |
n | 配合u或g或G选项使用,仅显示名称而非数字 |
groupadd:group add,创建群组。
常用选项 | 选项作用 |
---|---|
g | 指定新建组GID |
U | 将后面的用户新加到该新建群组 |
groupdel:group delete,删除群组,一次只能删除一个群组。
常用选项 | 选项作用 |
---|---|
f | 即便是用户的主组也强制删除 |
groupmod:更改群组信息,添加组成员等。
常用选项 | 选项作用 |
---|---|
g | 更改组的GID |
n | 更改组名 |
U | 参数为群组的用户列表,可以用来添加用户至组,但会把参数中没有的原组中成员移出群组,若不想移出,则需带a参数一起使用 |
a | 配合U选项使用,添加U选项的参数用户至组并不把参数中没有的原组中成员移出群组 |
gpasswd:更改组密码,添加组成员等。不跟选项参数为组就可以更改组密码,例如“gpasswd biamxine”是更改组biamxine的密码,输入命令按下回车就会在下一行提示让你输入密码。
常用选项 | 选项作用 |
---|---|
a | 选项参数是用户,将用户添加至组 |
d | 选项参数是用户,将用户从组中移出 |
r | 移除组密码 |
M | 参数为组的用户列表,会将组原有但列表中没有的成员移出组 |
A | 参数为管理员列表 |
文件
Linux中用户和组的信息会存放在一些相关的配置文件中,这里将介绍几个相关文件。若要修改用户和组相关信息,请使用命令更改,不要直接更改配置文件。
用户基本信息文件
文件路径为“/etc/passwd”,是一个包含所有用户账户信息的文件。每一行记录一位用户的信息。例如“biamxine:x:1000:1000::/home/biamxine:/bin/bash”,一行共有7个字段,字段之间用冒号分隔,从左到右每个字段含义如下:
- 用户名。
- 用户登录密码,但实际上密码已经不存放在这,在现代系统中,这个字段通常是 “x”,表示密码已经存储在“/etc/shadow”文件中。
- 用户UID。
- 用户主组GID。
- 用户信息,可以是用户的全名或注释等信息。
- 家目录,用户登录后所在的初始目录。
- 用户登录后默认使用的Shell。
用户密码信息文件
文件路径为“/etc/shadow”,是Linux系统中存储用户账户的加密密码和相关信息的重要文件。它通常只能由root访问,用于保护用户密码信息。每行记录代表一个用户账户,字段之间使用冒号分隔,总共有 9 个字段。如“biamxine::19563:0:99999:1:::”,从左到右每个字段的含义分别是
- 用户名。
- 用户密码加密后的形式。
- 上次更改密码的日期,为自1970年1月1日至今的天数。
- 用户更改密码之间的最小天数。
- 密码的有效期限,从上次更改密码的日期开始计算。超过该天数后,密码将过期,用户需要更改密码。
- 密码过期提前警告天数。
- 不活动天数,如果用户在这么多天内没有登录,用户账户将自动锁定。
- 用户账户的有效期限。
- 保留字段,无含义,等待未来使用。
群组文件
文件路径为“/etc/group”,是一个包含所有用户组信息的文件,用于管理用户组及其成员的关联,每行代表一个用户组。例如“biamxine:x:1000:”,一行共有4个字段,由冒号分隔开,从左到右每个字段的含义如下:
- 组名。
- 在早期的Unix系统中,这个字段用于设置用户组密码,现代系统通常将其设置为 “x”,表示密码已经存储在“/etc/gshadow”文件中。
- 组的GID。
- 组成员,用户名之间用逗号分隔。
群组密码文件
文件路径为“/etc/gshadow”,用于存放组密码的文件。每一行代表一个组。例如“biamxine:!::”,一行共有4个字段,由冒号分隔开,从左到右每个字段含义如下:
- 组名。
- 加密后的组密码。
- 组管理员。
- 组附加用户列表。
硬盘管理
命令
df
du
fdisk
mkfs
文件
/etc/fstab
网络配置
命令
ifconfig
文件
进程和内存管理
ps
kill
free
jobs
nohup
disown
top
其他
arch