Bootstrap

Linux命令day2

目录

补充:

1.linux命令

1.1系统维护命令

1.1.1man

1.1.2su

1.1.3sudo

1.1.4df命令

1.1.5mount命令

1.2用户管理

1.3进程管理命令

1.3.1ps

1.3.2top

1.3.3修改优先级

1.3.4grep命令

1.3.5kill命令

1.3.6前后台切换命令

1.4网络管理命令

1.4.1命令

1.4.2ubuntu网络配置

1.5文件管理命令

1.5文件系统管理命令

1.5.1文件系统分类

1.5.2根文件系统结构

1.5.3文件内容显示

1.5.4链接文件

1.5.5文件压缩和解压

2.1shell的基础概念:

2.1.1概念

2.1.2创建和执行

2.2变量

2.2.1用户自定义变量

2.2.2位置变量

2.2.3预定义变量

2.2.4环境变量

补充:

    1. 命令置换符

``(esc下面的`)

command 1 `command 2`

将一个命令的输出作为另一个命令的参数

    1. echo

向终端输出指定的内容

echo 字符串 :输出

echo "字符串" :原样输出

echo -n 字符串 :不换行输出

    1. date

date:显示当前的日期和时间

sudo date -s y/m/d 修改日期

sudo date -s h:m:s 修改时间

1.linux命令

1.1系统维护命令

1.1.1man

man man:查看man手册

1 Executable programs or shell commands 可执行程序或shell命令

2 System calls (functions provided by the kernel) 系统调用

3 Library calls (functions within program libraries) 库函数

退出q

1.1.2su

切换到超级用户

su

su root

sudo su

退出exit

切换到其他普通目录:su 用户名

1.1.3sudo

临时管理员权限,有时需要输入密码(密码是1,且不显示密码)

1.1.4df命令

df -Th:查看磁盘空间使用情况

1.1.5mount命令

作用:文件系统的挂载

挂载设备:sudo mount -t 设备类型 设备名称 挂载点

卸载设备:sudo umount 挂载点

注意:卸载时不要在挂载点目录下卸载

通过网络挂载:mount -t nfs 192.168.1.100:/mnt /home

1.2用户管理

添加用户:sudo adduser 用户名

删除用户并删除用户所在目录:sudo deluser --remove-home 用户名

如果不能成功删,会提示被哪一个进程占用

1> ps aux|grep "haha"

2> kill -9 占用的进程号

3> 关闭终端

4> 再次执行deluser --remove-home haha

5> 显示Done. 说明成功删除

1.3进程管理命令

1.3.1ps

ps -aux:显示系统中正在运行的进程

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

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

用户 进程号 终端 进程状态 开启时间 命令

表头

含义

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 空闲状态进程(大写i)
  16. *守护进程

START

该进程的启动时间。

TIME

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

COMMAND

产生此进程的命令名。

1.3.2top

动态查看系统运行进程

shift > : 向下翻页

shift < :向上翻页

退出:q

PR:优先级

VIRT:占用虚拟内存

RES:占用真正

SHR共享内存

1.3.3修改优先级

PR = NI + 20

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

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

例如sudo renice -5 2077

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

例如sudo nice -n -10 ./a.out

1.3.4grep命令

grep:文件中查找字符串

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

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

从进程中查找a.out进程?

ps -aux | grep "a.out"

grep -r "查找的字符串" 路径 指定目录搜索字符串

补充

find 路径 -name 文件名” 查找xx路径某个文件

find /usr -name "*name*"

1.3.5kill命令

本质上来说kill只是用来向进程发送一个信号,至于信号是什么,是用户指定的

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

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

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

9:SIGKILL 杀死进程

14:SIGALRM:在程序中可以定时,定时结束后产生SIGALRM信号结束进程

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

18: SIGCONT 让暂停进程继续

19:SIGSTOP: 停止信号,如果发送19号信号也会结束进程

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

kill -num PID :num信号编号 PID:进程号

1.3.6前后台切换命令

步骤:先运行进程

ctrl z 暂停

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

bg 编号 切换后台

fg 编号切换前台

注意需要在同一终端执行

1.4网络管理命令

1.4.1命令

ifconfig:查看linux的IP地址

ipconfig :查看windows的ip地址

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

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

例如:ping www.baidu.com

1.4.2ubuntu网络配置

  1. 桥接模式:

1)桥接模式:编辑->虚拟网络编辑器->更改设置->选择vmnet0->桥接模式->桥接的网络适配器(根据主机的网络连接进行选择,当然选择自动也可以)->确定。

如果自动不行也可以找到对应的网络适配器。

2)虚拟机->设置->网络适配器->选择桥接模式

  1. nat模式

1)编辑->虚拟网络编辑器->更改设置->选择vmnet8->nat模式->确定。

2)虚拟机->设置->网络适配器->选择nat模式

如果还不行就试试关闭虚拟机然后还原默认设置

1.5文件管理命令

1.5文件系统管理命令

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

1.5.1文件系统分类

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

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

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

1.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: 头文件,系统默认搜索的头文件路径

1.5.3文件内容显示

1 cat 文件名文件内容显示终端

  1. head

head 文件名 默认显示10

head -n 文件名显示文件n

3tail

tail 文件名 默认显示10

tail -n 文件名 显示文件n

1.5.4链接文件

bsp-lcd

硬链接

利用linux为每个文件分配的物理编号--inode号建立连接。因此,硬链接不能跨越文件系统

软链接

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

  1. 命令

创建硬链接

ln 源文件名 链接文件名

修改一个文件另一个也会随之改变

创建软链接

ln -s 绝对路径/源文件 链接文件名

3注意

硬链接删除移动目标文件链接依然有效,只能操作普通文件

软链接删除移动目标文件链接失效但是再次创建时链接依然有效

通常建立软链接绝对路径而不是相对路径以最大限度增加移植

硬链接和软链接的区别?

  1. 创建链接:硬链接利用linux为每个文件分配的物理编号--inode号建立链接;

软链接利用文件的路径名建立链接

  1. 硬链接只能操作普通文件
  2. 硬链接:删除或移动目标文件链接依然有效

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

1.5.5文件压缩解压

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

unzip解压

注意:

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

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

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

例子:

zip c.zip *.c

unzip c.zip

2gzip命令用于将一个文件进行压缩。

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

注意:

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

2)没有归档功能

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

例如:gzip test.c

gunzip test.c.gz

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

bunzip2:解压

  1. tar

选项:

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

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

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

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

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

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

注意:

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

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

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

组合:

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

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

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

举例:

$tar -cjf file.tar.bz2 *.c

$tar -czf file.tar.gz *.c

$tar -xvf file.tar.gz

  1. shell脚本

2.1shell的基础概念:

2.1.1概念

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

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

shell不仅是一个应用程序还是一种脚本语言

1编译语言c c++

2解释型语言shell python,不需要编译直接执行,当中间出粗偶,智慧在错误的地方报错,但是不会影响后面的内容;解析一条指令,执行一条指令

2.1.2创建和执行

创建shell脚本:

touch test.sh

第一行:#!/bin/bash 指定解析器)

解释型信息意思使用/bin/bash解释执行

#!/bin/bash
touch fun.c

执行方式

  1. chmod 777 test.sh :使脚本具有执行权限

./test.sh

  1. sh test.sh (不要用,指用应急shell解析)

2.2变量

2.2.1用户自定义变量

一般大写 进行赋值用=,左右两边不能有空格

引用变量的需要在前面$

2.2.2位置变量

$0 与输入命令行一样包含脚本名称

$1,$2,$3....$9,分别包含第一个第九个命令行参数

$# :命令行参数个数不包含脚本文件

$@:所有命令行参数

$*:所有命令行参数

2.2.3预定义变量

$? :前一个命令退出状态0为真,非零为假)

$$ :正在运行进程进程号

2.2.4环境变量

变量没有类型

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

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

PATH shell搜索路径,一系列的目录

;