英文单词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 中的特殊字符
通配符
当需要用命令处理一组文件,例如file1.txt、file2.txt …,用户不必一一输入文件名,可以使用shell通配符。
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. #输入信息字符串不使用引号,字符串之间用一个空格隔开
clear 清除屏幕 或者 使用快捷键: ctrl+l
df -T :显示文件系统信息
df -T -h :显示文件系统信息并且显示大小
du命令:列出目录和文件所使用的磁盘空间块数,每块占512个字节。 常用参数: -a:仅列出空闲的文件数 -h:列出磁盘的使用情况(KB) -s:列出总的空闲空间(KB) 例如:
#du -h /etc
3.1.1 编译程序上的两个进程
程序的一次执行就是一个进程
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同样具备完善的文件系统。用户既可以使用界面友好的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,回送文件系统)。
字母和数字相结合
前两个字母表示设备类型
hd 代表IDE硬盘
sd 表示SCSI或SATA硬盘
第三个字母说明具体的设备
/dev/hda 表示第一个IDE硬盘
/dev/hdb 表示第二个IDE硬盘
- 将内存中的内容写入硬盘或从硬盘中读出,称为内存交换(swapping)
- 交换分区最小必须等于计算机的内存
- 可以创建多于一个的交换分区
- 尽量把交换分区放在硬盘驱动器的起始位置
我们先用个例子来分析一下:
某所大学的学生可能在一两万人左右,通常将学生分配在以学院-系-班为单
位的分层组织机构中。若需要查找一名学生时,最笨的办法是依次问询大学中的每一个学生,直到找到为止。如果按照从学院、到系、再到班的层次查询下去,必然可以找到该学生,且查询效率高。这种树形的分层结构就提供了一种自顶向下的查询方法。如果把学生看作文件,院-系-班的组织结构看作是Linux文件目录结构,那么就同样可以有效地管理数量庞大的文件。
-在Windows下,目录结构属于分区;在Linux下,分区属于目录结构。
1. 在Linux中,将所有硬件都视为文件来处理,包括硬盘分区、CD-ROM、软驱以及其他USB移动设备等。为了能够按照统一的方式和方法访问文件资源,Linux中提供了对每种硬件设备相应的设备文件。一旦Linux系统可以访问到硬件,就将其上的文件系统挂载到目录树中的一个子目录中。
2. 例如,用户插入USB移动存储器,Ubuntu Linux自动识别后,将其挂载到“/media/disk”目录下。而不象Windows系统将USB存储器作为新驱动器,表示为“F:”盘。
Linux文件系统就是一个树形的分层组织结构将根(/)作为整个文件系统的惟一起点,其他所有目录都从该点出发。将Linux的全部文件按照一定的用途归类,合理地挂载到这颗“大树”的“树枝”或“树叶”上,如图所示。而这些全不用考虑文件的实际存储位置,无论是存在硬盘上,还是在CD-ROM或USB存储器中,甚至是网络终端。
IP地址包括三部分:Internet网络号(Net-ID)、子网号(Subnet-ID)和主机号(Host-ID)
因而可以这样解释:一个IP地址唯一标识了,处在某个互联网中的,某个子网的,某个网络接口。
接入网络的计算机主机依靠IP地址,惟一地标识其在网络中的身份,因此为主机配置IP地址是接入网络的关键。
配置IP地址的方法有两种:
ifconfig命令
从下面的运行结果可以看出,主机有两个接口eth0、lo。lo代表主机本身,也称回送接口(Loopback),其IP地址约定为127.0.0.1。
动态IP的获取过程
执行过程中包括以下四个阶段。
最终客户端临时“租借”的IP地址为192.168.182.129。