常用linux工具命令
2024/10/3大约 11 分钟
常用linux工具命令
命令行使用
screen命令
- 一般语法
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
-A 将所有的视窗都调整为目前终端机的大小
-d <作业名称> 将指定的screen作业离线
-h <行数> 指定视窗的缓冲区行数
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业
-r <作业名称> 恢复离线的screen作业
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业
-s 指定建立新视窗时,所要执行的shell
-S <作业名称> 指定screen作业的名称
-v 显示版本信息
-x 恢复之前离线的screen作业
-ls或--list 显示目前所有的screen作业
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
# 也可以通过kill命令,将-ls列出的session的进程号中断
screen -d yourname -> 卸载某个session
screen -d -r yourname -> 结束当前session并回到yourname这个sessionscreen中的键盘快捷键
| 按键 | 解释 |
|---|---|
| ctr-a ? | 显示简单说明 |
| ctr-a c | 开启新的窗口 |
| ctr-a n | 切换到下一个窗口 |
| ctr-a p | 切换到前一个窗口 |
| ctr-a 0..9 | 切换到第几个窗口 |
| ctr-a space | 循环显示 |
| ctr-a ctr-a | 在两个最近的窗口间切换 |
| ctr-a x | 锁住当前窗口 |
| ctr-a d | 暂时离开当前session |
| ctr-a w | 列出已开启的窗口 |
| ctr-a t | 显示当前时间 |
| ctr-a k | 强行关闭当前窗口 |
vim命令
权限
添加当前用户管理员权限
此任务特指使用虚拟机的自动安装导致的无管理员权限但知道管理员密码的问题
- 使用管理员账号或创建管理员账号(需管理员密码)
- 在管理员账号下,先安装vim,使用
sudo vim /etc/sudoers进入管理员列表 - 输入
需要添加的用户名 ALL=(ALL:ALL) ALL wq!强制保存- 在设置中的用户里给需要添加的用户添加管理员权限
网络
nmcli命令
- nmcli dev
- 查看和修改物理设备信息、连接WiFi
- nmcli con
- 查看和修改逻辑设备信息、实现带宽均衡
文件
匹配文件
- 一般文件匹配
* - 隐藏文件也匹配
{.,}*
文件常用操作
创建修改查看移动删除复制
# 创建文件夹dir1, -p忽略已创建带来的错误
mkdir dir1
# 查看文件信息,-a表示显示隐藏文件,-lh表示查看详细信息
ls
# 如果需要查看文件夹真实大小
# -s表示显示主目录大小,不递归显示,-maxdepth表示显示最大深度
# -h表示大小通过MB,GB等单位显示
du -sh
# 查看文件行数
wc -l file_name
# 复制文件,-r表示递归复制,可以使用正则匹配
# -n 表示跳过存在的文件
cp /dir_cp /dir_out
# 删除文件,-r表示递归删除,-f表示直接删除(不显示提示)
rm file_name
# 删除文件夹,若不为空不删除
rmkdir folder_name
# 剪切移动,默认递归移动,也可用于文件重命名
mv file_name to_name
# 压缩文件,name.zip是压缩文件名称,之后为需要压缩的文件或目录
# -r表示递归压缩文件目录
# -d可以用于删除压缩文件中的指定文件
# -u表示将文件更新到已有压缩文件中,如果不存在添加
# -f表示更新压缩文件中的指定文件,如果不存在就跳过
# -m表示移动压缩,在压缩完后删除源文件
# -e对压缩包进行加密
# -z添加压缩包注释,按.结束,在解压时会展示出来
zip name.zip a.c b.c
#解压缩
#-c将解压缩的结果显示到屏幕上,并对字符做适当的转换
#-f更新现有的文件
#-l显示压缩文件内所包含的文件
#-p与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
#-t检查压缩文件是否正确
#-u与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
#-v执行是时显示详细的信息
#-z仅显示压缩文件的备注文字
#-a对文本文件进行必要的字符转换
#-b不要对文本文件进行字符转换
#-C压缩文件中的文件名称区分大小写
#-j不处理压缩文件中原有的目录路径
#-L将压缩文件中的全部文件名改为小写
#-M将输出结果送到more程序处理
#-n解压缩时不要覆盖原有的文件
#-o不必先询问用户,unzip执行后覆盖原有文件
#-P<密码>使用zip的密码选项
#-q执行时不显示任何信息
#-s将文件名中的空白字符转换为底线字符
#-d<目录>指定文件解压缩后所要存储的目录,不存在将创建
#-x<文件>指定不要处理.zip压缩文件中的哪些文件
#-Z等于执行zipinfo指令
#-V保留VMS的文件版本信息
#-X解压缩时同时回存文件原来的UID/GID
unzip -l name.zip -d store_folderfind命令
find用于查找文件夹下的某些文件
# 在dirname下查找文件
find dirname
# 其他选项
-name: 按照文件名查找
-perm: 按照文件权限来查找
-type: 查找某一类型的文件,诸如: f-普通文件、d-目录、c-字符文件、b-块设备、p-管道文件、l-符号连接
-follow: 如果find命令遇到符号连接文件,就跟踪至连接所指向的文件
# -depth: 在处理目录下的子内容后处理目录本身(深度优先)
# -maxdepth: 指定最大深度
# -prune: 可用使find命令不在当前制定的目录中查找,如果同时使用-depth选项,那么-prune将被find忽略
# -user: 按照文件属主查找
# -group: 按照文件属组查找
# -nouser: 查找无有效属主的文件
# -nogroup: 查找无有效属组的文件
# -newer file1 file2: 查找更改时间比file1新,但是比file2旧的文件
# -size: [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
# -fstype: 查找属于某一类型文件系统的文件
# -mount: 查找文件时不跨越文件系统mount点
# -cpio: 对匹配的文件使用cpio命令,将文件备份到磁带设备中
# -mtime -n +n: 按照文件的修改时间来查找,-n文件更改时间距现在n天以内,+n文件更改时间距现在n天以前
# -amin n: 查找系统中最后n分钟访问的文件
# -atime n: 查找系统中最后n*24小时访问的文件
# -cmin n: 查找系统中最后n分钟被改变文件状态的文件
# -ctime n: 查找系统中最后n*24分钟被改变文件状态的文件
# -mmin n: 查找系统中最后n分钟被改变文件数据的文件
# -mtime n: 查找系统中最后n*24小时被改变文件数据的文件chmod命令
chmod可修改文件的权限- 文件权限示意图如下:

chmod [-cfvR] [--help] [--version] mode file...
# 其中mode可以使用字符串也可以直接使用文件权限3位数数字(如上图)
# mode字符串格式如下
# [ugoa...][[+-=][rwxX]...][,...]
# u表示该文件的拥有者,g表示与该文件的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是,默认是a
# +表示增加权限、-表示取消权限、=表示覆盖权限
# r表示可读取,w表示可写入,x表示可执行,X表示只有当该文件是个子目录或者该文件已经被设定过为可执行
# 其他参数说明:
# -c : 若该文件权限确实已经更改,才显示其更改动作
# -f : 若该文件权限无法被更改也不要显示错误讯息
# -v : 显示权限变更的详细资料
# -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
# --help : 显示辅助说明
# --version : 显示版本dd命令
dd可以复制文件,还可以指定生成格式- 参数
- if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
- of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
- ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
- obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
- bs=bytes:同时设置读入/输出的块大小为bytes个字节。
- cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
- skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
- seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
- 注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
- count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
- conv=conversion:用指定的参数转换文件。
- ascii:转换ebcdic为ascii
- ebcdic:转换ascii为ebcdic
- ibm:转换ascii为alternate ebcdic
- block:把每一行转换为长度为cbs,不足部分用空格填充
- unblock:使每一行的长度都为cbs,不足部分用空格填充
- lcase:把大写字符转换为小写字符
- ucase:把小写字符转换为大写字符
- swab:交换输入的每对字节
- noerror:出错时不停止
- notrunc:不截短输出文件
- sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
- status:设置为progress时可在命令行查看进度
- 功能
- 制作镜像盘
sudo dd if=/dev/sdb of=~/test.img,将sdb制作成镜像文件test.img
制作的镜像盘大小可能与设备容量有关,可能很大,需要使用count等参数控制制作的范围,可以在linux磁盘工具或
gparted中缩小需要复制的磁盘大小后再制作(count指的是bs块的数量,这两个相乘应该略大或等于已使用的空间大小),并使用zip等方式压缩sudo dd if=/dev/sdb bs=16M count=1436 iflag=fullblock status=progress | zstd -19 --long=27 -T0 -o backup.img.zst,之后使用zstd -d -T0 backup.img.zst -c | sudo dd of=/dev/sdb bs=32M status=progress使用 - 制作镜像盘
命令联动
|将命令的输出作为另一个命令的输入>将命令的输出重定向到文件
ssh
sshd_config文件
- 允许root账号登录和使用密码登录
sudo vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yesscp命令
rsync命令
# 同步文件夹,将第二个文件夹变成第一个一样,-a表示递归,--delete表示删除folder2中新增的文件,使2和1完全相同
# 还有--exclude排除某些文件同步,允许正则,可写多个
# -v查看详细操作,--progress查看传输进度
rsync -a --delete folder1/ folder2/ssh命令
ssh服务器安装
端口情况
系统
apt命令
- 更换国内源
# 修改源列表
sudo vi /etc/apt/sources.list
# 将国内源站的源复制到此文件中
# 比如:清华源、阿里源
# 更新源
sudo apt updateapt基本功能- 搜索软件包:使用
sudo apt search package_name可以搜索可用的软件包 - 升级软件包:
sudo apt upgrade用于升级所有已安装的软件包到最新版本 - 移除软件包:
sudo apt remove package_name用于卸载指定的软件包,而sudo apt autoremove则用于删除不再依赖的软件包 - 列出软件包:
sudo apt list可以列出所有可用的软件包,而sudo apt list --installed列出所有已安装的软件包 - 更新软件仓库:
sudo apt update用于更新软件仓库信息,确保列出的是最新的软件包版本
- 搜索软件包:使用
df命令
df命令用于显示磁盘使用情况,包括磁盘总空间、已使用空间、剩余空间和已使用百分比等信息# 显示磁盘使用情况 df -h
