1、简介
功能描述:
UOS命令行工具提供了一系列的功能,涵盖了文件管理、系统监控、网络配置、软件安装、文本处理、权限管理等多个领域。每个命令都有其特定的功能。
作用:UOS命令行工具的作用在于帮助用户高效地管理和控制UOS系统。它们可以用来创建、修改、删除文件和目录,启动、停止服务,配置网络参数,安装软件包,以及执行脚本和批处理任务。熟练使用这些工具可以显著提高工作效率,特别是在自动化任务和远程管理场景中。
目标群体:
系统管理员:负责维护服务器稳定运行,管理用户账户,配置硬件和软件环境。
开发人员:使用命令行进行软件构建、调试和部署,管理版本控制系统。
IT专业人员:包括网络工程师、数据库管理员等,他们使用特定的命令行工具来监控和优化系统性能。
高级用户:熟悉UOS系统的个人用户,他们使用命令行来定制自己的工作环境,执行复杂的操作。
使用场景:
日常文件管理:如创建、移动、复制、删除文件和目录。
系统维护:包括更新软件包、管理服务状态、监控系统健康状况。
网络配置:设置IP地址、子网掩码、路由表,管理网络接口。
脚本编写:使用shell脚本来自动化常规任务,如数据备份、系统清理。
软件开发:编译源代码、运行测试、调试程序、管理版本控制。
远程访问和管理:通过SSH等协议从远程位置控制UOS系统。
架构信息:
全架构
系统信息:
统信UOS桌面操作系统
2、常用快捷键
ctrl+h #显⽰/隐藏隐藏⽂件
ctrl+c #终⽌本次操作(⽤于终端终⽌命令操作)
ctrl+c #复制
ctrl+v #粘贴
ctrl+alt+a #系统截图
ctrl+alt+r #系统录屏
ctrl+alt+t #系统terminal终端
ctrl+alt+esc #系统监视器
ctrl+alt+Delete #关机界⾯
Super #启动器
Super + #屏幕放⼤
Super - #屏幕缩⼩
Super W #显⽰当前⼯作区的窗⼝
Super A #显⽰所有⼯作区的窗⼝
Super S #显⽰⼯作区
3、文件目录命令
ls #列出目录
ls -l #使用格式化列出文件
ls -al #使用格式化列出所有文件,含隐藏文件
cd dir #进入目录dir
cd #进⼊到指定的⽬录下
pwd #显示当前目录
mkdir dir #创建目录dir
rm file #删除文件file
rm -r dir #删除目录dir及子目录
rm -f file #强制删除文件file
rm -rf dir #强制删除目录dir及子目录
cp file1 file2 #将文件file1复制到文件file2
cp -r dir1 dir2 #将目录dir1复制到目录dir2
mv file1 file2 #将file1重命名或移动到file2
ln -s file link #创建file的符号连接link
touch file #创建file
cat file #显示file内容
more file #分屏查看file的内容
less file #滚动查看file的内容
head file #查看file的前10行
tail file #查看file的后10行
tree /boot/efi #查看目录树结构,需要安装:sudo apt install tree
sudo chown #修改⽂件/⽬录的属主或属组
sudo chmod #修改⽂件/⽬录的权限
4、APT命令
#查找软件:
apt search package-name
#重新安装软件:
sudo apt install --reinstall package-name
#修复依赖关系:
sudo apt install -f
#安装并修复依赖关系:
sudo apt install -f package-name
#卸载软件同时清除系统配置:
sudo apt purge package-name
#自动卸载不需要的软件并清除配置:
sudo apt autoremove --purge
#查看已安装软件包版本:
apt list package-name
#列出并筛选软件包:
apt list |grep qt5
#列出所有已安装软件包:
apt list --installed
#查看软件包内文件明细:
dpkg -L package-name
#查看系统包状态
dpkg -l|grep -v ii
#安装软件
sudo dpkg -i package-name
#卸载软件
sudo dpkg -P package-name
#重新安装系统dde桌⾯环境
sudo apt reinstall dde
5、系统信息
cat /etc/os-version #查看系统信息(系统版本、产品类型、发⾏版本)
uname -a #查询内核版本
cat /proc/cpuinfo #查询CPU信息
hostname #查看计算机名
lspci -tv #列出所有PCI设备
lsusb -tv #列出所有USB设备
lsmod #列出加载的内核模块
env #查看环境变量资源
free -m #查看内存使用量和交换区使用量
df -sh #查看各分区使用情况
ifconfig #查看网络接口属性,需 sudo apt install net-tools 或 ip address
route -n #查看路由表,或 ip route
top #实时显示进程状态
ping #查看两台机器⽹络是否正常连通
df -Th #查看磁盘使⽤情况
6、scp在设备间传送文件
#语法:scp 本地文件 远端用户名@远端IP:远端绝对路径
#作用:复制本地文件到192.168.1.2的桌面
scp ~/somefile.tar.xz uos@192.168.1.2:/home/uos/Desktop
#语法:scp 远端用户名@远端IP:远端文件绝对路径 当前目录
#作用:复制192.168.1.2桌面的somefile.tar.xz文件到本地当前目录(注意最后的点)
scp uos@192.168.1.2:/home/uos/Desktop/somefile.tar.xz .
#语法:scp -r 本地目录 远端用户名@远端IP:远端绝对路径
#作用:复制本地目录及其下的所有文件到192.168.1.2的桌面
scp -r ~/somedirectory uos@192.168.1.2:/home/uos/Desktop
#语法:scp -P ssh端口 本地文件 远端用户名@远端IP:远端绝对路径
#作用:使用ssh端口1979复制本地文件some.tar.xz到192.168.1.2的桌面
scp -P 1979 some.tar.xz uos@192.168.1.2:/home/uos/Desktop
7、解压缩命令
- tar命令:
#压缩:
tar -cJvf [目标文件名].tar.xz [源文件名/目录名]
#解压:
tar -xJvf [源文件名].tar.xz
-c #建立压缩档案
-x #解压
-t #查看内容
-r #向压缩归档文件末尾追加文件
-u #更新原压缩包中的文件
-v #显示所有过程
-J #有LZMA属性的
-z #有gzip属性的
-j #有bz2属性的
#万能解压,可根据文件后缀名自动判断
tar -xvf filename
- 7z命令:
#软件安装:
sudo apt install p7zip-full
#压缩:
7z a [目标文件名].7z [源文件名/目录名]
#解压并解包:
7z x [源文件名].7z
- unar命令:
#unar对压缩包中的中文编码支持非常好,是一个近乎万能的解压工具,用法很简单:
#用法:
unar [options] archive [files ...]
#帮助:
unar --help
8、系统更新
#该命令是检查系统组件包依赖关系是否有错误
sudo apt install -f
#该命令是清理依赖有问题的包
sudo apt autoremove
#该命令是清理本地仓库缓存
sudo rm -rf /var/lib/apt/lists/*
#该命令是更新本地仓库缓存
sudo apt update
#手动更新系统版本
sudo apt dist-upgrade
9、服务相关
#启动/停⽌/重启桌⾯服务
sudo systemctl start/stop/restart lightdm
#启动/停⽌/重启ssh服务
sudo systemctl start/stop/restart ssh
#启动/停⽌/重启⽹络服务
sudo systemctl start/stop/restart networking
#启动/停⽌/重启⽹络管理服务
sudo systemctl start/stop/restart NetworkManager
10、故障处理
#清理wps缓存
rm -rf ~/.local/share/Kingsoft
#清理wps缓存
rm -rf ~/.config/Kingsoft
#重新拉取任务栏进程
sudo pkill -f dde-dock
#Linux版微信清理缓存
rm -rf ~/.config/微信
#wine版本微信清理缓存
rm -rf ~/.deepinwine/Deepin-WeChat
#Linux版QQ清理缓存
rm -rf ~/.config/tencent-qq
#wine版本QQ清理缓存
rm -rf ~/.deepinwine/Deepin-QQ/
#清理秘钥环
rm -rf ~/.local/share/keyrings/login.keyring
#重新配置系统输⼊法
rm -rf ~/.config/fcitx && fcitx -r
11、开关机
- 关机
shutdown [选项] [参数] [参数]
-k #并不会真的关机,只是将警告讯息传送给所有使用者。
-r #关机后重新开机。
-h #等效于--poweroff,除非指定了--halt。
-P #--poweroff:关闭机器电源。
-H #--halt:停机。
-c #取消目前已经进行中的关机动作。
--help #显示帮助信息。
--no-wall #停机/关机/重启前不发送任何消息。
#例子:
shutdown -h now #立即关机。
shutdown -h 10 #指定10分钟后关机。
shutdown -r now #立即重启计算机。
shutdown -r +3 #指定三分钟后重启计算机,并提示消息。
shutdown -c #取消正在进行的关机操作。
- 重启
reboot [OPTIONS...] [ARG]
-p #关机。
-w #不要停机/关机/重启,仅把记录写入“/var/log/wtmp”文件。
-d #不把记录写入“/var/log/wtmp”文件。
-f #强制立即停机/关机/重启。
--halt #停止机器。
--no-wall #停机/关机/重启前不发送任何消息。
- 切换用户
su [选项] [-] [<用户> [<参数>...]]
-g #指定主要组,此参数仅对root用户可用。
-h #显示帮助信息。
-V #显示版本信息。
-m #变更身份时,不要变更环境变量。
-w #不重置指定的变量。
-,-l #使用户登录本身shell环境。
-c #向shell传递命令。
whoami #显示用户名等同于id -un
12、系统配置
- 时间
hwclock [功能] [选项...]
-r #显示RTC时间
-h #显示帮助信息
-v #显示版本信息
-w #将系统系统时间设置为RTC时间
-f #使用/dev/rtc0备用文件设置rtc时间
-s #将RTC时间设置为系统时间
date [选项]... [+格式]
-u #按照UTC(协调世界时)显示或设置时间
-s #按照给定字符串描述的时间来设置时间
-r #显示指定文件的最后修改时间
执行如下命令,修改“/etc/chrony.conf”文件添加时间同步服务器列表。
echo "server ntp.ntsc.ac.cn iburst" >> /etc/chrony.conf
执行如下命令,重启chrony服务。
systemctl restart chronyd
查看NTP服务工作是否正常。
chronyc sources
tzselect [选项]
-c #从最大城市最接近地理坐标COORD位置的时区中进行选择,COORD应使用ISO 6709表示法。例如巴黎的'-c +4852+00220'(以度和分表示,北和东),或'-c -35-058' 表示布宜诺斯艾利斯(度数、南部和西部)
-n #使用-c选项时显示最多LIMIT个位置(LIMIT默认值为10)
- 用户管理
#添加用户
useradd [选项] <参数>
-c #comment:给新用户添加备注
-d #home_dir:为HOME目录指定一个名字(如果不想用登录名作为主目录名的话)
-m #创建用户的HOME目录
-M #不创建用户的HOME目录(当默认设置里指定创建时,才用到)
-N #不创建与用户同名的组
-r #创建系统帐户(由系统使用,区别于个人账户)
-p #passwd:为用户帐户指定默认密码
-s #shell:指定默认登录的shell
-u #uid:为帐户指定一个唯一的UID
-U #--user-group:创建与用户同名的组,并将用户添加到组中
#例子
useradd -m -s /bin/bash -U uos #添加用户uos,带家目录、指定shell、同名组并加入组
#修改用户
usermod [选项] <参数>
-a #--append:把用户追加到某些组中,仅与-G一起使用
-d #--home:用户的新HOME目录如果同时使用-m选项,则会将当前HOME目录的内容移动到新HOME目录中,如果新HOME目录不存在,则创建
-l #--login:用户的名称将会从原用户名称修改为新用户名称
-G #--groups GROUP1[,GROUP2,...[,GROUPN]]]:用户属于的附加组列表组之间使用逗号隔开,没有空格
-u #--uid UID:设置用户ID的新数值
#例子
usermod -u 10002 uos #修改用户uos的UID为10002。
#删除用户
userdel [选项] <参数>
-h #--help:显示帮助信息
-r #--remove:用户HOME目录中的文件将随用户HOME目录和用户邮箱一起删除,在其它文件系统中的文件需要手动搜索并删除
-Z #--selinux-user:为用户删除所有的SELinux用户映射
#例子
userdel -r uos #删除uos用户,home目录及文件也将被删除。
#密码管理
passwd [选项] <参数>
-l #锁定密码,即禁用帐号
-u #解锁指定用户的密码
-d #删除用户密码,这是禁用一个用户密码的快速方法
#例子
passwd uos #修改uos用户的密码
#添加用户组
groupadd [选项] <参数>
-o #--non-unique:允许创建有重复 GID 的组
-g #GID:指定新用户组的组标识号
-r #--system:创建一个系统用户组
#例子
groupadd -g 1110 UOS #向系统中增加一个新组UOS,同时指定新组的组标识号是1110
#修改用户组
groupmod [选项] <参数>
-g #GID:为用户组指定新的组标识号
-n #修改用户组的名称
#例子
groupmod -g 1111 UOS #修改用户组UOS的ID为1111
#删除用户组
groupdel [选项] 参数
-R #chroot到的目录
-P #/etc/* 文件所在的前缀目录
-f #强制删除
#例子
groupdel UOS #删除用户组UOS
- 文件管理
#切换工作目录‘change directory’
cd [选项] [参数]
-P #显示出确实的路径,而非使用链接(link)路径
-L #使用物理目录结构而不跟随符号链接:在处理`..'之前解析DIR中的符号链接
-e #如果使用了-P参数,但不能成功确定当前工作目录时,返回非零的返回值
#例子
cd ./Downloads/ #使用相对路径切换到Downloads目录。
#查看目录的完整路径
pwd [选项]
-P #显示出确实的路径,而非使用链接(link)路径
-L #使用物理目录结构而不跟随符号链接:在处理`..'之前解析DIR中的符号链接
-e #如果使用了-P参数,但不能成功确定当前工作目录时,返回非零的返回值
#例子
pwd #显示当前目录
#显示真实有效的用户ID(UID)和组ID(GID)
id [选项] [参数]
-g #--group:显示用户所属群组的ID
-G #--groups:显示用户所属附加群组的ID
-u #--user:显示用户ID
#例子
id -g UOS #显示用户UOS所属的组ID
#列出文件和目录
ls [选项] [参数]
-a #显示所有文件及目录(也会列出以.开头的隐藏文件)
-l #将文件名、文件型态、权限、拥有者、文件大小等资讯详细列出
-p #将“/”指示符附加到目录名称后
-t #按照修改时间排序,最新的在最前面
-r #以当前排序方式进行倒序排序
-S #按照文件大小排序,最大的在最前面
-h #以易于阅读的格式输出文件大小(例如 1K、 234M、 2G等)
#例子
ls -lrt /etc #查看“/etc”目录下所有文件的所有信息,并按照修改时间倒序排列
#创建新目录
mkdir [选项] [参数]
-m #创建目录时直接配置目录的权限
-p #递归创建目录
#例子
mkdir -m 777 testdir3 #创建目录testdir3并配置权限为777
#删除文件或目录
rm [选项] 文件或目录
-f #--force:就是force的意思,忽略不存在的文件,不会出现警告信息
-i #--interactive:进行交互式删除,在删除前会询问使用者是否删除
-r #-R,--recursive:递归删除列出的全部目录及子目录
#例子
rm -rf test1 #删除test1目录及子目录所有文件
#复制文件或目录
cp [选项] [参数] [参数]
-f #强行复制文件或目录,不论目标文件或目录是否已存在
-i #若目标文件(destination)已经存在时,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答y时目标文件将被覆盖
-l #不复制文件,只是生成链接文件
-p #连同文件的属性一起复制过去,而非使用默认属性
-r #递归持续复制,用于目录的复制行为
#例子
cp -r /root/testdir1/* /root/testdir2/ #复制testdir1下所有文件及文件夹到testdir2目录
#移动或者重命名文件
mv [选项] [参数] [参数]
-f #强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i #若目标文件已经存在时,就会询问是否覆盖
-u #仅在源文件比目标文件新或目标文件不存在时,才执行移动操作
#例子
mv testfile1 testfile2 #修改testfile1的名称为testfile2
#查看文件内容
cat [选项][参数]
-b #–number-nonblank:和-n相似,只不过对于空白行不编号
-n #–number:由1开始对所有输出的行编号
-s #–squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行
-v #列出一些看不出来的特殊字符
#例子
cat /etc/hosts #查看hosts的内容
#查看文件内容
more [选项] [参数]
-d #显示帮助,而不是响铃
-f #统计逻辑行数而不是屏幕行数
-p #不滚屏,清屏并显示文本
-c #不滚屏,显示文本并清理行尾
-u #屏蔽下划线
-s #将多个空行压缩为一行
-<数字> #指定每屏显示的行数
+<数字> #从指定行开始显示文件
+/<字符串> #从匹配搜索字符串的位置开始显示文件
#快捷键
space或者z #向下翻页
b #向上翻页
Enter #向下滚动1行
= #显示当前行号
v #用vi编辑器打开当前内容
d #向下翻K行,默认K=11
q #退出more
h #显示快捷键帮助
#例子
more +100 testfile #从100行开始显示testfile内容
#查看文件内容
less [选项][参数]
-e #当文件显示结束后,自动离开
-f #强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-i #忽略搜索时的大小写
-m #显示类似more命令的百分比
-N #显示每行的行号
#快捷键
/字符串 #向下搜索“字符串”的功能
?字符串 #向上搜索“字符串”的功能
n #重复前一个搜索(与/或?有关)
N #反向重复前一个搜索(与/或?有关)
b #向后翻一页
d #向后翻半页
h #显示帮助界面
q #退出less命令
u #向前滚动半页
y #向前滚动一行
空格键 #滚动一页
回车键 #滚动一行
pagedown #向下翻动一页
pageup #向上翻动一页
#例子
less -N testfile #查看testfile,并显示行号
#查看文件的开头几行
head [选项] [参数]
-c #--bytes=[-]NUM:显示每个文件的前NUM个字节数
-n #--lines=[-]NUM:打印前NUM行
-q #--quiet,--silent:不显示包含给定文件名的文件头
-v #--verbose:总是显示包含给定文件名的文件头
#查看文件的最后几行
tail [选项][参数]
-f #随文件增长即时输出新增数据
-c #输出文件最后K个字节的内容如果文件中有中文,可能会被截断
-n #显示最后k行的内容
#例子
head -n 5 testfile #显示testfile的前5行
head -v -n 3 testfile #显示testfile的前3行,并显示文件名
#识别文件类型
file [选项] [参数]
-b #输出文件辨识结果时,不输出文件名称
-c #详细显示指令执行过程,便于排错或分析程序执行的情形
-f #列出文件列表中所列举文件的类型
-i #输出MIME类型的字符串
-z #查看压缩文件类型
-v #--version,显示版本信息
#例子
file -z test.tar.gz #查看压缩文件的类型
#设置文件权限
chmod [选项] [模式] [参数]
c #类似-v选项,但仅在做出修改时进行报告
f #不显示大多数错误消息
v #输出各个处理的文件的诊断信息
R #递归修改文件和目录
u #user:表示该文件的拥有者
g #group:表示与该文件的拥有者属于同一群体(group)的人
o #other:表示其他人
a #表示包括ugo三者
s #在执行命令时,设置用户或组ID
t #限制删除标志或粘性位(linux特殊权限)
+ #表示增加权限
- #表示取消权限
= #表示唯一设定权限
r #表示可读
w #表示可写
x #表示可执行
X #仅当文件是目录或已具有某些用户的执行权限时才执行/搜索
#例子
chmod a+x testfile #将文件testfilet设为所有人皆可执行
#查找具有某种特征的文件
find [选项] [参数][参数]
-print #将查找到的文件输出到标准输出
-amin #n:在过去n分钟内被读取过的文件
-anewer #file:比文件file更晚被读取过的文件
-atime #n:在过去n天内被读取过的文件
-cmin #n:在过去n分钟内被修改过的文件
-cnewer #file:比文件file更新的文件
-ctime #n:在过去n天内被修改过的文件
-prune #忽略某个目录
-perm #按执行权限来查找
-empty #文件为空并且是常规文件或目录
-ipath #p,-path p:路径名称符合p的文件,ipath会忽略大小写
-name #name,-iname name:文件名称符合name的文件,iname会忽略大小写
-size #n:文件大小是n单位的文件b代表512位元组的区块,c表示字元数,k表示kilo bytes,w是二个位元组
-type #c:文件类型是c的文件如d表示目录、c表示字型装置文件、b表示区块装置文件、p表示具名贮列、f表示一般文件、l表示符号连结、s表示socket、-pid n表示process id是n的文件
#例子
#查找/etc目录下前缀为host的文件
find /etc -name 'host*' -print
#在usr目录及子目录中,查找不是out开头的.txt结尾文件
find /usr -name "out*" -prune -o -name "*.txt" -print
#在当前目录及子目录中,查找属主具有读写执行、其他具有读执行权限的文件
find . -perm 755 -print
#查找超过100M、文件类型为一般文件的文件
find / -size +100M -type f -print
#查找2天前被修改过的,并且含有tra字符的文件
find . -mtime +2 -type f -name '*tra*' -print
#以文字的格式显示inode的内容
stat [选项][参数]
-f #不显示文件本身的信息,显示文件所在文件系统的信息
-L #显示符号链接
-c #文件权限
-t #简洁模式,只显示摘要信息
#例子
stat -f /tmp/testfile #显示文件所在文件系统的信息
#打包程序
tar [选项] [参数]
-A #新增压缩文件到已存在的压缩包
-B #设置区块大小
-c #建立新的压缩文件
-d #记录文件的差别
-r #向压缩归档文件末尾追加文件
-u #更新原压缩包中的文件
-x #从压缩的文件中提取文件
-t #显示压缩文件的内容
-z #支持gzip文件
-j #支持bzip2文件
-Z #支持compress文件
-v #显示操作过程
-l #只要不是所有链接都被输出就打印信息
-k #保留原有文件不覆盖
-m #不改变解压文件的修改时间
-w #确认压缩文件的正确性
-f #使用的归档文件名称
#例子
#将home目录及子目录压缩成tar格式
tar -cvf homebak.tar /home
#将homebak.tar文件解压
tar -xvf homebak.tar
#将home目录及子目录压缩成gzip格式
tar -zcvf homebak.tar.gz /home
#将homebak.tar.gz解压
tar -xzvf homebak.tar.gz
#打包程序
gzip [选项] [参数]
-c #--stdout或--to-stdout:把压缩后的文件输出到标准输出设备,不去变动原始文件
-d #--decompress或----uncompress:解开压缩文件
-r #--recursive:递归处理,将指定目录下的所有文件及子目录一并处理
-f #--force:强行压缩文件不理会文件名称或硬连接是否存在以及该文件是否为符号连接
-l #--list:列出压缩文件的相关信息
-n #--no-name:压缩文件时,不保存原来的文件名称及时间戳记
-N #--name:压缩文件时,保存原来的文件名称及时间戳记
-q #--quiet:不显示警告信息
-S #----suffix:更改压缩字尾字符串
-t #--test:测试压缩文件是否正确无误
-v #--verbose:显示指令执行过程
-V #--version:显示版本信息
-L #--license:显示版本与版权信息
-num #用指定的数字num调整压缩的速度-1或--fast表示最快压缩(低压缩比),-9或--best表示最慢压缩(高压缩比),系统缺省值为6
#例子
#将testfile压缩成testfile.gz
gzip /tmp/testfile
#解压testfile.gz文件
gzip -dv testfile.gz
#递归压缩目录
gzip -rv test
#递归解压目录
gzip -drv test
- 磁盘管理
#统计目前操作系统上文件系统磁盘空间的使用情况
df [选项] [参数]
-a #--all:包括伪、重复、不可访问的文件系统
-B #--block-size={SIZE}:使用{SIZE}大小的Blocks
-h #--human-readable:使用人类可读的格式(预设值是不加这个参数的)
-H #--si:很像-h,但是用1000为单位而不是用1024
-i #--inodes:显示inodes信息,而非块使用量
-k #--kilobytes:就像是--block-size=1024
-l #--local:只显示本机的文件系统
-P #--portability:使用POSIX输出格式
--sync #在获取使用信息之前调用sync命令,从内存中同步数据至磁盘
-t #--type=TYPE:只显示TYPE类型的文件系统
-T #--print-type:显示文件系统的形式
#例子
df -h #显示目前磁盘空间和使用情况
#用于显示目录或文件的大小
du [选项][参数]
-a -all:显示目录中个别文件的大小
-b -bytes:显示目录或文件的大小时,以byte为单位
-c --total:除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-D #仅取消引用命令行中列出的符号链接
-h #--human-readable:以K、M、G为单位,提高信息的可读性
-H #等效于--dereference-args
-k #等效于--block-size=1k
-l #--count-links:重复计算硬件连接的文件
-L #解引用所有符号链接
-m #等效于--block-size=1M
-s #--summarize:仅显示总计大小
-S #--separate-dirs:显示个别目录的大小时,并不包含其子目录的大小
-x #--one-file-xystem:以一开始处理时的文件系统的目录为准,若遇上其它不同的文件系统的目录则略过
-X #--exclude-from=<文件>:在<文件>指定目录或文件
--exclude #--exclude=<目录或文件>:略过指定的目录或文件
#例子
du /tmp/testfile1 /tmp/testfile2 #显示多个文件的大小
#创建和维护分区表
fdisk [选项] [参数]
-l #列出所有分区表
-u #显示单位,“cylinders”柱面或“sectors”扇区
-s #指定扇区显示的设备大小
#命令
m #显示菜单和帮助信息
a #活动分区标记/引导分区
d #删除分区
l #显示分区类型
n #新建分区
p #显示分区信息
q #退出不保存
t #设置分区号
v #进行分区检查
w #保存修改
#例子
fdisk -l #查看当前分区情况
- 任务管理
#进程查看
ps [选项]
-A #所有的进程均显示出来,与-e具有同样的效用
-a #显示现行终端机下的所有进程,包括其他用户的进程
-u #以用户为主的进程状态
-e #选择所有进程,与-A相同
x #通常与-a这个参数一起使用,可列出较完整信息
l #较长、较详细的将所查询PID的信息列出
j #工作的格式(jobs format)
f #以完整格式输出,包括命令行
#例子
ps -ef | grep java #查找并显示java进程的信息
#向进程发送信号
kill [选项] [参数]
0 EXIT #程序退出时收到该信息
1 HUP #挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2 INT #表示结束进程,但并不是强制性的,常用的“Ctrl+C”快捷键发出的就是该信号
3 QUIT #退出
9 KILL #杀死进程,即强制结束进程
11 SEGV #段错误
15 TERM #正常结束进程,是kill命令默认发送的信号
#例子
kill -9 12345 #强制杀死进程号为12345的进程
kill -KILL 12345 #强制杀死进程号为12345的进程
kill -l #显示信号列表
#前台后台命令
fg <作业号>;bg <作业号>
#例子
bg 1 #将作业号为1且在后台暂停的命令,变成继续执行
fg 1 #将作业号为1调回到前台,继续执行
nohup Command [ Arg … ] [&]
#例子
nohup start.sh & #将脚本程序在后台保持一直运行状态
#用于定期执行程序
crontab [选项] [参数]
-u #user:用来设定某个用户的crontab服务,例如"-u demo"表示设备demo用户的crontab服务,此参数一般由root用户来运行
-e #编辑某个用户的crontab文件内容如果不指定用户,则表示编辑当前用户的crontab文件
-l #显示某用户的crontab文件内容如果不指定用户,则表示显示当前用户的crontab文件内容
-r #从“/var/spool/cron”删除某用户的crontab文件如果不指定用户,则默认删除当前用户的crontab文件
-i #在删除用户的crontab文件时,给确认提示
#常用时间对照
第一个* 一小时当中的第几分钟(minute) 0~59
第二个* 一天当中的第几小时(hour) 0~23
第三个* 一个月当中的第几天(day) 1~31
第四个* 一年当中的第几个月(month) 1~12
第五个* 一周当中的星期几(week) 0~7(0和7都代表星期日)
#特殊符号
*(星号) 代表任何时间。比如第一个"*"就代表一小时中每分钟都执行一次的意思。
,(逗号) 代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的8点0分、12点0分、16点0分都执行一次命令。
-(中杠) 代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨5点0分执行命令。
/(正斜线) 代表每隔多久执行一次。比如"*/10****命令",代表每隔10分钟就执行一次命令。
#例子
crontab -l #查看定时任务
crontab -r #删除定时任务
#重定向命令
cmd > file #把标准输出重定向到一个新文件中
cmd >> file #把标准输出重定向到一个文件中(追加)
cmd 1 > file #把标准输出重定向到一个文件中
cmd > file 2 > & 1 #把标准输出和标准错误一起重定向到一个文件中
cmd 2 > file #把标准错误重定向到一个文件中
cmd 2 >> file #把标准错误输出重定向到一个文件中(追加)
cmd >> file 2 > & 1 #把标准输出和标准错误一起重定向到一个文件中(追加)
cmd < file > file2 #cmd命令以file文件作为输入,以file2文件作为输出
cmd < file #cmd命令以file文件作为输入
cmd & m #把标准输出重定向到文件描述符m中
#例子
ls -l /usr/ > ls.txt #将某个目录下所有文件及目录的列表保存在一个文本文件中
ls -l /usr/ >> ls.txt #将某个目录下所有文件及目录的列表追加到一个文本文件中
ls /var/log/messgaes > /dev/null 2 > /dev/null #正常输出和错误信息都不显示,将把标准输出和标准错误都重定向到/dev/null
- 环境变量
#当前用户的环境变量
env [选项][参数]
-0 #以空字符而非新行符结束每一输出行
-i #开始一个新的空的环境变量
-u #从当前环境中撤销一个变量
#例子
env #显示所有环境变量
env -i PATH=/root/testdir ./test.sh #设置执行test.sh脚本时的环境变量
env | egrep -i "user|mail|pwd" #查询变量
#设置或显示环境变量
export [选项] [参数]
-f #代表变量名称为函数名称
-n #删除指定的变量变量实际上并未删除,只是不会输出到后续指令的执行环境中
-p #列出所有的shell赋予程序的环境变量
#例子
export -p #查询所有的环境变量
export PATH=/usr/local/nginx/bin:$PATH #修改环境变量,修改完成后,执行echo $PATH #查看环境变量是否设置成功
永久的环境变量:
在终端执行如下命令
vi /etc/profile
在文件的最末段设置要配置的环境变量,如配置java环境变量。
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
执行source /etc/profile命令,立即生效。否则,需要重启操作系统。
- 网络管理
#查看网络设备状态
ifconfig [网络设备] [参数]
add <地址> #设置网络设备的IP地址
del <地址> #删除网络设备的IP地址
down #关闭指定的网络设备
netmask <子网掩码> #设置网络设备的子网掩码
#例子
ifconfig #显示网络设备信息
ifconfig eth1 down #关闭网络接口eth1
ifconfig -a #显示当前有效的全部接口信息
ifup & ifdown
ifup #激活一个指定的网络接口。
ifdown #关闭一个指定网络接口
#例子
ifup eth1 #激活网络接口eth1
ifdown eth1 #关闭网络接口eth1
nmcli
#例子
#显示网络管理器的整体状态
nmcli general status
#查看主机名
nmcli general hostname
#设置主机名
nmcli general hostname new_name
#查看所有网络信息
nmcli connection show
#查看指定接口信息
nmcli connection show ens33
#显示所有活动连接
nmcli connection show --active
#查看网络设备状态
nmcli device status
#创建动态IP地址的网卡连接
nmcli connection add type ethernet con-name ens37 ifname ens37
说明:
connection add:#添加新的连接
con-name:#连接名
type:#设备类型
ifname:#接口名
#创建固定IP地址的网卡连接
nmcli connection add type ethernet con-name ens37 ifname ens37 ipv4.addresses 192.168.38.142/24 ipv4.gateway 192.168.38.2 ipv4.method manual
#重载配置文件使配置生效
nmcli connection reload
#启动ens37网卡
nmcli connection up ens37
#停止ens37网卡
nmcli device disconnect ens37
#给ens37网卡添加DNS
nmcli connection modify "static" ipv4.dns "202.131.124.4 202.131.124.5"
#说明:static为连接名
#删除网卡
nmcli connection show
nmcli connection delete 网卡名称
#修改网卡的IP地址
nmcli connection modify ens37 ipv4.addresses 192.168.38.161/24
#说明:ens37为网卡名称
#查看生成的配置文件
cat /etc/sysconfig/network-scripts/ifcfg-ethernet-ens37
#修改连接名称
nmcli connection modify ethernet-ens37 con-name ens37
#允许/禁止开机自动启动
nmcli connection modify enp2s0 connection.autoconnect yes
nmcli connection modify enp2s0 connection.autoconnect no
#给网卡增加IP地址或者删除额外的IP地址
nmcli connection modify ens37 +ipv4.addresses 192.168.38.161/24
nmcli connection modify ens37 -ipv4.addresses 192.168.38.161/24
#重启网络
nmcli connection reload
systemctl restart NetworkManager
#显示或操作IP等相关信息
ip [选项] [参数]...
-V #-Version:显示版本信息
-s #-stats,statistics:输出详细信息
-h #-human,-human-readable:输出人类可读的统计信息和后缀
-o #-oneline:将每条记录输出到一行,用‘\’字符代替换行符
#对象
link #网络设备
address #设备上的协议(IP或IPv6)地址
addrlabel #协议地址选择的标签配置
route #路由表条目
rule #路由策略数据库中的规则
#例子
ip addr show或ip address show #显示网卡及配置的地址
ip addr add 192.168.100.20/24 dev eth0 #设置IP地址,24表示子网掩码的长度是24位,换算成十进制是255.255.255.0
ip addr del 192.168.100.20/24 dev eth0 #删除IP地址
ip link set eth0 up #启用被禁用的网卡eth0
ip link set eth0 down #禁用网卡eth0
ip -s link list #显示详细的设备信息
ip route list #显示核心路由表
#动态获取或释放IP地址
dhclient [选项][参数]
-p #指定DHCP客户端监听的端口号
-d #总是以前台方式运行程序
-r #释放IP地址
-4/-6 #支持IPv4或者IPv6
#例子
dhclient -4 eth0 #指定支持IPv4协议
dhclient -r #释放当前IP地址
#显示和操作IP路由表
route [选项] [参数]
-n #--numeric:不解析名字
-v #--verbose:显示详细的处理信息
-F #--fib:显示发送信息
-C #--cache:显示路由缓存
add #添加一条新路由
del #删除一条路由
-net #目标地址是一个网络
-host #目标地址是一个主机
netmask #当添加一个网络路由时,需要使用网络掩码
metric #设置路由跳数
gw #路由数据包通过网关,注意,您指定的网关必须能够达到
#例子
#添加一条到达192.168.100.0网络的路由,指定网络掩码为255.255.255.0,数据包通过网络接口eth0
route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
#添加一条到达192.168.100.0网络的路由,指定网络掩码为255.255.255.0,数据包通过网关192.168.100.1
route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1
#所有去往192.168.100.20主机的数据包发往网关192.168.100.1
route add -host 192.168.100.20 gw 192.168.100.1
#添加一条默认网关,所有的数据包将被转发到192.168.100.1
route add default gw 192.168.100.1
#添加或设置网关
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
#删除路由记录
route del -net 192.168.100.0 netmask 255.255.255.0
#检查网络是否连通
ping [选项] [参数]
-d #使用Socket的SO_DEBUG功能
-c #<完成次数>:设置完成要求回应的次数
-f #极限检测
-i #<间隔秒数>:指定收发信息的间隔时间
-I #<网络界面>:使用指定的网络接口送出数据包
-l #<前置载入>:设置在送出要求信息之前,先行发出的数据包
-n #只输出数值
-p #<范本样式>:设置填满数据包的范本样式
-q #不显示指令执行过程,开头和结尾的相关信息除外
-r #忽略普通的Routing Table,直接将数据包发送到远端主机上
-R #记录路由过程
-s #<数据包大小>:设置数据包的大小
-t #<存活数值>:设置存活数值TTL的大小
#例子
ping 192.168.100.20 #查看本机的网络状态
ping -i 3 -s 1024 192.168.100.20 #设置发送周期和包大小
ping -c 2 192.168.100.20 #收到两次包后自动退出
ping -i 0.5 -c 10 192.168.100.20 #每0.5秒发送一次网络封装包并限制发送10次
#追踪网络数据包的路由途径
traceroute [选项] [参数]
-d #使用Socket层级的排错功能
-f #设置第一个检测数据包的存活数值TTL的大小
-F #设置勿离断位
-g #设置来源路由网关,最多可设置8个
-i #使用指定的网络界面送出数据包
-I #使用ICMP回应取代UDP资料信息
-m #设置检测数据包的最大存活数值TTL的大小
-n #直接使用IP地址而非主机名称
-p #设置UDP传输协议的通信端口
-r #忽略普通的Routing Table,直接将数据包送到远端主机上
-s #设置本地主机送出数据包的IP地址
-t #设置检测数据包的TOS数值
-w #设置等待远端主机回报的时间
#例子
traceroute 192.168.100.20 #显示到达目的地的数据包路由
traceroute -m 4 192.168.100.20 #显示到达目的地的数据包路由,设置数据存活数值为4
#用来查询域名、检查域名解析是否正确
host [选项] [参数] [参数]
-a #查询所有的信息
-c #设置查询类型
-C #查询完整的SOA记录
-d | -v #显示详细过程
-l #列表模式
-t #选择查询类型:CNAME NS SOA SIG KEY AXFR
-w #永久等待
-W #设置等待超时
#例子
host -a 192.168.100.20 #查看域名地址的详细信息
#查询Internet域名信息或诊断DNS服务器问题的工具
nslookup [选项] [参数]
#例子
nslookup www.baidu.com #查询网站域名信息
nslookup -q=mx mail.qq.com #查看邮件服务器的信息
#查看网络连接状态
netstat [选项] [参数]
-a #all:显示所有选项,netstat默认不显示LISTEN相关
-t #tcp:仅显示tcp相关选项
-u #udp:仅显示udp相关选项
-n #拒绝显示别名,能显示数字的全部转化成数字(重要)
-l #仅列出有在Listen(监听)的服务状态
-p #显示建立相关链接的程序名
-r #显示路由信息、路由表
-e #显示扩展信息,例如UID等
-s #按各个协议进行统计(重要)
-c #连续打印所选信息
#例子
netstat -a #列出所有网路端口
netstat -i #显示网卡列表
netstat -apu #查看udp相关的程序
netstat -s #显示网络统计信息
网络工具
服务端输入:nc -l 8888 #8888为服务端设定的端口
客户端输入:nc 192.168.100.20 8888 #客户端连接需要输入服务端的IP地址及端口号
客户端输入任何消息,服务端的shell终端会展示数据
服务端回复任何消息,客户端的shell终端会展示数据
以A作为服务器端,以B作为客户端:
服务端(A)输入:nc -l 8888 < /home/file.txt #传送file.txt文件
注意:服务端需要指定需要传输的文件
客户端(B)输入:nc -n 192.168.100.20 8888 > /root/file.txt #接收file.txt文件
注意:客户端需要指定保存文件的地址
服务端(A)输入:tar -cvf - /tmp | nc -l 8888 #传送tmp目录
客户端(B)输入:nc -n 192.168.100.20 8888 | tar -xvf - #接收tmp目录
#非交互式的网络文件下载工具
wget [选项][参数]
-a #在指定的日志文件中记录执行过程
-A #指定要下载文件的后缀名,多个后缀名之间使用逗号隔开
-b #以后台的方式运行wget
-B #设置参考的连接地址的基地地址
-c #继续执行上次终端的任务
-d #以调试模式运行指令
-D #--domains=列表:逗号分隔的可接受的域名列表
-e #作为文件“.wgetrc”中的一部分执行指定的指令
-h #显示帮助信息
-i #从指定文件获取要下载的URL地址
-l #指定递归最大深度级别,默认最大深度级别为5
-L #仅关注相关链接用于在没有任何干扰的情况下检索特定主页,即使是来自同一主机的主页
-r #递归下载方式
-nc #文件存在时,下载文件不覆盖原有文件
-nv #下载时只显示更新和出错信息,不显示详细执行过程
-q #不显示执行过程
-v #显示详细执行过程
#例子
#下载网页
wget https://www.uniontech.com/
#限速下载
wget --limit-rate=1K https://www.uniontech.com/
#后台下载
wget -b https://www.uniontech.com/
#文件传输工具,它支持文件的上传和下载
curl [选项] [参数]
-A #设置用户代理发送给服务器
-b #cookie字符串或文件读取位置
-c #操作结束后把cookie写入到这个文件中
-C #断点续转
-D #把header信息写入到该文件中
-e #来源网址
-f #连接失败时不显示http错误
-o #把输出写到该文件中
-O #把输出写到该文件中,保留远程文件的文件名
-r #检索来自HTTP/1.1或FTP服务器的字节范围
-s #静默模式,只执行命令不输出任何东西
-T #上传文件
-u #设置服务器的用户和密码
-# #进度条显示当前的传送状态
-x #--proxy <host[:port]>:在给定的端口上使用HTTP代理
#例子
curl https://www.uniontech.com #将网站内容显示在终端屏幕上
curl https://www.uniontech.com >> test.html #重定向保存为test.html
curl -o test1.html https://www.uniontech.com #抓取网站页面内容并保存在文件中
curl -D cookied.txt http://www.linux.com #保存http的response里面的header信息
- 系统和服务管理
systemd可以管理所有系统资源。不同的资源统称为unit(单元),unit一共分成12种:
Service #系统服务,守护进程的启动、停止、重启和重载是此类unit中最为明显的几个类型
Target #多个unit构成的一个组
Device #硬件设备,此类unit封装一个存在于Linux设备树中的设备每一个使用udev规则标记的设备都将会在systemd中作为一个设备unit出现udev的属性设置可以作为配置设备unit依赖关系的配置源
Mount #文件系统挂载点,此类unit封装系统结构层次中的一个挂载点
Automount #自动挂载点,此类unit封装系统结构层次中的一个自挂载点每一个自挂载unit对应一个已挂载的挂载unit
Path #文件或路径,用于监控指定文件或目录变化,并触发其他unit运行
Scope #不是由Systemd启动的外部进程
Slice #进程组
Snapshot #systemd快照,可以切回unit的某个运行状态
Socket #进程间通信的socket,此类unit封装系统和互联网中的一个socket当下,systemd支持流式、数据报和连续包的AF_INET、AF_INET6、AF_UNIX socket,也支持传统的FIFOs传输模式
Swap #swap文件
Timer #定时器
#例子
systemctl --help #查看其他更多参数及其含义
systemctl --version #检查您的系统中是否安装有systemd并查询当前安装的版本
systemctl reboot #重启系统
systemctl poweroff #关闭系统、切断电源
systemctl halt #CPU停止工作
systemctl hybrid-sleep #让系统进入交互式休眠状态
systemctl rescue #启动进入救援状态(单用户状态)
systemd-analyze #用于查看启动耗时
systemd-analyze blame #查看每个服务的启动耗时
systemd-analyze critical-chain #显示瀑布状的启动过程流
systemctl list-units #可以查看当前系统的所有unit
systemctl list-unit-files #列出所有可用单元
systemctl list-units #列出所有运行中单元
systemctl --failed #列出所有失败单元
systemctl list-units --all --state=inactive #列出所有没有运行的单元
systemctl list-units --type=service #列出所有正在运行的、类型为service的单元
systemctl status #用于查看系统状态和单个unit的状态
systemctl status #显示系统状态
systemctl status dbus.service #显示单个unit的状态
systemctl is-active dbus.service #查看某个unit是否运行
systemctl start apache.service #立即启动一个服务
systemctl stop apache.service #立即停止一个服务
systemctl restart apache.service #重启一个服务
systemctl kill apache.service #杀死一个服务的所有子进程
systemctl reload apache.service #重新加载一个服务的配置文件
systemctl daemon-reload #重载所有修改过的配置文件
systemctl enable firewalld.service #使某服务自动启动
systemctl disable firewalld.service #使某服务不自动启动
帮助手册
man [选项] [参数]
#例子
man systemctl #查看systemctl的帮助信息
©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。