Loading... > 预习 > > 7月24日: 第二章 > > 7月25日: 第三章 > > 7月26日: 第四章 # 课上杂谈 ## 1. Shell - 人与硬件的翻译官 - 使用硬件,必须基于应用程序  ## 2. Linux命令 - `命令参数``对象` - `亲狠狠的``小红` - 参数让命令更加贴合需求 默认参数可能不是最优解 - `-` 短格式 - -字母 - -h - 短格式和短格式可以合并 - 短长之间 不能合并 - `--`长格式 - --单词 - --help - 长格式和长格式不能合并 ## 3.Linux进程分类 - `R` running: 正在服务 - `S` sleeping: 等待服务 - `D` uninterruptible sleep 不能关闭服务 - `Z` zombie 僵尸进程 - `T ` stopped by job control signal 被控制信号停止 - `t` stopped by debugger during trace 被调试器停止 - `I` idle 空闲 # 一.常用命令 ## 1. systemctl ```shell systemctl start 服务名称 #运行服务 systemctl stop 服务名称 #停止服务 systemctl restart 服务名称 #重启服务 systemctl reload 服务名称 #重载服务 systemctl enable 服务名称 #开机自启 systemctl disable 服务名称 #禁用开机自启 systemctl status 服务名称 #查看服务状态 ``` ## 2. man - 帮助命令 - 常用按键以及用途 | 按键 | 用处 | | --------- | ------------------------------------ | | 空格键 | 向下翻一页 | | PaGe down | 向下翻一页 | | PaGe up | 向上翻一页 | | home | 直接前往首页 | | end | 直接前往尾页 | | / | 从上至下搜索某个关键词,如“/linux” | | ? | 从下至上搜索某个关键词,如“?linux” | | n | 定位到下一个搜索到的关键词 | | N | 定位到上一个搜索到的关键词 | | q | 退出帮助文档 | - 帮助信息的结构以及意义 | 结构名称 | 代表意义 | | ----------- | ------------------------ | | NAME | 命令的名称 | | SYNOPSIS | 参数的大致使用方法 | | DESCRIPTION | 介绍说明 | | EXAMPLES | 演示(附带简单说明) | | OVERVIEW | 概述 | | DEFAULTS | 默认的功能 | | OPTIONS | 具体的可用选项(带介绍) | | ENVIRONMENT | 环境变量 | | FILES | 用到的文件 | | SEE ALSO | 相关的资料 | | HISTORY | 维护历史与联系方式 | ## 3. echo ```shell [root@RHEL-8-CLI ~]# echo hahaha hahaha [root@RHEL-8-CLI ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin ``` ## 4. date - date命令中的参数以及作用 | 参数 | 作用 | | ---- | -------------- | | %t | 跳格[Tab键] | | %H | 小时(00~23) | | %I | 小时(00~12) | | %M | 分钟(00~59) | | %S | 秒(00~59) | | %j | 今年中的第几天 | | %d | 日 | | %m | 月 | | %Y | 年 | - 时间格式化输出 ```shell [root@RHEL-8-CLI ~]# date "+%Y-%m-%d %I:%M:%S" 2020-07-19 08:34:37 ``` - 将系统的当前时间设置为2017年9月1日8点30分的date命令如下所示: ``` [root@linuxprobe ~]# date -s "20170901 8:30:00" Fri Sep 1 08:30:00 CST 2017 ``` ## 5. wget - 格式为 `wget [参数] 下载地址` - wget命令的参数以及作用 | 参数 | 作用 | | ---- | ------------------------------------ | | -b | 后台下载模式 | | -P | 下载到指定目录 | | -t | 最大尝试次数 | | -c | 断点续传 | | -p | 下载页面内所有资源,包括图片、视频等 | | -r | 递归下载 | ## 6. ps - ps命令的参数以及作用 > ps命令可允许参数不加减号(-),因此可直接写成ps aux的样子。 > | 参数 | 作用 | | ---- | ---------------------------------- | | -a | 显示所有进程(包括其他用户的进程) | | -u | 用户以及其他详细信息 | | -x | 显示没有控制终端的进程 | - 进程状态 | USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND | | ------------ | -------- | ------------ | ---------- | ------------------------ | -------------------------- | -------- | -------- | ------------ | ----------------- | ------------------------ | | 进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位是KB) | 占用的固定内存量(单位是KB) | 所在终端 | 进程状态 | 被启动的时间 | 实际使用CPU的时间 | 命令名称与参数 | | root | 1 | 0.0 | 0.4 | 53684 | 7628 | ? | Ss | 07:22 | 0:02 | /usr/lib/systemd/systemd | | root | 2 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [kthreadd] | | root | 3 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [ksoftirqd/0] | | root | 5 | 0.0 | 0.0 | 0 | 0 | ? | S< | 07:22 | 0:00 | [kworker/0:0H] | | root | 7 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [migration/0] | ## 7. top > 动态地监视进程活动与系统负载等信息 - 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。 - 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。 - 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“97.1 id”意味着有97.1%的CPU处理器资源处于空闲。 - 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。 - 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。 - PR NI为优先级 ```shell top - 09:15:43 up 1:29, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 157 total, 1 running, 156 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 1.6 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 7812.9 total, 7001.6 free, 313.2 used, 498.1 buff/cache MiB Swap: 8192.0 total, 8192.0 free, 0.0 used. 7222.9 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 180920 15644 8988 S 0.0 0.2 0:03.15 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kblockd 8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 ``` ## 8. pidof - 查询某个指定服务进程的PID值 - 格式为`pidof [参数] [服务名称]` ## 9. kill 和 killall - `kill` 用于终止某个指定PID的服务进程,格式为`kill [参数] [进程PID]` - `killall`用于终止某个指定名称的服务所对应的全部进程,格式为:`killall [参数] [服务名称]` # 二. 系统状态检测 ## 1. uptime - 用于查看系统的负载信息 ## 2. free命令 - 显示当前系统中内存的使用量信息 - 格式为 `free [-h]` - 执行free -h命令后的输出信息 | | 内存总量 | 已用量 | 可用量 | 进程共享的内存量 | 磁盘缓存的内存量 | 缓存的内存量 | | ------------------ | -------- | ------ | ------ | ---------------- | ---------------- | ------------ | | | total | used | free | shared | buffers | cached | | Mem: | 1.8G | 1.3G | 542M | 9.8M | 1.6M | 413M | | -/+ buffers/cache: | | 869M | 957M | | | | | Swap: | 2.0G | 0B | 2.0G | | | | ## 3. last > 使用last命令可以查看本机的登录记录。 > > 但是,由于这些信息都是以日志文件的形式保存在系统中,因此可以很容易地对内容进行篡改。 - 查看所有系统的登录记录 - 格式为 `last [参数]` ```shell [root@RHEL-8-CLI ~]# last root pts/0 192.168.60.58 Sun Jul 19 08:29 still logged in reboot system boot 4.18.0-80.el8.x8 Sun Jul 19 07:46 still running root tty1 Sun Jul 19 07:46 - 07:46 (00:00) root pts/1 192.168.60.58 Wed Jul 15 03:14 - 04:46 (01:32) root pts/0 192.168.60.58 Wed Jul 15 03:12 - 05:27 (02:15) root pts/0 192.168.60.64 Tue Jul 14 21:50 - 00:43 (02:52) root pts/0 192.168.60.64 Tue Jul 14 21:50 - 21:50 (00:00) root tty1 Tue Jul 14 21:48 - 21:50 (00:02) reboot system boot 4.18.0-80.el8.x8 Tue Jul 14 21:45 - 07:46 (4+10:00) root tty1 Tue Jul 14 13:05 - 13:05 (00:00) reboot system boot 4.18.0-80.el8.x8 Tue Jul 14 13:04 - 13:05 (00:00) wtmp begins Tue Jul 14 13:04:35 2020 ``` ## 4. sosreport - 收集系统配置及架构信息并输出诊断文档,格式为sosreport ```shell [root@RHEL-8-CLI ~]# sosreport sosreport (version 3.6) This command will collect diagnostic and configuration information from this Red Hat Enterprise Linux system and installed applications. An archive containing the collected information will be generated in /var/tmp/sos.67w7ktys and may be provided to a Red Hat support representative. Any information provided to Red Hat will be treated in accordance with the published support policies at: https://access.redhat.com/support/ The generated archive may contain data considered sensitive and its content should be reviewed by the originating organization before being passed to any third party. No changes will be made to system configuration. Press ENTER to continue, or CTRL-C to quit. Please enter the case id that you are generating this report for []: Setting up archive ... Setting up plugins ... Running plugins. Please wait ... Finishing plugins [Running: selinux] r] Finished running plugins Creating compressed archive... Your sosreport has been generated and saved in: /var/tmp/sosreport-RHEL-8-CLI-2020-07-19-lqmokgy.tar.xz The checksum is: cbbf1f9931458279ec4df0e4aec8a352 Please send this file to your support representative. ``` ## 10. renice - 修改进程的优先级,进而调整进程调度 - nice值的范围是[-20, 19] - 20表示进程的最高优先级,19表示进程的最低优先级。 - Linux进程的默认nice值为0 - 使用nice可调整进程的优先级,这样调度器就会依据进程优先级,为其分配CPU资源。 # 三.文件命令 ## 1.stat - stat命令用于查看文件的具体存储信息和时间等信息 ```shell [root@RHEL-8-CLI ~]# stat anaconda-ks.cfg File: anaconda-ks.cfg Size: 1574 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68089187 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:admin_home_t:s0 Access: 2020-07-19 08:49:38.433908347 -0400 Modify: 2020-07-14 13:04:19.353867571 -0400 Change: 2020-07-14 13:04:19.353867571 -0400 Birth: - ``` ## 2. tr - 替换文本文件中的字符 - 格式为 `tr [原始字符] [目标字符]` ```shell [root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z] #VERSION=RHEL7 # SYSTEM AUTHORIZATION INFORMATION AUTH --ENABLESHADOW --PASSALGO=SHA512 # USE CDROM INSTALLATION MEDIA CDROM # RUN THE SETUP AGENT ON FIRST BOOT FIRSTBOOT --ENABLE IGNOREDISK --ONLY-USE=SDA # KEYBOARD LAYOUTS KEYBOARD --VCKEYMAP=US --XLAYOUTS='US' # SYSTEM LANGUAGE LANG EN_US.UTF-8 # NETWORK INFORMATION NETWORK --BOOTPROTO=DHCP --DEVICE=ENO16777728 --ONBOOT=OFF --IPV6=AUTO NETWORK --HOSTNAME=LOCALHOST.LOCALDOMAIN # ROOT PASSWORD ROOTPW --ISCRYPTED $6$PDJJF42G8C6PL069$II.PX/YFAQPO0ENW2PA7MOMKJLYOAE2ZJMZ2UZJ7BH3UO4OWTR1.WK/HXZ3XIGMZGJPCS/MGPYSSOI8HPCT8B/ # SYSTEM TIMEZONE TIMEZONE AMERICA/NEW_YORK --ISUTC USER --NAME=LINUXPROBE --PASSWORD=$6$A9V3INSTNBWEIR7D$JEGFYWBCDOOOKJ9SODECCDO.ZLF4OSH2AZ2SS2R05B6LZ2A0V2K.RJWSBALL2FEKQVGF640OA/TOK6J.7GUTO/ --ISCRYPTED --GECOS="LINUXPROBE" # X WINDOW SYSTEM CONFIGURATION INFORMATION XCONFIG --STARTXONBOOT # SYSTEM BOOTLOADER CONFIGURATION BOOTLOADER --LOCATION=MBR --BOOT-DRIVE=SDA AUTOPART --TYPE=LVM # PARTITION CLEARING INFORMATION CLEARPART --NONE --INITLABEL %PACKAGES @BASE @CORE @DESKTOP-DEBUGGING @DIAL-UP @FONTS @GNOME-DESKTOP @GUEST-AGENTS @GUEST-DESKTOP-AGENTS @INPUT-METHODS @INTERNET-BROWSER @MULTIMEDIA @PRINT-CLIENT @X11 %END ``` ## 3. cut - 用于按“列”提取文本字符 - 格式为`cut [参数] 文本` - 按列搜索,不仅要使用`-f`参数来设置需要看的列数,还需要使用`-d`参数来设置间隔符号 ## 4. diff - 比较多个文本文件的差异 - 格式为`diff [参数] 文件` - `-c`参数来详细比较出多个文件的差异之处 ## 5. dd - 按照指定大小和个数的数据块来复制文件或转换文件 - 格式为 `dd [参数]` - dd命令的参数及其作用 | 参数 | 作用 | | ----- | ---------------------- | | if | 输入的文件名称 | | of | 输出的文件名称 | | bs | 设置每个“块”的大小 | | count | 设置要复制“块”的个数 | ```shell [root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M 1+0 records in 1+0 records out 587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s [root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso 7311360+0 records in 7311360+0 records out 3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s ``` ## 6.file > 由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用file命令来查看文件类型了 - 查看文件的类型,格式为 `file 文件名` ```shell [root@linuxprobe ~]# file anaconda-ks.cfg anaconda-ks.cfg: ASCII text [root@linuxprobe ~]# file /dev/sda /dev/sda: block special ```  Last modification:December 1, 2021 © Allow specification reprint Like 0 If you think my article is useful to you, please feel free to appreciate