Linux基础命令

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

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

    • 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(拷贝和移动文件)
序号命令对应英文作用
01tree [目录名]tree以树状图列出文件目录结构
02cp 源文件 目标文件copy复制文件或者目录
03mv 源文件 目标文件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 命令要小心,因为文件删除后不能恢复

查看文件内容

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

转载于:https://juejin.im/post/5cf4df7cf265da1bc64bad00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值