Linux C高级第二天

4.2 用户管理命令

sudo adduser 用户名: 添加用户

sudo deluser --remove-home 用户名:删除用户的同时删除工作目录

注意:不要进入用户删除当前用户

4.3 进程管理命令

什么是进程? 就是程序的一次执行过程,是动态的。

4.3.1 ps

ps -aux: 显示当前系统中运行的进程

ps -ef: 显示当前系统中运行的进程,包含PPID(父进程号)

表头

含义

USER

该进程是由哪个用户产生的。

PID

进程的 ID。

%CPU

该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。

%MEM

该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。

VSZ

该进程占用虚拟内存的大小,单位为 KB。

RSS

该进程占用实际物理内存的大小,单位为 KB。

TTY

该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。?是守护进程,也就是一开始启动时系统在后台运行的进程。(后面IO会讲)

STAT

1. D uninterruptible sleep (usually IO) 不可中断的睡眠态

2. R running or runnable (on run queue) 运行态

3. S interruptible sleep (waiting for an event to complete) 可中断的睡眠态

4. T stopped by job control signal 暂停态

5. t stopped by debugger during the tracing 因为调试而暂停

6. X dead (should never be seen) 死亡态

7. Z defunct ("zombie") process, terminated but not reaped by its parent 僵尸态

8. < high-priority (not nice to other users) 高优先级

9. N low-priority (nice to other users) 低优先级

10. L has pages locked into memory (for real-time and custom IO) 锁在内存中

11. s is a session leader 会话组组长

12. l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)多线程

13. + is in the foreground process group 前台进程

14. 没有+时,默认是后台进程

15. I 空闲状态进程

START

该进程的启动时间。

TIME

该进程占用 CPU 的运算时间,注意不是系统时间。

COMMAND

产生此进程的命令名。

4.3.2 top

动态查看系统中运行的进程

shift >: 向下翻页

shift <: 向上翻页

q: 退出

4.3.3 修改优先级

PR = NI + 20

NI值的范围: -20~19, NI值越小优先级越高

sudo renice NI值 PID: 改变正在运行进程的优先级

sudo nice -n NI值 启动进程的命令:以指定的优先级运行进程

4.3.4 grep 命令

从文件中查找字符串

grep "要查找的字符串" 文件名

grep "\<要查找的字符串\>" 文件名:精确查找

结合ps以及管道:

ps -ef | grep a.out: 从进程信息中查找带a.out的字符串

4.3.5 find命令

find 路径 -name 文件名: 查找路径下的文件

查找多个文件可以加""

4.3.6 给进程发送信号命令kill

从本质上讲,kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。

kill -l:查看系统中定义的信号

2:SIGINT 快捷方式:ctrl+c 结束进程

3:SIGQUIT 快捷方式:ctrl+\ 结束进程

9:SIGKILL 杀死进程

15:SIGTERM 结束进程 kill发信号时不加编号,默认信号为15号

18: SIGCONT 让暂停进程继续

20:SIGTSTP 暂停信号 快捷方式:ctrl+z 暂停信号

kill -num PID:

num:信号编号

PID:通过ps或top命令查看到的进程号

kill -num PID :

num:信号编号

PID:通过ps或top命令查看到的进程号

4.3.6前后进程切换

步骤:先运行进程

ctrlz:将进程暂停

bg编号:切换到后台

jobs:在当前终端查看后台进程

fg编号:将后台进程切换到前台

4.4 网络管理

4.4.1命令

ifconfig:查看linux的ip地址

ipconfig:查看windows的ip地址

win+r打开运行窗口,输入cmd打开命令窗口,输ipconfig

ping 域名/ip地址:检查网络的连通性(是否能通信)

4.5 文件系统管理

用于组织和管理计算机存储设备上的大量文件,并提供用户交互接口

4.5.1 文件系统分类

磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。常见文件系统格式有:Ext2、Ext3、Ext4、VFAT等

网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS(Network File System,网络文件系统)、Samba(SMB/CIFS)等

专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File System,回送文件系统)。

4.5.2 根文件系统结构

需要了解常见的目录含义:

/bin:存放系统中最常用的可执行文件(二进制)

/sbin : 存放更多的可执行文件(二进制),包括系统管理、目录查询等关键命令文件

/boot:存放Linux内核和系统启动文件,包括Grub、lilo启动器程序

/opt: 与系统无关的安装程序

/etc: 放的一些配置文件。Linux开机自启动脚本存放在/etc/rc.d或/etc/init.d目录下。这些目录是Linux系统中用于存放启动脚本的标准目录

/dev : 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等

/lib : 存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件

/mnt : 该目录通常用于作为被挂载的文件系统的挂载点

/proc : 存放所有标志为文件的进程,它们是通过进程号或其他的系统动态信息进行标识,例如cpuinfo文件存放CPU当前工作状态的数据

/usr : 用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。以下罗列了/usr中部分重要的目录。

/usr/lib: 库文件,系统默认搜索的库路径

/usr/include: 头文件,系统默认搜索的头文件路径

Linux开机自启动脚本存放在/etc/rc.d或/etc/init.d目录下。这些目录是Linux系统中用于存放启动脚本的标准目录

4.5.3显示文件内容

cat文件名:显示文件全部内容

head:

head-n文件名:显示前n行

head后面不加数字,默认显示前10行

tail:

tail-n文件名:显示后n行

tail后面不加数字,默认显示后10行

4.5.4链接文件

(1) 文件类型:7种,bcd-lsp

硬链接:是利用Linux中为每个文件分配的物理编号——inode号建立链接。 因此,硬链接不能跨越文件系统。

软链接(符号链接):是利用文件的路径名建立链接。通常建立软链接使用绝对路径而不是相对路径,以最大限度增加可移植性;类似windows下的快捷方式

(2) 命令:

硬链接:ln +源文件 + 链接文件名

软链接:ln-s + 绝对路径 + 源文件 + 链接文件名

(3) 注意:

硬链接:删除或移动目标文件链接依然有效

只能操作普通文件

软链接:删除或移动目标文件链接失效,但是在此创建时链接依然有效

建立软链接使用绝对路径而不是相对路径,以最大限度增加可移植性

4.5.5文件压缩解压

(1) zip命令用于将一个文件或多个文件压缩成单一的压缩文件

unzip命令用于将zip压缩文件进行解压

注意:

1)具有归档功能,并进行压缩

2)可以压缩文件夹,后缀为.zip

3)压缩或者解压后源文件依然存在

格式:

zip 压缩文件名.zip要压缩文件列表

unzip压缩文件名.zip

(2) gzip命令用于将一个文件继续压缩

gunzip命令用于将gzip压缩的文件进行解压

注意:

1)只能对一个文件进行压缩,并自动后缀为.gz

2)没有归档功能

3)压缩或解压后源文件不存在

格式:

gzip要压缩的文件名

gunzip压缩文件名

(3) bzip2: 功能、特点与gzip相同,只是后缀为.bz2

bunzip2: 解压

(4) tar:

-x : 释放归档文件,解压

-c : 创建一个新的归档文件,压缩

-v : 显示归档和释放的过程信息

-f : 用户指定归档文件的文件名,否则使用默认名称

-j : 由tar生成归档,然后由bzip2压缩 .tar.bz2

-z : 由tar生成归档,然后由gzip压缩 .tar.gz

注意:

1)具有归档功能,并通过选项可以进行压缩或解压

2)压缩或解压后源文件存在

3)需要写全压缩或解压的文件名格式:

格式:

tar 选项 压缩(解压)文件名 [要压缩的文件列表]

组合:

-cjf :以bz2的格式压缩文件

-czf :以gz的格式压缩文件

-xvf : 解压一个压缩包;解压后压缩包依然存在

shell脚本

1. shell脚本基础概念

1.1概念

shell使用方式:手动下命令和脚本

脚本本质是一个文件,文件里面存放的是特定格式的指令,系统可以使用脚本解析器翻译或解析指令并执行(它不需要编译)。

shell脚本本质:shell命令的有序集合,扩展名可以为sh见名知意,也可以没有。

shell 既是应用程序,又是一种脚本语言(应用程序 解析 脚本语言)。

编译型语句:编译器gcc, g++

解释型语句:不需要编译,解释一条执行一条,python、shell脚本。

1.2创建执行

新建一个shell脚本:touchxx.sh

第一行为:#!/bin/bash

意思是使用/bin/bash来解释执行

执行方式:

1. sudochmod权限xx.sh#使脚本具有执行权限

2. ./xx.sh#执行脚本

练习:

1)在当前路径下创建file_1到file_5, 5个普通文件

2)删除 file_2和file_3文件(使用通配符)

3)将剩下的file文件用tar压缩成bz2的格式

4)将压缩文件复制到家目录下

5)进入到家目录解压压缩文件

6)删除压缩包

2. 变量

2.1用户自定义变量

名命一般用大写

进行赋值时用=,左右两边不能有空格

引用变量在变量名前面加$

2.2位置变量

$0或者${0}代表包含脚本文件名的命令行参数./xx.sh

$1,$2...代表第二个命令行参数、第三个命令行参数以此类推

$#代表命令行参数个数(不包含第一个也就是带脚本名的命令行参数)

$@或者$*代表所有命令行参数(不包含第一个也就是带脚本名的命令行参数)

2.3预定义变量

$?代表前一个命令的退出状态(0为真,非0为假)

$$ 代表执行进程的ID号

2.4环境变量

变量没有类型,都看作是字符串。

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。

HOME: /etc/passwd文件中列出的用户主目录

PATH :shell搜索路径,就是是一系列目录,当执行命令时,linux就在这些目录下查找。

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值