Linux 学习的一些总结
目录结构图

预先定义变量
$#:表示命令行上的参数个数
$?:表示上一条命令执行后端返回值( 0为执行成功,非0为执行失败 )
$$:表示当前进程进程号
$!:表示后台命令对应的进程号
$-:表示由当前shell设置的执行标志名著称的字符串
$*:表示命令行给出的实参字符串
$@:与$*类似,但是可以通过for将程序给的实参进行依次输出,$*不能单独输出每个实参,只能整块输出
Shell 常用通配符
| 字符 | 含义 |
|---|---|
* |
匹配 0 或多个字符 |
? |
匹配任意一个字符 |
[list] |
匹配 list 中的任意单一字符 |
[^list] |
匹配 除 list 中的任意单一字符以外的字符 |
[c1-c2] |
匹配 c1-c2 中的任意单一字符 如:[0-9][a-z] |
{string1,string2,...} |
匹配 string1 或 string2 (或更多)其一字符串 |
{c1..c2} |
匹配 c1-c2 中全部字符 如{1…10} |
一些概念

由单引号括起来的字符都作为普通字符出现
使用rm指令删除文件后不可恢复
mv可以给程序进行改名
Linux系统的开发模型是集市模型
Linux系统中,用户文件描述符 0 表示标准输入设备文件描述符
使用不带参数的cd会跳转到当前用户的主目录
用户关键信息存放于/etc/shadow中,存放用户账号的文件passwd,外部设备文件存放于/dev
硬盘分区表示:/hda1——第一块硬盘的第一个分区、/hdb2——第二块硬盘的第二个分区
当一个目录作为一个挂载点被使用后,该目录上的文件被隐藏,待挂载设备卸载后恢复
ifconfig可以修改网卡IP分配地址和子网掩码
Linux系统进程类型:交互进程、批处理进程、守护进程
更改文件拥有者:chown
Linux第一个版本号:0.01
vim编辑器共有 3 种模式
Linux默认分区:EXT3 ———— 通过VFS来支持多种不同的文件系统
Linux进程信息存放于/proc
Linux系统通过write给其他用户发消息
Linux父子进程之间通讯可以采用:通过信号量进行通讯、通过共享内存进行通讯、通过数据库进行通讯
Linux系统内核由:内存管理器、进程管理器、设备驱动程序、虚拟文件系统(VFS)、和网络管理组成,系统一般由:内核、shell、文件系统和应用程序
前台启动的进程可以使用Ctrl + C 终止
进程运行方式:独立运行、使用父进程运行
Linux中红色文件一般是压缩文件,蓝色为文件夹,白色为普通文件
Linux文件类型:普通文件、设备文件、符号链接文件、管道文件
Linux每个进程都有4GB的虚拟空间,其中内核空间占用3GB ~ 4GB
显示已经挂载的文件系统磁盘inode使用状况df -i
一个bash脚本的第一行是#!/bin/bash
Linux基本命令存放在/bin目录
打印机、终端 ———— 字符设备(I/O设备)
字符设备(Character device):这是一个顺序的数据流设备,对这种设备的读写是按字符进行的,而且这些字符是连续地形成一个数据流。他不具备缓冲区,所以对这种设备的读写是实时的,如终端、磁带机等。
硬盘 ———— 块设备(可以随机读写)
块设备是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或从设备中一次性读出放入到缓冲区,如磁盘和文件系统等
假设有文件fileA的对应符号链接(软链接)为fileB,删除fileA后fileB仍然存在,但是属于无效文件
简单记忆硬链接与软链接
硬链接
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能
类似于复制粘贴文件到了另一个地方,当所有文件被删除时文件才是真正被删除完毕
软连接
在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息
类似于快捷方式,当源文件不存在时,该软连接文件也失效了,但是仍然存在,属于无效文件
NFS是网络文件系统
Linux可以与其他操作系统共存于一个机器上
df:统计磁盘空间或者是文件系统使用情况
du:显示文件目录大小
tar不是压缩指令(文件归档)
在创建文件时,umask设置的值为XXX,则对应文件的权限为666 - XXX,如果创建的是文件夹,那么对应的权限为777 - XXX
运行一个脚本,用户不需要write权限
Linux系统7个运行级别
0:关机,停机模式、1:单用户模式、2:多用户模式、3:完整的多用户文本模式、4:系统未使用,保留一般不用、5:图形化模式、6:重启模式
0: 系统停机(关机)模式,系统默认运行级别不能设置为0,否则不能正常启动,一开机就自动关机。
1:单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2:多用户模式,没有NFS网络支持。
3:完整的多用户文本模式,有NFS,登陆后进入控制台命令行模式。
4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5:图形化模式,登陆后进入图形GUI模式或GNOME、KDE图形化界面,如X Window系统。
6:重启模式,默认运行级别不能设为6,否则不能正常启动,就会一直开机重启开机重启。
一些命令
shutdown:-h——关机、-r——重启
kill all:终止一个用户的所有进程
mkdir:当父目录不存在时先创建父目录可以-p
${name#pattern}和${name##pattern}:
如果pattern(shell模式)与name值的开头匹配,那么把name值去掉匹配部分后的结果就是该表达式的值,否则name的值就是该表达式的值。
其中${name#pattern},name值去掉的部分是与pattern匹配最少的部分; ${name##pattern},name值去掉的部分是与pattern匹配最多的部分
${name%pattern}和${name%%pattern}:
如果pattern(shell模式)与name值的末尾匹配,那么把name值去掉匹配部分后的结果就是该表达式的值,否则name的值就是该表达式的值。
其中${name%pattern},name值去掉的部分是与pattern匹配最少的部分; ${name%%pattern},name值去掉的部分是与pattern匹配最多的部分
ls -all不是列出当前目录中的文件和子目录名,而是列出当前目录下所有文件的详细信息
字符界面可以使用exit或者是Ctrl + D来注销Linux
vi/vim中使用 . 重复上一次对编辑文本进行的操作
Linux下实现热启,应修改/etc/inittab下的ca::ctrlaltdel:/sbin/shutdown -t3 -r now
关闭Linux但不重新启动使用halt命令
top命令可以实时地显示进程状态信息
shell编程
read是赋值给变量,变量首字母不能为数字
不换行输出echo -n "XXX"
shell有两种环境变量:局部变量和环境变量