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
有两种环境变量:局部变量和环境变量