一、shell 命令

1. shell 概述

英文单词shell直译为“贝壳”。贝壳是动物作为外在保护的一种工具。
可以这样认为。Linux中的shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。

命令是用户向系统内核发出控制请求,与之交互的文本流
在这里插入图片描述

shell 是一个命令行解释器,讲用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互。
当需要重复执行若干命令,可以将这些命令集合起来,加入一定的控制语句,编辑成shell脚本文件,交给shell批量执行。
在这里插入图片描述

用户在命令行提示符下键入命令文本,开始于shell进行交互。
接着,shell将用户的命令或按键转化成内核所能够理解的指令
控制操作系统做出响应,直到控制相关硬件设备
然后,shell将输出结果通过shell提交给用户

在这里插入图片描述

shell命令的乐趣
立即关机于重启
在命令行输入以下命令,系统立即关机:

sudo shutdown -h now
或者
sudo power of

在命令行输入以下命令,系统立即重新启动:

sudo shutdown -r now
//或者
sudo reboot now

定时关机和重启
时间限定45分钟

sudo shutdown -h +45 "That is all,game over."

shell 命令格式

  • $:shell提示符,如果当前用户为超级用户,提示符为“ # ”,其他用户提示符为“$”
  • Command:命令名称,shell命令或程序,严格区分大小写
  • Options:命令选项,用于改变命令执行动作的类型,由“ - ”引导,可以同时带有多个选项;
  • Argument:命令参数,指出命令作用的对象或者目标,有的命令允许带多个参数。

一条命令三要素之间用空格隔开;
若将多个命令在一行书写,用分号“ ;” 将各命令隔开。
如果一条命令不能在一行写完,在行尾使用反斜杠“ / ”标明该命令未结束。

shell 中的特殊字符
通配符
当需要用命令处理一组文件,例如file1.txt、file2.txt …,用户不必一一输入文件名,可以使用shell通配符。

2. 基本系统维护命令

man 获取联机帮助

使用man命令可以找到特定的联机帮助页,并且提供简短的命令说明。一般语格式为

man commandname

联机帮助页提供了指令命令commandname的相关信息,包括,名称,函数,语法以及可选参数描述等,

查库函数:man 3 XX
系统调用:man 2 XX
跟XX相关的系统信息:man -a XX
通常联机帮助信息包括以下几个部分:

NAME:命令的名称
SYNOPSIS:命令的语法格式
DESCRIPTION:命令的一般描述以及用途
OPTIONS:描述命令所有的参数或选项
SEE ALSO:列出联机板子页中与该命令直接相关或者功能相接近的其他命令
BUGS:解释命令或其输出中存在的任何已知的问题或缺陷
EXAMPLES:普通的用法示例
AUTHORS:联机帮助页以及命令的作者

passwd 基本系统维护命令

出于系统安全考虑,linux系统中每个账号都有用户名和密码
也可以使用passwd命令,为己有账号重新修改用户口令
需要说明的是,超级用户root可以修改所有其他用户口令,而普通用户只能修改自己的用户口令,如果确要修改超级用户或其他用户口令的话,需要具备超级用户的权限。
一般语法格式:

passwd username

su命令:切换用户命令
echo 命令
echo命令用于在标准输一一显示器上显示一段文字,一般起到提示作用

echo [-n] information

选项-n表示输出文字后不换行。提示信息符串可以加引号,也可以不加。

echo "Hello  everyone.“  #输入信息字符串使用引号
echo  Hello  everyone.    #输入信息字符串不使用引号,字符串之间用一个空格隔开

3. 查看文件系统信息

clear 清除屏幕 或者 使用快捷键: ctrl+l

df -T :显示文件系统信息
df -T -h :显示文件系统信息并且显示大小

du命令:列出目录和文件所使用的磁盘空间块数,每块占512个字节。 常用参数: -a:仅列出空闲的文件数 -h:列出磁盘的使用情况(KB) -s:列出总的空闲空间(KB) 例如:#du -h /etc

二、Linux 的用户管理

  • 用户属性:
  1. 用户名
  2. 口令
  3. 用户ID(UID)
  4. 用户主目录(HOME)
  5. 用户shell

三、Linux进程管理相关命令

3.1 进程的概念

3.1.1 编译程序上的两个进程
程序的一次执行就是一个进程

3.2 进程管理相关命令

3.2.1 ps命令
显示进程(process)的动态

ps XX

下面对ps命令选项进行说明:

命令参数说明
-e显示所有进程.
-f全格式。
-h不显示标题。
-l长格式。
-w宽输出。
-a显示终端上的所有进程,包括其他用户的进程。
-r只显示正在运行的进程。
-u以用户为主的格式来显示程序状况。
-x显示所有程序,不以终端机来区分。

ps -ef 显示所有进程,全格式形式查看进程:
ps -ef 的每列的含义是什么呢?
在这里插入图片描述

命令参数说明
UID:程序被该 UID 所拥有,指的是用户ID
PID:就是这个程序的 ID
PPID :PID的上级父进程的ID
C :CPU使用的资源百分比
STIME :系统启动时间
TTY:登入者的终端机位置
TIME :使用掉的 CPU时间。
CMD:所下达的指令为何

3.2.2 进程的状态标志

R正在执行中
S阻塞状态
T暂停执行
Z不存在但暂时无法消除(僵尸进程)
D不可中断的静止
<高优先级的进程
N低优先级的进程
L有内存分页分配并锁在内存中

3.2.3 top命令
监视进程

  • 通常会全屏显示,而且会随着进程状态的变化不断更新
  • 整个系统的信息也会显示,为查找问题提供了便利
  • 可以显示系统总共有多少CPU和内存资源以及负载平衡等信息。

3.2.4 pstree命令

将所有行程以树状图显示,树状图将以pid(如果有指定)或是以init这个基本进程为根,如果有指定使用者id,则树状图会只显示该使用者所用有的进程。
在这里插入图片描述

3.2.5 kill命令—终止进程
使用kill命令终止进程

kill 9 5565

9是信号,5565 是pid(进程号)

kill
命令向指定的进程发错一个信号signal,在默认的情况下,kill命令向指定进程发出信号15,正常情况下,将杀死那些不捕捉或不忽略这个信号的进程。

以下图是信号的全部
在这里插入图片描述

五、Linux文件系统的类型和结构

在任何一个操作系统中,文件系统无疑是其最重要的组件,用于组织和管理计算机存储设备上的大量文件,并提供用户交互接口。Linux同样具备完善的文件系统。用户既可以使用界面友好的Nautilus图形文件管理器,也可以使用功能强大的shell文件系统管理工具。

linux是一种兼容性很高的操作系统,支持的文件系统格式很多,大体可分以下几类:
-磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、 USB存储器、磁盘阵列等。常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext3、Ext4、VFAT、IS09660(通常是CD-ROM)、UFS(Unix File System,Unix文件系统)、FAT、FAT16、FAT32、NTFS等;
-网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS、Samba等; -专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File System,回送文件系统)。

3. Linux分区的命名方式

字母和数字相结合

前两个字母表示设备类型

hd 代表IDE硬盘
sd 表示SCSI或SATA硬盘

第三个字母说明具体的设备

/dev/hda 表示第一个IDE硬盘
/dev/hdb 表示第二个IDE硬盘

4. 交换分区(虚拟内存)

  1. 将内存中的内容写入硬盘或从硬盘中读出,称为内存交换(swapping)
  2. 交换分区最小必须等于计算机的内存
  3. 可以创建多于一个的交换分区
  4. 尽量把交换分区放在硬盘驱动器的起始位置

5. 文件系统逻辑结构

我们先用个例子来分析一下:

某所大学的学生可能在一两万人左右,通常将学生分配在以学院-系-班为单
位的分层组织机构中。若需要查找一名学生时,最笨的办法是依次问询大学中的每一个学生,直到找到为止。如果按照从学院、到系、再到班的层次查询下去,必然可以找到该学生,且查询效率高。这种树形的分层结构就提供了一种自顶向下的查询方法。

如果把学生看作文件,院-系-班的组织结构看作是Linux文件目录结构,那么就同样可以有效地管理数量庞大的文件。

6. 文件系统结构

  • 分区与目录的关系:

-在Windows下,目录结构属于分区;在Linux下,分区属于目录结构。

  • 如何知道文件存储的具体硬件位置呢?

1. 在Linux中,将所有硬件都视为文件来处理,包括硬盘分区、CD-ROM、软驱以及其他USB移动设备等。为了能够按照统一的方式和方法访问文件资源,Linux中提供了对每种硬件设备相应的设备文件。一旦Linux系统可以访问到硬件,就将其上的文件系统挂载到目录树中的一个子目录中。
2. 例如,用户插入USB移动存储器,Ubuntu Linux自动识别后,将其挂载到“/media/disk”目录下。而不象Windows系统将USB存储器作为新驱动器,表示为“F:”盘。

Linux文件系统就是一个树形的分层组织结构将根(/)作为整个文件系统的惟一起点,其他所有目录都从该点出发。将Linux的全部文件按照一定的用途归类,合理地挂载到这颗“大树”的“树枝”或“树叶”上,如图所示。而这些全不用考虑文件的实际存储位置,无论是存在硬盘上,还是在CD-ROM或USB存储器中,甚至是网络终端。在这里插入图片描述
在这里插入图片描述

六、Linux网络配置

1. IP地址

IP地址包括三部分:Internet网络号(Net-ID)、子网号(Subnet-ID)和主机号(Host-ID)
在这里插入图片描述
因而可以这样解释:一个IP地址唯一标识了,处在某个互联网中的,某个子网的,某个网络接口。

2. 配置IP地址

接入网络的计算机主机依靠IP地址,惟一地标识其在网络中的身份,因此为主机配置IP地址是接入网络的关键。
配置IP地址的方法有两种:

  • 配置静态IP:在主机进入网络之前,事先为主机设置固定的IP地址;
  • 配置动态IP:选择DHCP网络服务,在主机进入网络之后,动态随机获取IP地址。

ifconfig命令

从下面的运行结果可以看出,主机有两个接口eth0、lo。lo代表主机本身,也称回送接口(Loopback),其IP地址约定为127.0.0.1。
在这里插入图片描述
动态IP的获取过程
执行过程中包括以下四个阶段。

  1. 客户端寻找DHCP服务器(DHCPDISCOVER):
  2. 客户端广播申请动态IP的请求;服务器提供可分配的IP地址(DHCPOFFER):所有接收到请求的DHCP服务器都将向客户端提供一个IP地址;
  3. 客户端接受IP地址租借(DHCPREQUEST):客户端从多个IP选择中挑选一个,通知DHCP服务器,并标识出所选中的服务器;
  4. 服务器确认租借IP(DHCPACK):被选中的DHCP服务器最后发出一个确认信息,包含IP地址、子网掩码、默认网关、DNS服务器和租借期(客户端使用这个
    IP的这段时间,称为租借期)。

最终客户端临时“租借”的IP地址为192.168.182.129。

在这里插入图片描述

Logo

更多推荐