单用户操作系统和多用户操作系统
-
单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源
Windows XP
之前的版本都是单用户操作系统
-
多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源
Unix
和Linux
的设计初衷就是多用户操作系统
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:可执行二进制文件的目录,如常用的命令
ls
、tar
、mv
、cat
等 - /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:放置系统管理员使用的可执行命令,如
fdisk
、shutdown
、mount
等。与/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 -h
或 df -m
选项说明:
- h:表示以较高可读性单位进行查看
- m: 以MB为单位
free
作用:查看内存的使用情况
语法:free -m
或 free -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
复制代码