Linux学习笔记(《Linux就该这么学》)

Linux学习笔记(《Linux就该这么学》)

Linux就该这么学

第二章 · 新手必须掌握的Linux命令

常用系统工作命令

  1. echo 命令
  • echo命令用于在终端输出字符串或变量提取后的值,格式为echo [字符串|变量]

    例如: echo Hello World!

    1
    2
    [root@dew ~]# echo Hello World!
    Hello World!
  • 使用$变量的方式提取变量SHELL的值,并输出

    1
    2
    [root@dew ~]# echo $SHELL
    /bin/bash
  1. date 命令
  • date 命令用于显示及设置系统的时间或日期,格式为date [选项][+指定的格式]
参数 作用
%t 跳格[Tab键]
%H 小时(00~23)
%I 小时(00~12)
%M 分钟(00~59)
%S 秒(00~59)
%j 今年中的第几天
  • 默认格式输出系统当前时间
1
2
[root@dew ~]# date
Tue Aug 20 15:47:14 CST 2019
  • 指定格式输出系统当前时间
1
2
[root@dew ~]# date "+%Y-%m-%d %H:%M:%S"
2019-08-20 15:47:49
  • 设置系统当前时间
1
2
[root@dew ~]# date -s"20190820 15:49:00"
Tue Aug 20 15:49:00 CST 2019
  • date命令中的参数%j可用来查看今天是当年中的第几天。这个桉树能够很好的区分备份时间的新旧,即数字越大,越靠近当前时间。
1
2
[root@dew ~]# date "+%j"
232
  1. reboot 命令
  • reboot 命令用于重启系统,其格式为reboot。由于重启计算机会涉及硬件资源的管理权限,默认只能由root管理员重启。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@dew ~]# reboot
```

4. `poweroff` 命令

- `poweroff` 命令用于关闭系统,其格式为`poweroff`。该命令与reboot命令相同,都会涉及硬件资源的管理权限,因此默认只有root管理员才可以关闭电脑。

```sh
[root@dew ~]# poweroff
```

5. `wget` 命令

- `wget` 命令用于在终端下载网络文件,格式为`wget [参数] 下载地址`

| 参数 | 作用 |
| ---- | ----------------------------------- |
| -b | 后台下载模式 |
| -P | 下载到指定目录 |
| -t | 最大尝试次数 |
| -c | 断点续传 |
| -p | 下载页面内所有资源,包括图片、视频等 |
| -r | 递归下载 |

* 使用`wget`命令下载最新的`pdf`格式电子文档

```sh
[root@dew ~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf
  1. ps 命令
  • ps 命令用于查看系统中的进程状态,格式为ps [参数]。通常搭配管道技术使用,用来抓取某个指定服务进程相对应的PID
参数 作用
-a 显示所有进程(包括其他用户的进程)
-u 用户以及其他详细信息
-x 显示没有控制终端的进程
  • Linux系统中时刻运行着许多进程,如果能够合理地管理,可以优化系统的性能。五种常见的进程状态,运行、中断、不可中断、僵死、停止。
状态名称 含义
R(运行) 进程正在运行或在运行队列中等待
S(中断) 进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
D(不可中断) 进程不响应系统异步信号,即便用kill命令也不能将其中断
Z(僵死) 进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放
T(停止) 进程收到停止信号后停止运行
  • ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
进程的所有者 进程ID CPU占用率 内存占用率 虚拟内存使用率(/KB) 占用的固定内存量(/KB) 所在终端 进程状态 被启动的时间 实际使用CPU的时间 命令名称与参数
root 1 0.0 0.0 19348 1120 ? Ss 2018 93:29 /sbin/init
root 2 0.0 0.0 0 0 ? S 2018 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 2018 0:08 [migration/0]
root 4 0.0 0.0 0 0 ? S 2018 92:20 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 2018 0:00 [migration/0]
root 6 0.0 0.0 0 0 ? S 2018 0:42 [watchdog/0]
root 7 0.0 0.0 0 0 ? S 2018 0:35 [migration/1]
root 8 0.0 0.0 0 0 ? S 2018 0:00 [migration/1]
  1. top 命令
  • top 命令用于动态的监视进程活动与系统负载等信息,其格式为top
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@dew ~]# top
top - 16:29:09 up 1117 days, 5:23, 3 users, load average: 0.00, 0.00, 0.00
Tasks: 158 total, 1 running, 157 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7%us, 0.8%sy, 0.0%ni, 98.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4052796k total, 3223016k used, 829780k free, 139760k buffers
Swap: 4063228k total, 219528k used, 3843700k free, 1060376k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5608 root 20 0 3517m 487m 12m S 2.3 12.3 472:35.14 java
2624 root 20 0 326m 5948 3600 S 0.3 0.1 3158:05 vmtoolsd
10147 root 20 0 1489m 65m 2280 S 0.3 1.7 9206:20 cmf-agent
1 root 20 0 19356 1240 1016 S 0.0 0.0 9:03.72 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.79 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 12:07.86 migration/0
```

| 行数 | 含义 |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 第 1 行 | 系统时间、运行时间、登录终端数、系统负载(loadverage: 数值越小意味着负载越低) |
| 第 2 行 | 进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数|
| 第 3 行 | 用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。<br/>其中数据均为CPU数据并以百分比格式显示,例如:“98.5%id” 意味着有 98.5% 的CPU处理器资源处于空闲 |
| 第 4 行 |物理内存、内存使用量、内存空闲量、作为内核缓存的内存量|
|第 5 行|虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量|

8. `pidof` 命令

- `pidof` 命令用于查询某个指定服务进程的`PID`值,格式为`pidof [参数] [服务名称]`

每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程。例如,可以使用如下命令来查询本机上sshd服务程序的PID

```sh
[root@dew ~]# pidof sshd
29110 27979 2974
  1. kill 命令
  • kill 命令用于终止某个指定PID 的服务进程,格式为kill [参数] [进程PID]
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@dew ~]# kill 29110
```

10. `killall` 命令

- `killall` 命令用于终止某个指定名称的服务所对应的全部进程,格式为:“killall [参数][服务名称]”

```sh
[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd
[root@linuxprobe ~]#

系统状态检测命令

  1. ifconfig 命令