Linux基础命令

410 阅读17分钟

单用户操作系统和多用户操作系统

  • 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源

    • Windows XP 之前的版本都是单用户操作系统
  • 多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源

    • UnixLinux 的设计初衷就是多用户操作系统

Linux目录

root@toby:/# ll
total 92
drwxr-xr-x 22 root root  4096 Jun  3 16:38 ./
drwxr-xr-x 22 root root  4096 Jun  3 16:38 ../
drwxr-xr-x  2 root root  4096 Apr  8  2018 bin/
drwxr-xr-x  3 root root  4096 Apr  8  2018 boot/
drwxr-xr-x 19 root root  3740 Jun  3 16:38 dev/
drwxr-xr-x 88 root root  4096 Jun  3 16:38 etc/
drwxr-xr-x  2 root root  4096 Apr 13  2016 home/
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img -> boot/initrd.img-4.4.0-117-generic
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img.old -> boot/initrd.img-4.4.0-116-generic
drwxr-xr-x 20 root root  4096 Mar 26  2018 lib/
drwxr-xr-x  2 root root  4096 Mar 26  2018 lib64/
drwx------  2 root root 16384 Mar 26  2018 lost+found/
drwxr-xr-x  4 root root  4096 Mar 26  2018 media/
drwxr-xr-x  2 root root  4096 Aug  1  2017 mnt/
drwxr-xr-x  2 root root  4096 Aug  1  2017 opt/
dr-xr-xr-x 98 root root     0 Jun  3 16:38 proc/
drwx------  7 root root  4096 Jun  3 16:38 root/
drwxr-xr-x 19 root root   620 Jun  3 16:50 run/
drwxr-xr-x  2 root root 12288 Apr  8  2018 sbin/
drwxr-xr-x  2 root root  4096 Aug  1  2017 srv/
dr-xr-xr-x 13 root root     0 Jun  4  2019 sys/
drwxrwxrwt  7 root root  4096 Jun  3 16:45 tmp/
drwxr-xr-x 10 root root  4096 Mar 26  2018 usr/
drwxr-xr-x 11 root root  4096 Mar 26  2018 var/
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz -> boot/vmlinuz-4.4.0-117-generic
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz.old -> boot/vmlinuz-4.4.0-116-generic
  • /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始
    • 当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
  • /bin、/usr/bin:可执行二进制文件的目录,如常用的命令 lstarmvcat
  • /boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
  • /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt
  • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
    • /etc/inittab
    • /etc/fstab
    • /etc/init.d
    • /etc/X11
    • /etc/sysconfig
    • /etc/xinetd.d
  • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
    • ~ 表示当前用户的家目录
    • ~edu 表示用户 edu 的家目录
  • /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
  • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
  • /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
  • /opt:给主机额外安装软件所摆放的目录
  • /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo/proc/interrupts/proc/dma/proc/ioports/proc/net/*
  • /root:系统管理员root的家目录
  • /sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdiskshutdownmount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能"查看"而不能设置和使用
  • /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
  • /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www
  • /usr:应用程序存放目录, 存放着一些用户自己安装的软件,其实类似于 windows 下的Program Files目录。
    • /usr/bin:存放应用程序
    • /usr/share:存放共享数据
    • /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
    • /usr/local:存放软件升级包
    • /usr/share/doc:系统说明文件存放目录
    • /usr/share/man:程序说明文件存放目录
  • /var:放置系统执行过程中经常变化的文件, (variable)存放着Linux下的一些日志文件,在实际开发的时候有一些公司也习惯把Apache或者nginx的站点目录也会放到这个目录中。
    • /var/log:随时更改的日志文件
    • /var/spool/mail:邮件存放的目录
    • /var/run:程序或服务启动后,其 PID 存放在该目录下

命令行介绍

root@toby:/#
  • root: 当前登录的用户
  • @: 表示
  • toby: 当前的主机名称
  • /: 当前的工作目录
  • #: 当前用户的身份

注意:

在Linux中 # 表示超级管理员, $ 表示普通用户

终端命令格式

command [-options] [parameter]

说明:

  • command:命令名,相应功能的英文单词或单词的缩写
  • [-options]:选项,可用来对命令进行控制,也可以省略
  • parameter:传给命令的参数,可以是 零个、一个 或者 多个

[] 代表可选

查阅命令帮助信息

--help

command --help

说明:

  • 显示 command 命令的帮助信息

man

man command

说明:

  • 查阅 command 命令的使用手册

man 是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用说明

使用 man 时的操作键:

操作键 功能
空格键 显示手册页的下一屏
Enter 键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出
/word 搜索 word 字符串

Linux 下文件和目录的特点

  • Linux 文件 或者 目录 名称最长可以有 256 个字符
  • . 开头的文件为隐藏文件,需要用 -a 参数才能显示
  • . 代表当前目录
  • .. 代表上一级目录

基本命令

语法格式: # 指令名称 [选项] [操作的目标]

其中[]表示可选

基础指令

1. ls

  • ls [路径]

表示列出指定路径下的文件夹和文件的名字,如果路径没有指定则列出当前路径下的(list)

root@toby:~# cd /
root@toby:/# ls
bin   etc         initrd.img.old  lost+found  opt   run   sys  var
boot  home        lib             media       proc  sbin  tmp  vmlinuz
dev   initrd.img  lib64           mnt         root  srv   usr  vmlinuz.old
  • ls -l [路径]

表示以列表的形式列出指定路径下的文件夹和文件的名字

参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小
root@toby:/# ls -l
total 84
drwxr-xr-x  2 root root  4096 Apr  8  2018 bin
drwxr-xr-x  3 root root  4096 Apr  8  2018 boot
drwxr-xr-x 19 root root  3740 Jun  3 16:38 dev
drwxr-xr-x 88 root root  4096 Jun  3 16:38 etc
drwxr-xr-x  2 root root  4096 Apr 13  2016 home
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img -> boot/initrd.img-4.4.0-117-generic
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img.old -> boot/initrd.img-4.4.0-116-generic
drwxr-xr-x 20 root root  4096 Mar 26  2018 lib
drwxr-xr-x  2 root root  4096 Mar 26  2018 lib64
drwx------  2 root root 16384 Mar 26  2018 lost+found
drwxr-xr-x  4 root root  4096 Mar 26  2018 media
drwxr-xr-x  2 root root  4096 Aug  1  2017 mnt
drwxr-xr-x  2 root root  4096 Aug  1  2017 opt
dr-xr-xr-x 96 root root     0 Jun  3 16:38 proc
drwx------  7 root root  4096 Jun  3 17:01 root
drwxr-xr-x 19 root root   620 Jun  3 23:34 run
drwxr-xr-x  2 root root 12288 Apr  8  2018 sbin
drwxr-xr-x  2 root root  4096 Aug  1  2017 srv
dr-xr-xr-x 13 root root     0 Jun  3 16:50 sys
drwxrwxrwt  7 root root  4096 Jun  3 23:35 tmp
drwxr-xr-x 10 root root  4096 Mar 26  2018 usr
drwxr-xr-x 11 root root  4096 Mar 26  2018 var
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz -> boot/vmlinuz-4.4.0-117-generic
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz.old -> boot/vmlinuz-4.4.0-116-generic
root@toby:/#
  • ls -la [路径]
1.1 ls 通配符的使用
通配符 含义
* 代表任意个数个字符
? 代表任意一个字符,至少 1 个
[] 表示可以匹配字符组中的任一一个
[abc] 匹配 a、b、c 中的任意一个
[a-f] 匹配从 a 到 f 范围内的的任意一个字符

2. clear

清屏, 把内容顶上去了

快捷键: ctrl+l

3. su

切换用户(switch user)

语法格式: #su 需要切换到的用户名(用户名可以不写,则表示切换到root用户)

高权限往低切, 不需要密码. 低权限往高切, 需要密码. 并且只在当前的命令终端中. 其他地方不变

4. cd

cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一

注意:Linux 所有的 目录文件名 都是大小写敏感的

cd 需要切换到的路径(路径可以是相对路径,也可以是绝对路径)

路径可以写也可以不写,不写则表示切换到当前用户的家目录。

注意:

低级用户没有访问高级用户的权限

相对路径: 不以/开头 绝对路径: 以/开头

命令 含义
cd 切换到当前用户的主目录(/home/用户目录)
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 保持在当前目录不变
cd .. 切换到上级目录
cd - 可以在最近两次工作目录之间来回切换

pwd

打印当前的路径, 告诉我们当前在哪

文档的操作指令

1. touch

  • 创建文件或修改文件时间
    • 如果文件 不存在,可以创建一个空白文件
    • 如果文件 已经存在,可以修改文件的末次修改日期

语法: touch 路径+文件名

2. mkdir

创建一个新的目录

mkdir 路径+文件夹
选项 含义
-p 可以递归创建目录

3. cp 和 mv(拷贝和移动文件)

序号 命令 对应英文 作用
01 tree [目录名] tree 以树状图列出文件目录结构
02 cp 源文件 目标文件 copy 复制文件或者目录
03 mv 源文件 目标文件 move 移动文件或者目录/文件或者目录重命名
3.1 tree

tree 命令可以以树状图列出文件目录结构

选项 含义
-d 只显示目录
3.2 cp

cp 命令的功能是将给出的 文件目录 复制到另一个 文件目录 中,相当于 DOS 下的 copy 命令

copy [-r] 要赋值的文件或者文件夹的路径 指定的路径` 可重命名
选项 含义
-i 覆盖文件前提示
-r 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
# 不会改变名称
root@toby:/# cp /php.txt /home/admin/
# 会改变名称
root@toby:/# cp /php.txt /home/admin/php2.txt
3.3 mv

mv 命令可以用来 移动 文件目录,也可以给 文件或目录重命名

选项 含义
-i 覆盖文件前提示
# 移动文件
root@toby:/#  mv /home/admin/php.txt /root/
# 重命名
root@toby:/# mv /root/php.txt /root/php.doc

注意: 如果不改变名称 最后文件夹的后面的/一定要写, 否则会重命名

4. rm

删除文件或目录

rm [-rf] 需要删除的文档
选项 含义
-f 强制删除,忽略不存在的文件,无需提示
-r 递归地删除目录下的内容,删除文件夹 时必须加此参数

使用 rm 命令要小心,因为文件删除后不能恢复

查看文件内容

序号 命令 对应英文 作用
01 tail 文件的路径 tail 查看一个文件的末n行
02 head 文件的路径 head 查看一个文件的头n行
03 cat 文件名 concatenate 查看文件内容、创建文件、文件合并、追加文件内容等功能 查看某个文件的全部内容(将内容全部输出在命令行中)(正序)
04 tac 文件路径1 文件路径2 文件路径3… tac 查看某个文件的全部内容(倒序的)
05 more 文件名 more 分屏显示文件内容
06 grep 搜索文本 文件名 grep 搜索文本文件内容

1. tail

查看一个文件的末 n

tail -n 文件的路径
选项 含义
-n -n可以不写,不写,默认表示10行

2. head

查看文件的头n行

head -n 文件的路径

同上 tail

注意:如果不指定-n则默认头10行

3. cat

cat 文件路径1  文件路径2  文件路径3 …
  • cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能
  • cat 会一次显示所有的内容,适合 查看内容较少 的文本文件
  • 查看某个文件的全部内容(将内容全部输出在命令行中)【正序】
选项 含义
-b 对非空输出行编号
-n 对输出的所有行编号

Linux 中还有一个 nl 的命令和 cat -b 的效果等价

4. tac

作用:查看某个文件的全部内容(倒序的)

语法:tac 文件路径1 文件路径2 文件路径3…

可以同时查看多个文件的内容

5. more

  • more 命令可以用于分屏显示文件内容,每次只显示一页内容
  • 适合于 查看内容较多 的文本文件

使用 more 的操作键:

操作键 功能
空格键 显示手册页的下一屏
Enter 键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出
/word 搜索 word 字符串

6. grep

  • Linux 系统中 grep 命令是一种强大的文本搜索工具
  • grep允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式
选项 含义
-n 显示匹配行及行号
-v 显示不包含匹配文本的所有行(相当于求反)
-i 忽略大小写
  • 常用的两种模式查找

参数 | 含义 ^a | 行首,搜寻以 a 开头的行 ke$ | 行尾,搜寻以 ke 结束的行

其他

1. echo 文字内容

echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用

2. 重定向 > 和 >>

  • Linux 允许将命令执行结果 重定向到一个 文件
  • 将本应显示在终端上的内容 输出/追加 到指定文件中

其中

  • > 表示输出,会覆盖文件原有的内容
  • >> 表示追加,会将内容追加到已有文件的末尾

3. 管道 |

  • Linux 允许将 一个命令的输出 可以 通过管道 做为 另一个命令的输入
  • 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左右分为两端,左端塞东西(写),右端取东西(读)

常用的管道命令有:

  • more:分屏显示内容
  • grep:在命令执行结果的基础上查询指定的文本

关机重启指令

1. reboot

重启计算机, 部分情况(除非自开机以来只有当前一个普通用户登录过)下普通用户无法执行

2. shutdown

作用:关机

语法:shutdown -h 时间 时间常见的值:

  • now:(shutdown -h now),表示立即关机
  • +m:(m表示minutes数字),例如+5,则表示五分钟之后关机

3. halt

关机

进阶指令

1. du

作用:du表示directory used,显示出目录所占的磁盘空间大小的情况。

语法:du -sh 目录路径

选项说明:

  • s:表示summary,汇总统计
  • h:表示以较高可读性的形式显示
root@toby:/# du -sh /etc/
4.5M	/etc/
root@toby:/# du -s /etc/
4532	/etc/
root@toby:/# ls -l
total 84
drwxr-xr-x  2 root root  4096 Apr  8  2018 bin
drwxr-xr-x  3 root root  4096 Apr  8  2018 boot
drwxr-xr-x 19 root root  3740 Jun  3 16:38 dev
drwxr-xr-x 88 root root  4096 Jun  3 16:38 etc
drwxr-xr-x  2 root root  4096 Apr 13  2016 home
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img -> boot/initrd.img-4.4.0-117-generic
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img.old -> boot/initrd.img-4.4.0-116-generic
drwxr-xr-x 20 root root  4096 Mar 26  2018 lib
drwxr-xr-x  2 root root  4096 Mar 26  2018 lib64
drwx------  2 root root 16384 Mar 26  2018 lost+found
drwxr-xr-x  4 root root  4096 Mar 26  2018 media
drwxr-xr-x  2 root root  4096 Aug  1  2017 mnt
drwxr-xr-x  2 root root  4096 Aug  1  2017 opt
dr-xr-xr-x 96 root root     0 Jun  3 16:38 proc
drwx------  7 root root  4096 Jun  3 17:01 root
drwxr-xr-x 19 root root   640 Jun  4 15:16 run
drwxr-xr-x  2 root root 12288 Apr  8  2018 sbin
drwxr-xr-x  2 root root  4096 Aug  1  2017 srv
dr-xr-xr-x 13 root root     0 Jun  3 16:50 sys
drwxrwxrwt  7 root root  4096 Jun  4 15:20 tmp
drwxr-xr-x 10 root root  4096 Mar 26  2018 usr
drwxr-xr-x 11 root root  4096 Mar 26  2018 var
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz -> boot/vmlinuz-4.4.0-117-generic
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz.old -> boot/vmlinuz-4.4.0-116-generic

注意:

这里我们发现通过ls -l的命令查看的大小和du -sh查看的大小不一致, 因为ls -l只是统计了文件夹的大小, 不包含文件夹里面的文件

df

作用:disk free,查看磁盘的剩余空间的情况

语法:df -hdf -m

选项说明:

  • h:表示以较高可读性单位进行查看
  • m: 以MB为单位

free

作用:查看内存的使用情况

语法:free -mfree -g

选项含义:

  • m:表示以mb为单位进行查看
  • g: 表示以g为单位但是没有什么意义
root@toby:/# free -m
              total        used        free      shared  buff/cache   available
Mem:           2000          35        1517           2         447        1789
Swap:             0           0           0
root@toby:/#

解释说明:

  • Mem: Memory, 是内存的各项数据
  • Swap: 交换空间, 当内存如果出现不够用的情况. 计算机会把这个交换空间2G的拿出来当内存使用
  • tobal: 总的内存大小
  • used: 已使用的内存大小
  • free: 空余内存大小

第一行表示memory,是内存各项的数字。 其中,如果查看可用的剩余内存,应该是3527的位置。 如果看的是剩余的内存,则应该是3725的位置。

find

作用:表示根据条件去查询文档的所在位置。

语法:find 范围路径 选项 选项的值

常见的选项:

  • name:根据名字进行查询
  • type:根据文档的类型进行查询。[d表示文件夹,f表示普通文件,s表示套接字文件,l表示连接文件(快捷方式),c表示字符设备文件,b表示块状设备文件(例如光驱和光盘)]
  • user:根据所有者进行查询
  • group:根据所属的用户组进行查询
  • size:根据大小进行查询
#find / -name httpd.conf -type f

注意:

-name选项支持通配符, 比如(*)

假设我需要查询磁盘中全部的.conf文件 则可以写成:#find / -name *.conf -type f

ps

作用:表示process show,查看进程

语法:ps -ef

选项含义:

  • e:等价于-A,all,表示全部
  • f:表示full,显示全部的列
root@toby:~# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jun03 ?        00:00:01 /sbin/init splash
root         2     0  0 Jun03 ?        00:00:00 [kthreadd]
root         3     2  0 Jun03 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 Jun03 ?        00:00:00 [kworker/0:0H]
root         7     2  0 Jun03 ?        00:00:06 [rcu_sched]
root         8     2  0 Jun03 ?        00:00:00 [rcu_bh]
root         9     2  0 Jun03 ?        00:00:00 [migration/0]
root        10     2  0 Jun03 ?        00:00:00 [watchdog/0]
root        11     2  0 Jun03 ?        00:00:00 [kdevtmpfs]
root        12     2  0 Jun03 ?        00:00:00 [netns]
root        13     2  0 Jun03 ?        00:00:00 [perf]
root        14     2  0 Jun03 ?        00:00:00 [khungtaskd]
root        15     2  0 Jun03 ?        00:00:00 [writeback]
root        16     2  0 Jun03 ?        00:00:00 [ksmd]
root        17     2  0 Jun03 ?        00:00:00 [khugepaged]
root        18     2  0 Jun03 ?        00:00:00 [crypto]
root        19     2  0 Jun03 ?        00:00:00 [kintegrityd]
root        20     2  0 Jun03 ?        00:00:00 [bioset]
root        21     2  0 Jun03 ?        00:00:00 [kblockd]
root        22     2  0 Jun03 ?        00:00:00 [ata_sff]
root        23     2  0 Jun03 ?        00:00:00 [md]
root        24     2  0 Jun03 ?        00:00:00 [devfreq_wq]
root        25     2  0 Jun03 ?        00:00:00 [kworker/u2:1]
root        28     2  0 Jun03 ?        00:00:00 [kswapd0]
root        29     2  0 Jun03 ?        00:00:00 [vmstat]
root        30     2  0 Jun03 ?        00:00:00 [fsnotify_mark]
root        31     2  0 Jun03 ?        00:00:00 [ecryptfs-kthrea]
root        47     2  0 Jun03 ?        00:00:00 [kthrotld]
root        48     2  0 Jun03 ?        00:00:00 [acpi_thermal_pm]
root        49     2  0 Jun03 ?        00:00:00 [vballoon]
root        50     2  0 Jun03 ?        00:00:00 [bioset]
root        51     2  0 Jun03 ?        00:00:00 [bioset]
root        52     2  0 Jun03 ?        00:00:00 [bioset]
root        53     2  0 Jun03 ?        00:00:00 [bioset]
root        54     2  0 Jun03 ?        00:00:00 [bioset]
root        55     2  0 Jun03 ?        00:00:00 [bioset]
root        56     2  0 Jun03 ?        00:00:00 [bioset]
root        57     2  0 Jun03 ?        00:00:00 [bioset]
root        58     2  0 Jun03 ?        00:00:00 [bioset]
root        59     2  0 Jun03 ?        00:00:00 [scsi_eh_0]
root        60     2  0 Jun03 ?        00:00:00 [scsi_tmf_0]
root        61     2  0 Jun03 ?        00:00:00 [scsi_eh_1]
root        62     2  0 Jun03 ?        00:00:00 [scsi_tmf_1]
root        68     2  0 Jun03 ?        00:00:00 [ipv6_addrconf]
root        81     2  0 Jun03 ?        00:00:00 [deferwq]
root        82     2  0 Jun03 ?        00:00:00 [charger_manager]
root       117     2  0 Jun03 ?        00:00:00 [bioset]
root       118     2  0 Jun03 ?        00:00:00 [bioset]
root       119     2  0 Jun03 ?        00:00:00 [bioset]
root       120     2  0 Jun03 ?        00:00:00 [bioset]
root       122     2  0 Jun03 ?        00:00:00 [bioset]
root       123     2  0 Jun03 ?        00:00:00 [bioset]
root       124     2  0 Jun03 ?        00:00:00 [bioset]
root       125     2  0 Jun03 ?        00:00:00 [kpsmoused]
root       126     2  0 Jun03 ?        00:00:00 [bioset]
root       127     2  0 Jun03 ?        00:00:00 [ttm_swap]
root       147     2  0 Jun03 ?        00:00:00 [kworker/0:1H]
root       150     2  0 Jun03 ?        00:00:00 [jbd2/vda1-8]
root       151     2  0 Jun03 ?        00:00:00 [ext4-rsv-conver]
root       190     1  0 Jun03 ?        00:00:00 /lib/systemd/systemd-journald
root       204     2  0 Jun03 ?        00:00:00 [kauditd]
root       234     1  0 Jun03 ?        00:00:00 /lib/systemd/systemd-udevd
root       394     1  0 Jun03 ?        00:00:01 /usr/lib/accountsservice/account
root       397     1  0 Jun03 ?        00:00:00 /usr/sbin/cron -f
daemon     398     1  0 Jun03 ?        00:00:00 /usr/sbin/atd -f
message+   404     1  0 Jun03 ?        00:00:00 /usr/bin/dbus-daemon --system --
root       420     1  0 Jun03 ?        00:00:00 /lib/systemd/systemd-logind
syslog     421     1  0 Jun03 ?        00:00:00 /usr/sbin/rsyslogd -n
root       608     1  0 Jun03 ?        00:00:00 /sbin/dhclient -1 -v -pf /run/dh
root       623     2  0 Jun03 ?        00:00:00 [edac-poller]
root       694     1  0 Jun03 ?        00:00:36 /usr/sbin/aliyun-service
ntp        732     1  0 Jun03 ?        00:00:04 /usr/sbin/ntpd -p /var/run/ntpd.
root       783     1  0 Jun03 tty1     00:00:00 /sbin/agetty --noclear tty1 linu
root       784     1  0 Jun03 ttyS0    00:00:00 /sbin/agetty --keep-baud 115200
root       907     1  0 Jun03 ?        00:00:00 /usr/sbin/sshd -D
root      1075     2  0 Jun03 ?        00:00:01 [kworker/0:1]
root      1294     1  0 Jun03 ?        00:00:25 /usr/local/aegis/aegis_update/Al
root      1334     1  0 Jun03 ?        00:03:22 /usr/local/aegis/aegis_client/ae
root     16726   907  0 15:16 ?        00:00:00 sshd: root@pts/0
root     16730     1  0 15:16 ?        00:00:00 /lib/systemd/systemd --user
root     16731 16730  0 15:16 ?        00:00:00 (sd-pam)
root     16751 16726  0 15:16 pts/0    00:00:00 -bash
root     16793   907  0 15:39 ?        00:00:00 sshd: root@pts/1
root     16811 16793  0 15:39 pts/1    00:00:00 -bash
root     16842   907  0 16:18 ?        00:00:00 sshd: root@pts/2
root     16860 16842  0 16:18 pts/2    00:00:00 -bash
root     16877     2  0 16:22 ?        00:00:00 [kworker/u2:2]
root     16878     2  0 16:22 ?        00:00:00 [kworker/0:0]
root     16890 16860  0 16:29 pts/2    00:00:00 ps -ef
root@toby:~#
  • UID:该进程的启动用户名;
  • PID:process id,进程的id号
  • PPID:parent process id,父级进程id号
  • C:表示的cpu的使用情况
  • STIME:start time,启动时间
  • TTY:终端的设备编号,“?”表示该进程不是由终端发起的
  • TIME:持续运行的时间
  • CMD:command,显示进程的名称或者位置

补充:结束进程的指令

#kill PID

service

作用:操作服务的(启动/停止/重启)

语法:service 服务名 start/stop/restart

案例:使用service指令启动apache(httpd)

# service httpd start

注意

对于服务名是存在要求的,要求服务名必须存在于/etc/init.d目录下

root@toby:~# cd /etc/init.d/
root@toby:/etc/init.d# ls
README                  hostname.sh              nscd          sendsigs
aegis                   hwclock.sh               ntp           single
apparmor                irqbalance               ondemand      skeleton
atd                     keyboard-setup.dpkg-bak  plymouth      ssh
bootmisc.sh             killprocs                plymouth-log  sysstat
checkfs.sh              kmod                     procps        udev
checkroot-bootclean.sh  mountall-bootclean.sh    rc            ufw
checkroot.sh            mountall.sh              rc.local      umountfs
console-setup           mountdevsubfs.sh         rcS           umountnfs.sh
cron                    mountkernfs.sh           reboot        umountroot
dbus                    mountnfs-bootclean.sh    resolvconf    urandom
grub-common             mountnfs.sh              rsync         uuidd
halt                    networking               rsyslog
root@toby:/etc/init.d#

除了可以用service指令操作服务,还可以通过如下语法:

/etc/init.d/服务名 start/stop/restart

所以刚才apache的启动指令还可以写成:

/etc/init.d/httpd start

grep

搜索、过滤. 主要用于对文件/内容进行筛选,选出需要的内容

语法: #grep [选项] 关键词 文件路径/内容

选项:

  • v:排除

示例:使用grep筛选出php2019.txt中的admin行

除了admin 都会被查找, 取反

扩展用法:

#grep -E “关键词1|关键词2|…” 文件路径或内容

选项:

  • E表示extension,该语法表示多条件筛选,“|”表示or

上述扩展用法等价于:

#egrep “关键词1|关键词2|….” 文件的内容或路径

创建2019.txt 添加内容

1412334
admin
kljsdakjdfkas
foiweroiqwefsd
root@toby:~# touch 2019.txt
root@toby:~# vim 2019.txt
root@toby:~# grep "admin" 2019.txt
admin
root@toby:~#

常见的选项: -v:排除 案例:使用grep筛选出php2018.txt中的admin行

wc

作用:word count,其作用是用于统计文件的各项数值(行、单词数、字节数)

语法:#wc -lwc 文档的路径

选项含义:

  • -l:line,行数
  • -w:word,单词数
  • -c:byte,字节数
root@toby:~# wc -lwc 2019.txt
 4  4 43 2019.txt
root@toby:~#

注意:

lwc选项的顺序,不影响其指令输出的结果的顺序,结果顺序一定是行 、 单词 、字节

管道

管道严格意义上说其不是指令,其只是一个符号“|”。该符号主要起到辅助的作用,能够将多个指令合在一行上进行操作。主要用在搜索过滤等上面

语法:# 必须在终端中有输出内容的指令 | 有输入的指令[要求有读取文件内容的需求]

管道的核心理解概念:管道前面的指令的输出其实就是管道后面指令的输入

案例:通过ps指令查看进程,只查看httpd的进程。

ps -ef | grep “httpd”

示例: “/etc/passwd”文件是存储用户信息的文件,该文件中一行即为一个用户,要求使用所学的指令统计出当前计算机中一共有多少个用户?

cat /etc/passwd | wc -l