Linux笔记
Linux笔记
Wells用户管理
创建指令
通常是useradd
或adduser
使用
useradd
命令:1
sudo useradd 选项 用户名
- 选项:
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录(如果已存在)。如果此目录不存在,则同时使用-m选项,可以创建主目录。如:
sudo useradd –d /home/sam -m sam
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
- 选项:
使用
adduser
命令:1
sudo adduser 用户名
创建用户后,系统会自动为该用户分配一个默认的主目录和用户组。
设置密码
passwd
命令:
1 | sudo passwd 选项 用户名 |
选项:
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
修改帐号
usermod
命令,其格式如下:
1 | usermod 选项 用户名 |
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等
,这些选项的意义与useradd
命令中的选项一样,可以为用户指定新的资源值。
另外,有些系统可以使用选项:-l
新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
删除帐号
userdel
命令,其格式如下:
1 | userdel 选项 用户名 |
常用的选项是 -r
,它的作用是把用户的主目录一起删除。
用户组管理
增加用户组
groupadd
命令:
1 | groupadd 选项 用户组 |
选项:
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除用户组
groupdel
命令
1 | groupdel 用户组 |
修改用户组
groupmod
命令
1 | groupmod 选项 用户组 |
选项:
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
用户在用户组之间切换
newgrp
命令
1 | newgrp root |
(前提条件是root用户组确实是该用户的主组或附加组)这条命令将当前用户切换到root用户组,
权限控制
授予用户sudo权限
用户到sudo用户组:
在某些Linux发行版中,可以将用户添加到sudo用户组来赋予其sudo权限。
使用以下命令将用户添加到sudo用户组:
1
sudo usermod -aG sudo 用户名
文件权限
文件权限位包括读取(read)、写入(write)和执行(execute)权限。
- 读取权限(r)允许用户查看文件内容和属性。
- 写入权限(w)允许用户修改文件内容和属性。
- 执行权限(x)允许用户以可执行文件的形式运行文件(例如,脚本或可执行程序)或进入目录。
每个文件都有三组权限位,分别对应文件的所有者、用户组和其他用户。
更改文件权限
chmod
命令可以更改文件的权限
数字模式:
可以使用三个八进制数字(0-7)来表示权限位。每个数字代表一个权限组,分别表示所有者、用户组和其他用户的权限。
- 每个权限位用一个数字表示,对应的值为:
- r:4 w:2 x:1 -:0
- 将三个权限位的数字相加,得到一个三位数,例如:
- rwx:4 + 2 + 1 = 7
- rw-:4 + 2 + 0 = 6
- r–:4 + 0 + 0 = 4
- —:0 + 0 + 0 = 0
符号模式:
可以使用 +
、-
和 =
符号来添加、移除或设置权限。符号前表示用户u(所有者)、g(用户组)、o(其他用户)、a(所有用户),后表示所操作的权限。
- 给予读取权限:
- 给予所有者读取权限:
chmod u+r 文件名
- 给予用户组读取权限:
chmod g+r 文件名
- 给予其他用户读取权限:
chmod o+r 文件名
- 给予所有用户(包括所有者、用户组和其他用户)读取权限:
chmod a+r 文件名
- 给予所有者读取权限:
- 给予写入权限:
- 给予所有者写入权限:
chmod u+w 文件名
- 给予用户组写入权限:
chmod g+w 文件名
- 给予其他用户写入权限:
chmod o+w 文件名
- 给予所有用户写入权限:
chmod a+w 文件名
- 给予所有者写入权限:
- 给予执行权限:
- 给予所有者执行权限:
chmod u+x 文件名
- 给予用户组执行权限:
chmod g+x 文件名
- 给予其他用户执行权限:
chmod o+x 文件名
- 给予所有用户执行权限:
chmod a+x 文件名
- 给予所有者执行权限:
远程登录
Linux 系统中是通过 ssh 服务实现的远程登录功能,默认 ssh 服务端口号为 22
第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。
第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。
密钥连接
1.生成ssh key的文件
windows 用户可以使用 WSL,或使用 Git Bash进行执行命令
ssh-keygen
命令
1 | ssh-keygen 参数 |
可选参数:
-t
:指定密钥类型。常见的选项包括rsa
、dsa
、ecdsa
和ed25519
。默认为rsa
。-b
:指定密钥位数。默认为 2048 位。常见的选项包括 1024、2048、4096。-C
:添加注释。可以在生成的公钥文件中添加一段注释,用于标识该密钥的用途或所有者等信息。-f
:指定生成的密钥文件名。可以自定义密钥文件的名称和路径。-N
:设置密码短语(passphrase)。可以为私钥文件设置密码短语,以增加安全性。-q
:静默模式。生成密钥时不显示进度或警告信息。-y
:从私钥文件中提取公钥。可以使用私钥文件生成对应的公钥文件。
1 | XiaoWei@XiaoWEI MINGW64 ~/.ssh |
注意:
密钥用于鉴权,请谨慎保管。公钥文件以 .pub 扩展名结尾,可以公开给其他人,而没有 .pub 扩展名的私钥文件不要泄露给任何人!
2.部署公钥到服务器
创建 SSH 目录和授权文件:在目标服务器上,如果尚未存在,请创建
.ssh
目录,并将其权限设置为700
:1
2mkdir -p ~/.ssh
chmod 700 ~/.ssh添加公钥到授权文件:将公钥粘贴到服务器上的
~/.ssh/authorized_keys
文件中。如果该文件不存在,请创建它,并将其权限设置为600
:1
2vim ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys保存并退出:保存对
authorized_keys
文件的更改,并退出服务器。
3.更改配置文件
有些Linux可能默认禁止ssl的密钥登录
SSH 配置文件位于
/etc/ssh/sshd_config
,可使用以下命令进行配置1
sudo vi /etc/ssh/sshd_config
如果您只想更改用户级别的 SSH 配置,可以编辑
~/.ssh/config
文件。在配置文件中,常见的 SSH 配置选项:
Port
:指定 SSH 服务器监听的端口号。PermitRootLogin
:允许或禁止使用 root 用户进行 SSH 登录。PasswordAuthentication
:允许或禁止使用密码进行身份验证。PubkeyAuthentication
:允许或禁止使用公钥进行身份验证。AllowUsers
或AllowGroups
:限制允许登录的用户或组。DenyUsers
或DenyGroups
:禁止登录的用户或组。PrintMotd
:显示登录时的欢迎信息。Banner
:指定自定义的登录横幅文件。
4.本机ssh的config设置(快捷登录)
1 | Host 名称(自己决定,方便输入记忆的) |
软件安装
Ubuntu/Debian:
- 使用APT包管理器:
- 安装软件:
sudo apt-get install 软件名称
- 卸载软件:
sudo apt-get remove 软件名称
- 更新软件包列表:
sudo apt-get update
- 升级已安装的软件包:
sudo apt-get upgrade
- 安装软件:
- 使用APT包管理器:
CentOS/RHEL/Fedora:
- 使用YUM包管理器:
- 安装软件:
sudo yum install 软件名称
- 卸载软件:
sudo yum remove 软件名称
- 更新软件包列表:
sudo yum update
- 升级已安装的软件包:
sudo yum upgrade
- 安装软件:
- 使用YUM包管理器:
Alpine Linux:
使用apk包管理器:
安装软件:
apk add 软件名称
卸载软件:
apk del 软件名称
更新软件包列表:
apk update
升级已安装的软件包:
apk upgrade
常用命令
前置知识
1.目录符号
/
表示从 根目录
~
表示从 家目录(即/home/用户名,root用户为/root
)
.
代表当前目录
..
代表上一级目录
2.绝对目录与相对目录
相对路径 在输入路径时,使用.
或者..
,表示相对 当前目录 所在的目录位置
绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置,特点:需要写入完整地址
3.>
和 >>
重定向 命令
功能:将命令执行结果重定向到一个文件,将本应显示在终端上的内容 输出或追加 到指定文件中
>
表示输出,会覆盖文件原有的内容
>>
表示追加,会将内容追加到已有文件的末尾
4.|
管道符
- Linux 允许将 一个命令的输出 可以通过管道
|
做为 另一个命令的输入 - 这里 | 的左右分为两端, 左端塞东西(写),右端取东西(读)
pwd
命令
对应单词:print working directory
功能:打印当前工作目录
ls
命令
对应单词:list
功能:列出目录的内容或者使用通配符列出文件名匹配的文件
格式:
1 | ls [参数] |
可选参数
-a | 显示指定目录下所有目录与文件,包括隐藏文件 |
---|---|
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
注意:以 .
开头的文件为隐藏文件,需要用 -a 参数才能显示
find
命令
对应单词:find
功能:指定目录及其子目录下查找文件和目录
格式
1 | find [路径] [匹配条件] [动作] |
常用的匹配条件:
可选匹配条件 | 作用 |
---|---|
-name | 按文件名查找,支持使用通配符 * 和 ? |
-type | 按文件类型查找,可以是 f (普通文件)、d (目录)、l (符号链接)等。 |
-size[+-] | 按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c (字节)、w (字数)、b (块数)、k (KB)、M (MB)或 G (GB)。 |
-mtime | 按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。 |
-user | 按文件所有者查找。 |
-group | 按文件所属组查找。 |
cd
命令
对应单词:change directory
功能:更改当前的工作目录
格式:
1 | cd 目录 |
cd
搭配符号
命令 | 含义 |
---|---|
cd /cd ~ |
切换到当前用户的主目录(/home/用户目录) |
cd . | 保持在当前目录不变 |
cd .. | 切换到上级目录 |
cd – | 可以在最近两次工作目录之间来回切换 |
touch
命令
功能:
- 如果文件不存在,可以创建一个空白文件
- 如果文件已经存在,可以修改文件的末次修改日期
mkdir
命令
对应单词:make directory
功能:创建一个新的目录
选项 | 含义 |
---|---|
-p | 创建多级目录 需要创建一个目录的同时,也需要创建其上级目录(如果上级目录不存在) |
注意:新建目录的名称 不能与当前目录中 已有的目录同名
rm
命令
对应单词:remove
功能:删除文件或目录
可选参数 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
cp
命令
对应单词:copy
功能:复制文件或者目录
可选参数 | 含义 |
---|---|
-i | 覆盖文件前提示 |
-r | 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
mv
命令
对应单词:move
功能:移动文件或者目录/文件或者目录重命名
可选参数 | 含义 |
---|---|
-i | 覆盖文件前提示 |
cat
命令
对应单词: concatenate
功能:查看文件内容、创建文件、文件合并、追加文件内容等功能.,适合查看内容较少的文本文件
可选参数 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
more
命令
对应单词: more
功能: 分屏显示文件内容
使用 more 的操作键:
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter | 键 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索 word 字符串 |
echo
命令
对应单词: more
功能: 在终端中显示参数指定的文字,通常会和重定向联合使用
进程命令
ps
命令:
英文: process status
作用:显示当前正在运行的进程的快照。
命令 | 作用 |
---|---|
ps aux | 查看进程的详细状况 |
ps -ef | 显示所有进程的完整信息 |
ps 进程代号 | 显示特定进程代号的详细信息 |
top | |
kill [-9] 进程代号 | 终止指定代号的进程, -9 表示强行终止 |
ps
默认只会显示当前用户通过终端启动的应用程序 ps 选项说明
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程 |
top
命令:
作用: 动态显示运行中的进程并且可以按 CPU 使用率、内存使用率等对进程进行排序
输入 q
退出 top
命令界面
kill
命令:
作用: 向进程发送信号以终止或操作进程
常见用法
命令 | 作用 |
---|---|
kill 进程代号 | 向指定进程代号的进程发送默认的终止信号 |
kill -9 进程代号 | 向指定进程代号的进程发送强制终止信号 |
提示:使用 kill 命令时,最好只终止由当前用户开启的进程,而不要终止 root 身份开启的进程,否则可能导致系统崩溃
pgrep
命令:
作用: 向进程发送信号以终止或操作进程
1 | pgrep [选项] <进程名称> |
其中,<进程名称>
是要匹配的进程名称或模式。可以使用通配符进行模糊匹配。
可选选项 | 说明 |
---|---|
-u <用户名> | 根据用户名过滤进程。 |
-n | 仅返回最新的匹配进程的进程 ID。 |
-x | 精确匹配进程名称,不进行模糊匹配。 |
-d <分隔符> | 指定输出的分隔符,默认为换行符。 |
参考文章
参考菜鸟教程的文章
原文链接:Linux 用户和用户组管理 | 菜鸟教程 (runoob.com)、Linux find 命令 | 菜鸟教程 (runoob.com)
参考腾讯云开发者社区博主全栈程序员站长的文章
原文链接:史上最全的Linux常用命令汇总(超全面!超详细!)收藏这一篇就够了!-腾讯云开发者社区-腾讯云 (tencent.com)