马老师 Linux基础入门

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。

如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。因此,必须同时采用多条线路才能传送更多数据,而总线可同时传输的数据数就称为宽度(width),以比特为单位,总线宽度愈大,传输性能就愈佳。总线的带宽(即单位时间内可以传输的总数据数)为:总线带宽 = 频率 x 宽度(Bytes/sec)。

总线按功能和规范可分为五大类型:

  • 数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。
  • 地址总线(Address Bus):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
  • 控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为      USB Bus和1394 Bus。
  • 扩展总线(Expansion Bus):可连接扩展槽和电脑。
  • 局部总线(Local Bus):取代更高速数据传输的扩展总线。

3.0GHz,单位时间内的变化量,靠时间来驱动,时钟驱动。为了让时钟周期是一致的,主板或者各种芯片需要按照晶体振荡器下的某个固定频率下计算时间。

北桥芯片主要决定主板的规格、对硬件的支持、以及系统的性能,它连接着 CPU 、内存、 AGP 总线。主板支持什么 CPU ,支持 AGP 多少速的显卡,支持何种频率的内存,都是北桥芯片决定的。北桥对控制器和存储器之间(通过总线传递)速度不对等进行转换。

南桥芯片主要决定主板的功能,主板上的各种接口(如串口、 USB )、 PCI 总线(接驳电视卡、内猫、声卡等)、 IDE (接硬盘、光驱)、以及主板上的其他芯片(如集成声卡、集成 RAID 卡、集成网卡等),都归南桥芯片控制。低速串行设备将慢速设备接入南桥,然后整体接入北桥。

OS:

  • CPU时间分配
  • 内存管理
  • 进程管理
  • 安全功能
  • 驱动(操作系统级别)硬件

GUI:Graphic User Interface
CLI:Command line Interface

RHEL -> Centos
SUSE(OpenSuse)
Debian(二次发行版本Ubunto->Mint)
Slackware
Gentoo
LFS: Linux from Scratch
程序版本: Alpha内测版 Beta 公测版 RC Release Candidate候选发布版

发行版:
文件存放路径、名称、语法格式;
软件包管理有所不同;
默认工具有所不同;

linux各发行版本,如下图所示:

Linux基本法则:
1、一切皆文件;
2、体积短小且目的单一的程序;
3、组合小程序,完成复杂任务;
4、尽可能避免捕获用户接口;
5、所有配置数据都保存在文本文件;

控制台&终端区别

控制台console:信息直接输出,尚未启用操作系统本身来建立终端的时候,这时候的信息输出叫控制台。
终端:操作系统或内核已经掌握了信息控制权以后,所生成的输入输出接口的控制设备,才叫物理终端。
虚拟终端:是在个人电脑上虚拟的一个终端以及为此目的而写的软件
模拟终端:terminal OR 远程登录。

shell:工作环境。通过环境变量定义不同设置。
变量:内存空间,命名的内存空间。例如变量$SHELL。
命令:应用程序。内置Shell命令和Linux命令。内部命令(有shell程序自带的命令)和外部命令(在系统的某个路径下有一个与命令同名的可执行程序)之分。
type command:判断command命令是内置还是外置的。

Linux的man很强大,该手册分成很多section,使用man时可以指定不同的section来浏览,各个section意义如下:
1 - commands
2 - system calls
3 - library calls
4 - special files
5 - file formats and convertions
6 - games for linux
7 - macro packages and conventions
8 - system management commands
9 - 其他
解释一下,
1是普通的命令
2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3是库函数,如printf,fread
4是特殊文件,也就是/dev下的各种设备文件
5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8是系统管理用的命令,这些命令只能由root使用,如ifconfig
想要指定section就直接在man的后面加上数字,比如 :
man 1 ls
man 3 printf
等等
对于像open,kill这种既有命令,又有系统调用的来说,man open则显示的是open(1),也就是从最前面的section开始,如果想查看open系统调用的话,就得man 2 open

翻屏操作:
上一页:Space健
下一页:b健
上一行:Enter健
下一行:k健
退出:q健搜索:/keyword(从文件首部向尾部搜索) or ?keyword(从文件尾部向首部搜索)
(查看下一个keyword使用n健,查看上一个keyword使用N健)

info command:有超链接的文档

/usr/share/doc/APP_NAME-version 帮助文档
README, INSTALL

用户家目录
cd 或 cd ~回到家目录
cd ~username回到username的家目录

/ 根目录,路径分隔符
.abc .开头的为隐藏文件
高级格式化:申请一段区域,用于存放文件的索引,并且将整个磁盘划分为一个一个的固定大小的可存储数据的磁盘块过程。也称为创建文件系统的过程。将文件或者逻辑关系组织起来,用户视角的层次关系。

linux文件类型:

  • 1、普通文件 -, f
  • 2、目录文件 d
  • 3、链接文件(符号链接 l;硬链接 -)
  • 4、特殊文件(与硬件有关,作为硬件设备访问入口的文件) 1、块设备--随即存取,按块存取,比如硬盘 -b;2、字符设备--线性的,有前后顺序的,按字符逐个存取的设备,比如键盘、鼠标,早期的CRT -c。
  • 5、套接字文件Socket。套接字:建立Web服务,Web服务必须被动打开某个特定IP地址的某个端口上。像这种辅佐在某个IP地址上的某个端口上的被动打开的服务,称为套接字。因此套接字文件,就是在本机内部让两个进程之间互相通信的一种模拟,用软件的方式模拟出来的设备,或者模拟出来的管道 -s。
  • 6、命名管道文件pipe -p。

ls命令

  • -A 列出所有条目,除了 .(点)和 ..(点-点)。
  • -a 列出目录中所有项,包括以 .(点)开始的项。
  • -b 以八进制 ( nn) 表示法显示非打印字符。
  • -c 使用索引节点最近一次修改的时间,用以排序(当带 -t 标志使用时)或者用以显示(当带 -l 标志使用时)。该标志必须和 -t 或 -l 标志或者两者一起使用。
  • -C 以多列纵向排序输出。当往终端输出时,此为缺省方法。
  • -d 仅仅显示指定目录信息。目录和文件一样处理,这在当使用 -l 标志获取目录状态时非常有用。
  • -e 显示方式(包括安全信息)、链接数目、所有者、组、大小(按字节)、最近修改时间和每个文件名称。如果文件是特殊文件,大小字段包含主要和次要设备数目。 如果文件是符号链接,会打印所链接到的文件的路径名,其前有 ->(减号,大于号)符号。显示符号链接的属性。
  • -E 列出文件的保留空间、固定范围大小和范围分配标志信息。使用该标志时,必须指定 -l 标志。
  • -f 在每个存储槽中列出 Directory 参数指定的每个目录的名称。该标志关闭 -l、-t、 -s 和 -r 标志并且开启 -a 标志。列表的顺序就是项出现在目录中的顺序。
  • -F 如果文件是目录,在文件名后面放置一个 /(斜杠),如果文件可执行,则放置一个 *(星号),如果文件为套接字,则放置一个 =(等号),如果为 FIFO,则放置一个 |(管道)符号,如果是符号链接,则放置一个 @。
  • 注:只有在使用 -N 标志或者链接指向一个不存在的文件时,符号链接显示时才后跟 ->。否则,显示目标文件的有关信息。通过输入 ls -f 命令,也可以调用此选项。
  • -g 与使用 -l 标志时显示同样的信息,除了 -g 标志禁止显示所有者和符号链接信息。
  • -H 如果在命令行上指定了引用类型目录文件的符号链接,ls 命令将文件信息和文件类型估计为由链接引用的文件的信息和类型,而非链接本身;然而,ls 命令将写链接本身的名称,而非由链接引用的文件。
  • -i inode。显示每个文件报告第一列中的索引节点数目。
  • -L 列出链接引用的文件或目录内容。此为缺省操作。后跟符号链接。如果使用 -l 选项,-N 选项就成为缺省值,不后跟符号链接。当使用 -l 选项时,仅有 -L 选项能够覆盖 -N 缺省值。
  • -l (L 的小写)显示方式、链接数目、所有者、组、大小(按字节)和每个文件最近一次修改时间。如果文件是特殊文件,大小字段包含主要和次要设备数目。如果最近一 次修改时间大于六个月之前,时间字段以 月份 日期 年份 的格式显示,然而六个月内修改的文件以 月份 日期 时间 的格式显示。
  • 如果文件是符号链接,打印所链接到的文件的路径名,其前跟 ->。显示符号链接的属性。-n、-g、和 -o 标志覆盖 -l 标志。
  • -r 反转排序顺序,适当的按字母逆向排序或者首先排序最旧的文件。
  • -R 递归列出所有子目录。

文件类型-文件权限(3类用户的权限)   文件硬链接的个数   文件的属主  文件的属组   文件的大小    文件最近一次被修改的时间   文件名

FHS 文件系统层次标准 Filesystem Hierarchy Standard:

  • /bin: 二进制,为所有用户使用
  • /sbin: 二进制,为管理员使用
  • /boot: 内核,bootloader的存放位置。要想找到根,先找到boot
  • /dev: 设备文件的存放位置
  • /etc: 跟主机相关的配置文件
  • /home: 普通用户的家目录(可选的)
  • /lib: 基本共享库和内核模块
  • /media: 媒介 挂载点
  • /mnt: 临时文件系统 挂载点
  • /opt: 可选的软件安装路径
  • /root: 管理员的家目录
  • /srv: 服务运行的中间数据
  • /tmp: 临时文件,公共场所
  • /usr: 只读的,不允许随意改变的文件
  1. /usr/share平台独立的数据
  2. /usr/bin
  3. /usr/sbin
  4. /usr/lib
  5. /usr/include头文件的路径
  6. /usr/local/bin
  7. /usr/local/sbin
  8. /usr/src源程序
  • /var: 储存各种变化的文件
  1. /var/account: 进程审计的相关日志
  2. /var/cache: 缓存数据
  3. /var/log:日志文件
  4. /var/lib:变化的状态信息
  5. /var/run: 运行时变量数据,pid
  6. /var/spool: 应用程序的缓存数据,比如打印队列
  7. /var/lock: 锁文件。只要系统有争用,就用到此文件
  8. /var/mail:邮件
  • /proc: 内核信息,已经启动起来,位于内存中的内核信息。TCP/IP协议栈的实现
  • /sys: 内核信息,跟硬件设备相关的,比如磁盘

在操作系统上,软件有两类:

自身为了运行,自我启用起来用到的软件,与操作系统密切相关的。/bin,/sbin
系统启动后,为了系统运行基本使用,为了常见使用的软件。跟系统自身启动和运行无关,/usr/sbin,/usr/bin
为了搭建某些服务,额外需要的其他软件,第三方应用程序。/usr/local/sbin,/usr/local/bin

mkdir [-pv] dirName

  • -m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask。 如mkdir -m 777 test3
  • -p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
  • -v 每次创建新目录都显示信息

bash {} 路径展开。 mkdir/tmp/{p,q}_{a, b}/s

rmdir [-p] dirName  用来删除空的目录

tree 显示目录树

cp [-abdfilpPrRsuvx][-S <备份字尾字符串>][-V <备份方式>][--help][--spares=<使用时机>][--version][源文件或目录][目标文件或目录] [目的目录]
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

  • cp /etc/passwd /tmp/abc 将/etc/passwd复制到tmp目录下并命名为abc
  • -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间,只有管理员才有权限,普通用户无权限
  • -a 或 --archive 此参数的效果和同时指定'-dpr'参数相同。归档处理
  • -d或--no-dereference  当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录

mv [options] 源文件或目录 目标文件或目录。为文件或目录改名或将文件由一个目录移入另一个目录中

  • -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。
  • -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
  • $ mv test.txt wbk.txt重命名文件test.txt为wbk.txt

rm [options] name 删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

  • - f 忽略不存在的文件,从不给出提示。
  • - r 指示rm将参数中列出的全部目录和子目录均递归地删除。
  • - i 进行交互式删除。

touch [选项]... 文件... 修改文件时间戳,或者新建一个不存在的文件

  • -a  只更改存取时间
  • -m   或--time=mtime或--time=modify  只更改变动时间
  • -t  使用指定的日期时间,而非现在的时间。如修改只读时间 touch -a -t 198001011010.10 test
  • -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
  • -c  如果文件不存在,不创建它

三个时间:

  • 最近一次的访问时间
  • 最近一次的修改时间:modify,文件内容的改变
  • 最近一次的改变时间:change,文件元数据的改变

文件数据:

  • 数据
  • 元数据(权限,三个时间戳,属主,属组,文件名称,结点号)

nano 文件名
Nano是一种单模式编辑器,你可以直接输入文字。如果你要编辑一个像/etc/fstab一样的配置文件,请使用-w参数,如nano -w /etc/fstab

file FILE: 用于显示文件内容的类型

cat主要有三大功能:
1.一次显示整个文件。$ cat filename
2.从键盘创建一个文件。$ cat > filename  
   只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file
参数:
  • -n 或 --number 由 1 开始对所有输出的行数编号
  • -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
  • -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -v 或 --show-nonprinting
  • -E, --show-ends 在每行结束处显示 $
例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

  • 显示文件中从第3行起的内容: more +3 log2012.log
  • 从文件中查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出: more +/day3 log2012.log
  • 设定每屏显示行数: more -5 log2012.log
  • 列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来: ls -l  | more -5

head 默认显示开头前10行
显示开头前k行 head -k /etc/passwd(最常见用法) ;head -n k /etc/passwd; head -n +k /etc/passwd
tail 默认显示最后10 行
参数-f使tail不停地去读最新的内容,因此有实时监视的效果,用Ctrl+c来终止。
tail -f /var/log/messages

sed [-nefri] ‘command’ 输入文本 
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作

cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file]
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出
主要参数

  • -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
  • -c :以字符为单位进行分割。
  • -d :自定义分隔符,默认为制表符。cat /etc/passwd|head -n 5|cut -d : -f 1 或cut -d ' ' -f 2 /etc/www.log
  • -f  :与-d一起使用,指定显示哪个区域。
  • -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。

tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file

  • -c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
  • -d 删除字符串1中所有输入字符。
  • -s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符

  1. 大写到小写: cat a.txt |tr "[a-z]" "[A-Z]" >b.txt
  2. 去除oops.txt里面的重复的小写字符: tr -s "[a-z]"<oops.txt >result.txt
  3. 删除空行: tr -s "[12]" < plan.txt 或 tr -s [" "] < plan.txt
  4. 有时需要删除文件中的^M,并代之以换行: tr -s "[15]" "[ ]" < file 或 tr -s "[ ]" "[ ]" < file

wc [选项]文件, wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出

  • -c 统计字节数。
  • -l 统计行数。统计当前目录下的文件数:ls -l | wc -l
  • -m 统计字符数。这个标志不能与 -c 标志一起使用。
  • -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
  • -L 打印最长行的长度。
  • -help 显示帮助信息
  • --version 显示版本信息

sort [选项] 文件
sort命令排列文本行,并把文件打印输出到屏幕上

  • -A 使用 ASCII 整理顺序代替当前语言环境的整理顺序在逐字节的基础上排序。
  • -b 忽略前导空格和制表符,找出字段的第一或最后列。
  • -c 检查输入是否已按照标志中指定的排序规则进行排序。如果输入文件排序不正确,就返回一个非零值。
  • -d 使用字典顺序排序。比较中仅考虑字母、数字和空格。
  • -f 比较前将所有小写字母改成大写字母。
  • -i 比较中忽略所有非显示字符。
  • -k KeyDefinition 指定排序关键字。KeyDefinition 选项的格式为:[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ],排序关键字包括所以 FStart 变量指定的字段和 CStart 变量指定的列开头的字符及以 FEnd 变量指定的字段和。CEnd 变量指定的列结束的字符。Modifier 变量的值可以是 b、d、f、i、n 或 r。修饰符与同一字母的标志等价。
  • -m 只合并多个输入文件;假设输入文件已经排序。
  • -n 按算术值对数字字段排序。数字字段可包含前导空格、可选减号、十进制数字、千分位分隔符和可选基数符。
  • 对包含任何非数字字符的字段进行数字排序会出现无法预知的结果。
  • -o OutFile 将输出指向 OutFile 参数指定的文件,而不是标准输出。OutFile 参数值可以与 File 参数值相同。
  • -r 颠倒指定排序的顺序。
  • -t Character 指定 Character 为单一的字段分隔符。
  • -u 禁止按照排序关键字和选项的所有等同排序(每一组行中一行除外)。
  • -T Directory 将创建的所有临时文件放入 Directory 参数指定的目录中。
  • -y[Kilobytes] 用 Kilobytes 参数指定的主存储的千字节数启动 sort 命令,并根据需要增加存储量。(如果  Kilobytes 参数指定的值小于最小存储站点或大于最大存储站点,就以这个最小存储站点或最大存储站点取代)。如果省略 -y 标志,sort 命令以缺省的存储大小启动。
  • -y0 标志用最小存储启动,而 -y 标志(不带 Kilobytes 值)用最大存储启动。sort 命令使用的存储量显著地影响性能。
  • 以大存储量对小文件排序将很浪费。
  • -z RecordSize 如果正在排序的任一行大于缺省的缓冲区大小,要防止出现异常终止。
  • 指定 -c 或 -m 标志时,省略排序阶段,使用系统的缺省缓冲大小。如果已排序行超出这一大小,排序异常终止。
  • -z 选项指定排序阶段最长行的记录,因而可在合并阶段分配足够的缓冲区。
  • RecordSize 必须指明等于或大于要合并的最长行的字节值。
  1. *指定分隔字段的字符为':',然后按第2个关键字进行排序:   sort -t: -k 2 forsort1
  2. 先根据第3字段排序,相等再根据第4列排序/etc/passwd:   sort -t: -k3 -k4 -n /etc/passwd
  3. 对第2个字段按照数字的值进行排序:  $sort -t: -k2 -n forsort1

命令行编辑

  • Ctrl+a 移动到当前行的开头
  • Ctrl+e 移动到当前行的结尾
  • Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身)
  • Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身)
  • Ctrl+l,命令:clear,DOS下cls
  • Ctrl+c,取消不执行

命令hashing

为了提高在PATH路径中查询命令的速度,Linux采用了命令hashing的方式。当shell在PATH中找到一个命令时,将这个命令放入哈希表。当再次使用命令时,将先在哈希表中进行查询,可以用hash 命令来查看当前的哈希表,里面不仅包括命令的完整路径,还包括在本次login中使用的次数。可以用hash -r 来清除整个哈希表,用-d 来删除某个命令,用-p 来加入某个命令(即使这个命令不存在)。在环境中可以通过hashall 的set来设置on或者off,但是我们没有必要去修改它。$HISTSIZE显示保存的历史命令。$HISTFILE为历史命令文件。$HISTFILESIZE显示$HISTFILE保存多少条命令。

指令名称:hash - 显示与清除 hash table (bash shell 内建指令)
语法:hash [-lr] [-p filename] [-dt] [name]
说明:hash table 是 shell 在解译命令时,首先寻找的对象。当指令不存在 hash table,shell 才会利用 path设定的路径去寻找命令,然后加以执行。同时也会将之放进 hash table。当下一次要执行同名命令时,不用重新透过 path 找寻。shell藉此提高命令的执行效率。
内建指令 hash 目前支援有限,可以用来看 hash table 的内容以及简单的清除管理。对一般使用者而言理解这个观念即可。
选项:

  • -l显示记忆的命令
  • -r清除记忆的命令
  • -p filename将 filename 加入 hash table。

filename 需為完整路径的命令。(这个选项bash 2.0仍未完整支援)-d name清除 name 在 hash table 的纪录。-t name显示 name 的完整路径

!+n 执行最近一次执行和n有关系的命令
!! 执行最近一次执行
!ehco 执行最近一次echo开头的命令

调用上一条命令的最后一条参数
比如上一条命令是 cat /etc/sysconfig/network-scripts/ifcfg-eth0
要想此时输出less /etc/sysconfig/network-scripts/ifcfg-eth0
输出less加空格,然后按住Esc键,然后再暗点就可以输出/etc/sysconfig/network-scripts/ifcfg-eth0或者 less !$也可以

环境变量:
HISTSIZE,HISTFILE,HISTFILESIZE
HISTCONTROL
    ignorespace 以空格开始的命令不予记录
    erasedups 消除整个命令历史中的重复命令

History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令

  • n   :数字,要列出最近的 n 笔命令列表
  • -c  :将目前的shell中的所有 history 内容全部消除
  • -a  :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles ,则预设写入 ~/.bash_history
  • -r  :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
  • -w  :将目前的 history 记忆内容写入 histfiles。保存缓存中的命令道历史文件。
  • -d offset n。比如-d 16删除第16条。-d 16 3,从16条开始删3条。

文件名通配 glob
   特殊字符,无字符,不表示字符的表面意思,而是能匹配符合置顶特征的字符串
   *:任意长度的任意字符
   ?: 任意单个字符
   []: 匹配指定范围内的任意单个字符。a[axy]b匹配aab, axb, ayb
       [[:alpha:]] = [a-zA-Z]
       [[:digit:]] = [0-9]
       [[:lower:]] = [a-z]
       [[:upper:]] = [A-Z]
       [[:alnum:]] = [a-zA-Z0-9]
       [[:punct:]] = [标点符号]
       [[:print:]] = [打印字符]
       [^a-z] 指定范围之外的任意单个字符。[^a-z] = [^[:lower:]]

已阅完第三十六课

原文地址:https://www.cnblogs.com/zl0372/p/linux.html