Loading... ## 1. echo > echo 命令用于在终端设备上输出字符串或变量提取后的值; > 语法格式为:“<span style='color:green'>echo [字符串] [$变量]</span>”. > eg: > > ```bash > # echo "lo8ol.com" > lo8ol.com > # echo $SHELL > /bin/bash > ``` ## 2. date > date 命令用于显示或设置系统的时间与日期; > 语法格式为:“<span style='color:green'>date [+指定的格式]</span>”. > 在date 命令后输入以“+”号开头的参数,即可按照指定格式来输出系统的时间或日期 > eg: > > ```bash > ##按照默认格式查看当前系统时间的date命令如下所示: > # date > Sat Sep 5 09:13:45 CST 2020 > ##按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的date命令如下所示: > # date "+%Y-%m-%d %H:%M:%S" > 2020-09-05 09:14:35 > ##将系统的当前时间设置为2020年11月1日8点30分的date命令如下所示: > # date -s "20201101 8:30:00" > Sun Nov 1 08:30:00 CST 2020 > ##再次使用date命令并按照默认的格式查看当前的系统时间,如下所示: > # date > Sun Nov 1 08:30:08 CST 2020 > ##date命令中的参数%j可用来查看今天是当年中的第几天.这个参数能够很好地区分备份时间的新旧,即数字越大, > ##越靠近当前时间.该参数的使用方式以及显示结果如下所示: > # date "+%j" > 306 > ``` | 参数 | 作用 | | ------ | ------------------------------- | | %S | 秒(00~59) | | %M | 分钟(00~59) | | %H | 小时(00~23) | | %I | 小时(00~12) | | %m | 月份(1~12) | | %p | 显示出AM或PM | | %a | 缩写的工作日名称(例如:Sun) | | %A | 完整的工作日名称(例如:Sunday) | | %b | 缩写的月份名称(例如:Jan) | | %B | 完整的月份名称(例如:January) | | %q | 季度(1~4) | | %y | 简写年份(例如:20) | | %Y | 完整年份(例如:2020) | | %d | 本月中的第几天 | | %j | 今年中的第几天 | | %n | 换行符(相当于按下回车键) | | %t | 跳格(相当于按下Tab键) | ## 3. timedatectl > timedatectl命令用于设置系统的时间,英文全称为:“time date control”; > 语法格式为:“ <span style='color:green'>timedatectl [参数]</span>”. > 发现电脑时间跟实际不符?如果只差几分钟的话,我们可以直接调整,但如果差几个小时,那么除了调整当前的时间,还有必要检查下时区了,timedatectl命令中常见的参数格式及作用如表所示. | 参数 | 作用 | | ---------------- | -------------- | | status | 显示状态信息 | | list-timezones | 列出已知时区 | | set-time | 设置系统时间 | | set-timezone | 设置生效时区 | ```powershell 查看系统时间与时区: # timedatectl status Local time: Sun 2020-09-06 19:51:22 CST Universal time: Sun 2020-09-06 11:51:22 UTC RTC time: Sun 2020-09-06 19:51:21 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: no NTP service: inactive RTC in local TZ: no 如果您查到的时区不是上海(Asia/Shanghai),可以手动进行设置: # timedatectl set-timezone Asia/Shanghai 如果时间还是不正确,再手动的修改系统日期: # timedatectl set-time 2021-05-18 而如果想修改时间的话,也很简单: # timedatectl set-time 9:30 # date Tue May 18 09:30:01 CST 2021 ``` ## 4. reboot > reboot命令用于重启系统; > 由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启 ## 5. poweroff/shutdown > poweroff命令用于关闭系统;其 > 也涉及硬件资源的管理权限,因此默认只有root管理员才可以关闭电脑。 > shutdown也是关闭系统,但该命令不会直接关闭,留有1分钟的等待时间。 > 若想直接关闭,使用命令<span style='color:green'>shutdown -h now</span> ## 6. wget > wget命令用于在终端中下载网络文件; > 格式为:<span style='color:green'>wget [参数] 下载地址</span> | 参数 | 作用 | | ------ | ------------------------------------- | | -b | 后台下载模式 | | -P | 下载到指定目录 | | -t | 最大尝试次数 | | -c | 断点续传 | | -p | 下载页面内所有资源,包括图片、视频等 | | -r | 递归下载 | ```powershell #1.尝试使用wget从阿里云下载YUM的源配置文件 wget https://mirrors.aliyun.com/epel/epel-releaselatest-7.noarch.rpm #2.下载lo8ol到/etc/lo8ol/中,并防止断网采用断电续传 wget -c http://lo8ol.com -P /etc/lo8ol ``` ## 7. ps(进程) > ps命令用于查看系统中的进程状态,英文全称为:“processes”,语法格式为:“<span style='color:green'>ps [参数]</span>”. > 通常会将ps命令与管道符技术搭配使用,用来抓取与某个指定服务进程相对应的PID号码.ps命令的常见参数以及作用如表所示. ### 7.1 参数 | 参数 | 作用 | | ------ | ---------------------------------- | | -a | 显示所有进程(包括其他用户的进程) | | -u | 用户以及其他详细信息 | | -x | 显示没有控制终端的进程 | ### 7.2 进程5种状态 ```bash R(运行) :进程正在运行或在运行队列等待 S(中断) :进程处于休眠,当某个条件形成后或者接收到信号脱离该状态 D(不可中断) :进程不影响系统异步信号,用kill命令也不能中断 Z(僵死) :进程已经终止,但进程描述符存在,直到父进程调用系统函数才释放 T(停止) :进程收到停止信号后停止运行 ``` > 除了上面的五种常见进程状态,还有可能是高优先级(<),低优先级(N),被锁进内存(L),包含子进程(s)以及多线程(l)这五种补充形式. > 当执行“<span style='color:green'>ps aux</span>”命令后通常会看到如表所示的进程状态,下面只是列举了部分输出值,而且正常的输出值中不包括中文注释: > > **Tips** > 如前面所提到的,在Linux系统中的命令参数有长短格式之分,长格式和长格式之间不能合并,长格式和短格式之间也不能合并,但短格式和短格式之间是可以合并的,合并后仅保留一个-(减号).<span style='color:green'>另外ps命令可允许参数不加减号(-),因此可直接写成ps aux的样子</span>. | USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND | | ------------ | -------------- | ---------------- | -------------- | ------------------------ | ------------------------ | ---------- | ---------- | ---------- | ----------------- | ------------------------------------------------------------------------- | | 进程所有者 | 进程号 | CPU占用率 | 内存占用率 | 虚拟内存使用量(单位KB) | 占用固定内存量(单位KB) | 所在终端 | 进程状态 | 启动时间 | 实际使用CPU时间 | 命令名称与参数 | | root | 1 | 0.0 | 0.5 | 244740 | 10636 | ? | Ss | 07:54 | 0:02 | /usr/lib/systemd/<br/>systemd --switched-root --system --deserialize 18 | | root | 2 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:54 | 0:00 | [kthreadd] | | root | 3 | 0.0 | 0.0 | 0 | 0 | ? | I< | 07:54 | 0:00 | [rcu_gp] | | root | 4 | 0.0 | 0.0 | 0 | 0 | ? | I< | 07:54 | 0:00 | [rcu_par_gp] | | root | 5 | 0.0 | 0.0 | 0 | 0 | ? | I< | 07:54 | 0:00 | [kworker/0:0H-kbl | | root | 6 | 0.0 | 0.0 | 0 | 0 | ? | I< | 07:54 | 0:00 | [mm_percpu_wq] | | root | 7 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:54 | 0:00 | [ksoftirqd/0] | | root | 8 | 0.0 | 0.0 | 0 | 0 | ? | I | 07:54 | 0:00 | [rcu_sched] | | root | 9 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:54 | 0:00 | [migration/0] | | | ……………… | 省略部分输出息 | ……………… | | | | | | | | ### 7.3 查看进程详细信息 ```bash ps -ef ``` ## 8. pstree > pstree命令用于以树状图的形式展示进程之间的关系,英文全称为:“process tree”,输入后回车执行即可. > ps命令信息量太大又没有规律.如果想让进程以树状图的形式,有层次的展示出进程之间的关系,则可以使用pstree命令: > > ```bash > # pstree > systemd─┬─ModemManager───2*[{ModemManager}] > ├─NetworkManager───2*[{NetworkManager}] > ├─VGAuthService > ├─accounts-daemon───2*[{accounts-daemon}] > ├─atd > ├─auditd─┬─sedispatch > │ └─2*[{auditd}] > ├─avahi-daemon───avahi-daemon > ├─boltd───2*[{boltd}] > ├─colord───2*[{colord}] > ├─crond > ├─cupsd > ├─dbus-daemon───{dbus-daemon} > ├─dnsmasq───dnsmasq > ├─firewalld───{firewalld} > ├─fprintd───{fprintd} > ├─fwupd───4*[{fwupd}] > # ………………省略部分输出信息……………… > ``` ## 9. top(动态进程) > top命令用于动态地监视进程活动与系统负载等信息,相当于windows版本中的任务管理器 ![](https://cdn.jsdelivr.net/gh/klausyao/imageshosting@master/linux/shell/linuxsyswork/1.jpg) > top命令执行结果的前5行为系统整体的统计信息,其所代表的含义如下. > > * 第1行: > 系统时间、运行时间、登录终端数、系统负载(<span style='color:green'>三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低</span>). > * 第2行: > 进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数. > * 第3行: > 用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等.其中数据均为CPU数据并以百分比格式显示,例如“99.9 id”意味着有99.9%的CPU处理器资源处于空闲. > * 第4行: > 物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量. > * 第5行: > 虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量. ## 10. nice(优先级) > nice命令用于<span style='color:green'>调整进程的优先级</span>,语法格式为:“nice 优先级数字 服务名称”. > > 上面<span style='color:green'>top命令输出结果中的PR和NI值代表的是进程的优先级,数字越低(取值范围是-20到19)、优先级越高</span>.日常生产工作中,可以将一些不重要的进程的优先级调低、让紧迫的服务更多的利用CPU和内存资源,合理分配系统资源.例如将bash服务的优先级调整到最高: > > ```bash > nice -n -20 bash > ``` ### 11. pidof(进程pid号) > pidof命令用于查询某个指定服务进程的PID号码值,语法格式为:“<span style='color:green'>pidof [参数] 服务名称</span>”. > 每个进程的进程号码值(PID)是唯一的,可以用于区分不同的进程,来查询本机上sshd服务程序的PID: > > ```bash > # pidof sshd > 2156 > ``` #### **12. kill** > kill命令用于终止某个指定PID值的服务进程,语法格式为:“kill [参数] 进程的PID”. > > 接下来,使用kill命令把上面用pidof命令查询到的PID所代表的进程终止掉,其命令如下所示.这种操作的效果等同于强制停止sshd服务: > > ```bash > kill 2156 > ``` > > 但也有时候会提示进程无法被终止,则可以加参数-9,代表最高级别的强制杀死进程: > > ```bash > kill -9 2156 > ``` ### 13. killall > killall命令用于终止某个指定名称的服务所对应的全部进程,语法格式为:“<span style='color:green'>killall [参数] 服务名称</span>”. > 通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果用上面kill命令的方式逐个去结束这些进程会比较麻烦,此时可以使用killall命令来批量结束某个服务程序带有的全部进程,下面以httpd服务程序为例,来结束其全部进程. > > ```bash > # pidof httpd > 13581 13580 13579 13578 13577 13576 > # killall httpd > # pidof httpd > # > ``` > **skills** > 如果在系统终端中执行一个命令后想立即停止它,可以同时按下Ctrl + C组合键(生产环境中比较常用的一个快捷键),这样将立即终止该命令的进程. > 或者,<span style='color:green'>如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则在执行命令时在末尾添加上一个&符号,这样命令将进入系统后台来执行</span>. 最后修改:2022 年 04 月 19 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏