写在前面
- 嗯,来这边实训,青软的孔老师给装了一个有Linux系统的虚拟机,讲了一些Linux的常识,决定去看这本书,了解一些Linux的知识 . 加油生活^_^,嗯,希望以后的生活不会枯燥哎!!摘条王小波的句子 :)
- 这本书看了一小点,就没有在看了,所以笔记烂尾了,感觉有些重,写的比较全面,不适合短期内快速学习,如果时间允许可以看这个。
- 关于 LINUX ,小伙伴可以移步到我的其他博客笔记。在更新中,适合温习,都是些最基础的知识点。相应的电子档资源都有
《Linux命令行与shell脚本编程大全(第3版)》读书笔记
《Linux就该这么学》读书笔记
关于 Linux中逻辑卷/物理分区等知识的一些总结
Docker(Podman) 容器学习笔记
Ansible(自动化运维工具)知识梳理
Nginx 学习笔记(《深入理解Nginx:模块开发与架构解析》读书笔记)
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波
查看配置文件过滤空行和注释
grep -v ^# /etc/sudoers | grep -v ^$
1)项目报错,Tomcat查看错误日志,
一、tail命令语法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
参数解释:
- -f 该参数用于监视File文件增长。
- -c Number 从 Number 字节位置读取指定文件
- -n Number 从 Number 行位置读取指定文件。
- -m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
- -b Number 从 Number 表示的512字节块位置读取指定文件。
- -k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。
tail可运行文件一般在/usr/bin/以下。
2)Linux下更改主机名:
hostname
vim /etc/sysconfig/network
3)linux BASH shell下设置字体及背景颜色:
#设置字符和背景色
echo -e "\e[31mtest\e[41m"
\e[40m #\e[47m 设置背景色
linux BASH shell下设置字体及背景颜色 - 琴酒网络 - 博客园
4)可以把shell和bash讲的我能理解的一个博客:
什么是shell? bash和shell有什么关系? - 代码ok - 博客园
5)正则表达式搜索文本
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep match_pattern file_name
grep "match_pattern" file_name
grep "match_pattern" file_1 file_2 file_3 ...
6)创建一个用户
linux 新建用户、用户组 以及为新用户分配权限 - 信则成 - 博客园
7)vim 文件保存退出 文件相关操作汇总
vim 文件保存退出 文件相关操作汇总_maggie_lu-CSDN博客
8)ping: www.baidu.com: 未知的名称或服务问题解决:
kali linux解决:ping: www.baidu.com: 未知的名称或服务(亲测有效)(走了两个弯路,浪费了好多时间)_HWP-CSDN博客_ping: www.baidu.com: 未知的名称或服务
第0章:
- 1,计算机的定义,接收用户的输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后,产生或存储成有用的信息。
- 2,计算机的五大单元包括:输入单元,输出单元,控制单元,算数逻辑单元,记忆单元五大部分,其中CUP占有控制,算数逻辑单元,记忆单元包括主存储器,与辅助内存。
- 3,数据会流进流出内存是CPU所发布的控制命令,而CPU实际要处理的数据完全来自主存储器。
- 4,CUP的设计理念主要包括精简指令集(RISC)和复杂指令集(CISC)系统。
- 5,关于CPU的频率部分,外频是CUP与外部组件传输时的速度,倍频则是CPU内部用来加速工作效率的一个倍数,两者相乘才是CUP的频率的速度。
- 6,新的CUP设计中已经将北桥的内存控制芯片整合到CPU内部,而CUP与主存储器,显示适配器沟通的总线成为系统总线,南桥指输入输出总线,主要在联系硬盘,USB,网络卡等接口设备。
- 7,CUP每次能够处理的数据量称为字组大小(word size),字组大小依据CUP的设计有32位和64位,我们现在使用的计算机称32,64位就是指CUP解析的字组大小。
- 8,个人计算机的主存储器主要组件有动态随机存取内存(Dynamic Random Access Memory,DRAM),CUP内部的第二层快取称为静态随机存取内存(Static Random Access Memory,SRAM),
- 9,BIOS(Basic Input Output System)是一套写死在主板上的一个内存芯片中的程序,这个内存芯片在没有通电的情况下也能够将数据记录下来,即只读存储器(Read Only Memory,ROM).
- 10,目前主流的显卡大多为PCIe界面。
- 11,传统的硬盘组成为:圆形磁盘盘,机械手臂,磁盘读取头与主轴马达多组成,其中磁盘组成为扇区,磁道,与磁柱。
- 12,磁盘连接到主板的界面大多为SATA或SAS。
- 13,操作系统(Operting System,OS) 其实为一组程序,用于管理计算机的所有活动以及驱动系统中的所有硬件。
第一章,Linux如何学习
第二章,主机规划与磁盘分区第三章、安装 CentOS7.x 第四章,首次登陆与在线求助- 1,为了避免瞬间断电造成的Linux危害,建议做为服务器的Linux主机应该加上不断电的系统来维持提供稳定的电力,
- 2,养成良好的习惯,尽量不适用root直接登陆系统,应使用一般账户登陆系统,有需要在转换身份。
- 3,可以通过活动总览查看系统所有的软件及快速启动惯用软件,
- 4,在X的环境下,想要“强制"重新启动X的组合键,alt+ctrl+backspace;
- 5,预设情况下,Linux提供tty1~tty6的终端机界面。:切换方法为:Crtl+Atl+F1~F6;
- 6, 在终端机环境中,可以依据提示字符串为$或者#判断为一般账户还是root账户。
- 7,取得终端机支持的语系数据可以下达{echo$LANG}或{locale}指令。
- 8,date可以显示日期,cal可以显示日历,bc可以作为计算机。
- 9,组合按键中,tab键可以作为:命令补齐,或者文件名补齐,参数选项补齐,crtl+c可以终断正在运行中的程序。
- 10,Linux区分大小写。
- 11,联机帮助系统有man和info两种常见的指令。
- 12,man page说明后面的数字中,1代表账号的可用指令,8 代表系统管理员常用的指令,5,代表 系统可用的格式。
- 13,info page可将一份说明文件拆成多个节点显示,并具有类似超链接的功能。增加易读性。
- 14,系统需要正确的关机。可使用shutdown,poweroff等。
- 1,Linux的每个文件中,可可分别给予使用者,群组,与其他人三种方式的rwx的权限。
- 2,群组最有用的功能之一,就是当你的团队开发资源的时候,每个账户都可以有多个群组支持。
- 3,利用ls -l显示的文件属性中,第一个字段是文件的权限,共有十位,
- 第一位是文件类型,:d:目录,-:文件,I:连接档,b:接口设备。c:串行端口设备。
- 接下来三个为一组,分为使用者,群组,其他人权限,权限有rwx三种,:可读可写可执行
- 4,更改文件的群组支持为chgrp,要被改变的组名必须要在/etc/group 文件内存在才 行,否则就会显示错误!
修改文件的拥有者为chown,更改一个文件的拥有者与群组,使用什么指令。chown chgrp
修改文件的权限用chmod。
- 5,chmod修改权限的方式有两种,符号法和数字法,数字法中rwx分数为421;当一个文件的修改权限为 -rwx-xr--指令:chmod 754 文件名 或者chmod u=rwx,g=rx,o=r 文件名 ,
- 6,对文件来讲,权限的效能为:
- 1,r,可读此文件的实际内容,如读取文本文件的文字内容等。
- 2,w,可以编辑,新增或者修改该文件的内容(不能删除)
- 3,x,该文件具有可以被系统执行的权利。
- 7,对目录来说,权限的效能为:
- r:read contents in directory
- w:modify contents directory
- x:accessdirectory
- 8,要开放目录给任何人浏览,应该至少也要给予r及x的权限,但w的权限不可随便给。
- 9,能否读取到某个文件内容,跟该文件所在的目录权限有关系,目录至少需要x的权限。
- 10,Linux档名的限制,单一文件或目录最大容许的文件名为255个英文字符或者128 个汉字字符。
- 11,绝对路径文件名为从根目录/开始写起,否者都为相对路径。
- /etc/:几乎系统所有的配置文件案都在这里,尤其是passwd和shaow
- /boot/:开机配置文件。也是预设摆放核心vmlinuz的地方。
- /usr/bin,/bin:一般执行档摆放的地方。
- /var/log:摆放系统注册表文件的地方法
- /dev:摆放所有系统装置文件的目录
- /use/sbin,/sbin:系统管理员常用的指令集
- /run:将经常变动的项目移动到内存暂存,
文档名有【.】开头表示为隐藏文档,需要使用ls-a这个-a选项才可以显示出隐藏文档的内容,而使用ls -al才能显示出属性。
第六章,Linux文件与目录管理1,绝对路径:由根目录写起,相对路径相对当前路径写起。
2,与目录有关的指令为:cd mkdir,rmdir ,pwd 等:
3,rmdir只能删除空目录,要删除非空目录需要使用00“rm -r”指令;
4,用户能使用的指令是依据PATH变量所规定的目录去搜索的
5,ls可以检视文件的属性,尤其-d,-a,-l等。
6,文件的复制,删除,移动可以分别使用:cp, rm,mv等操作。
7,检查文件的内容(读文件)可使用的指令包括cat,tac,nl,more,less,head,tail,od等。
8,cat -n 与 nl均可显示行号,但默认情况下,空白行会不会编号不清楚,
chattr可以配置文件的隐藏属性。
观察文件隐藏属性 file
9,touch的目的在修改文件的时间参数,但亦可用来建立空文件;
10.一个文件记录时间的参数有三种,分别是access time(atime) ,status time(ctime),modification time(mtime), ls默认显示的是mtime。
11,指令与文件的搜寻:which寻找执行文件,
12,文件名的搜寻
find
第七章,Linux磁盘与文件管理系统1,压缩指令为透过一些运算方法去将原来的文本进行压缩,以减少文件所占用的磁盘容量。压缩前与压缩后的文件所占用的磁盘容量比值,就可以被称为“压缩比”。
2,压缩的好处是可以减少磁盘容量的浪费,
3,压缩文件案的扩展名大多是{.gz,.bz2,.xz,.tar,.tar.gz,.tar}
4,, 常见的压缩指令有:gzip bzip2,xz 压缩最好的为xz 若可以不计时间成本建议使用xz进行压缩。
5, tar 可以进行文件打包,并可以支持gzip,bzip2,xz的压缩。
6,压缩:tar -Jcv -f filename.tar.xz 要被压缩的文件或目录的名称。
7,查询:tar -Jtv -f filename.tar.xz
8,解压缩:tar -Jxv -f filename.tar.xz -C 要解压缩的目录
9.1 vi与vim
Linux底下的配置文件多为文本文件,故用vim即可以进行设定编辑,vim 可视为程序编辑器,可以编辑 shell script配置文件等,避免打错字。
9.2 vi的使用:
vi 为所有的unixlike的操作系统都会存在的编辑器,且执行速度快。vi有三种模式,一般指令模式可变换到编辑模式与指令列命令模式,但编辑模式和指令列之不能互换。
基本上vi共分为三种模式,分别是「一般指令模式」、「编辑模式」与「指令列命令模式」。这三种模式的作用分别是:
- 一般指令模式(command mode):
- 编辑模式(insert mode):
- 指令列命令模式(command-line mode):
常用的按键有:
- i : 进入编辑模式,
- [:] : 进入到指令列命令模式,
- [ESC] : 退出编辑模式或指令列命令模式到一般指令模式,
- :wq :存档退出指令列命令模式。
vi的画面分为两部分,上半部分文本 和最后一行的状态加指令列模式。
数字的意义,用来说明进行几次的动作的意思,如5yy为复制五列的意思。
用vi开启某个文件,要在第34 列向右移动15 个字符,应该在一般指令模式中下达指令为:34G >>15+||15l。
8,光标的移动中,大写的G经常使用,1G、G为移动到文章的头尾的功能移动到当前行头用0,移动到行尾用$.
9,vi的取代功能,:n1,n2s/old/new/g _
10,小数点【.】为重复进行前一次的动作 ,
11,进入到编辑模式要记住 ioR,和新增一列的o与取得的r,
在vi环境一般指令模式下,将正在编辑的文件另存为新档名为 :w newfilename
在vi环境一般指令模式下,复制一列,n列并粘贴:分别为yy,nyy,p或者P
在vi环境一般指模式下,搜所字符串 ?字符串 或者/字符串
取代字符串::1,$/原字符串/新字符串/g 或者
在vi中做了很多的编辑动作,却想还原为原来的文件内容,使用 :【:e!】
12,vim会主动的建立swap暂存档,所以不能随便断线。
13,如果在文章内有对齐的区块,可以使用ctrl+v进行复制。粘上,删除的行为。
14,使用:sq功能可以分区窗口。
15,若使用vim来写网页,若需要css元素,可以使用crtl+x ,crtl+o来取得关键词。
16,vim的环境设定可以写入在~/.vimrc文件中。
17,可以使用iconv进行文件语系编码的转换。
18,使用dosunix和unix2dos可以变更没一列的行尾断字符。
1,由于核心在内存是受到保护的块区,因此必须要透过shell将我们输入的指令与Kernet沟通,好让Kernet可以控制硬件类正确无误的工作。
2,学习shell的主要原因:文字接口的shell在各大distribution都一样,远程管理文字时接口速度更快。
- 每一种 Shell 都各有其特点。至于 Linux 使 用的这一种版本就称为『 Bourne Again SHell (简称 bash) 』,这个 Shell 是 Bourne Shell 的增强版 本,也是基准于 GNU 的架构下发展出来的呦
3,系统合法的shell均写在 :/etc/shells文件中。
4,用户默认登录取得shell记录与/etc/passwd 的最后一个字段。
cat /ect/passwd
5,bash的功能主要有:
- 命令编修能力(他能记忆使用过的指令!)。
- 命令与文件补全功能,
- [Tab] 接在一串指令的第一个字的后面,则为命令补全;
- [Tab] 接在一串指令的第二个字以后时,则为『文件补齐』!
- 若安装 bash-completion 软件,则在某些指令后面使用 [tab] 按键时,可以进行『选项/参数的补齐』功能!
- 命令别名设定功能,
alias lm='ls -al'
6,type可以找到用来执行指令为何种类型,即查询指令是否为 Bash shell 的内建命令: type 亦可用于which相同的功能。
type [-tpa] name
选项与参数:
:不加任何选项与参数时,type 会显示出 name 是外部指令还是 bash 内建指令
-t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义:
file :表示为外部指令;
alias :表示该指令为命令别名所设定的名称;
builtin :表示该指令为 bash 内建的指令功能;
-p :如果后面接的 name 为外部指令时,才会显示完整文件名;
-a :会由 PATH 变量定义的路径中,将所有含 name 的指令都列出来,包含 alias
- 指令太长, 利用『 \[Enter] 』来将 [Enter] 这个按键『跳脱!
- [ctrl]+u/[ctrl]+k ,分别是从光标处向前删除指令串 ([ctrl]+u) 及向后删除指令串 ([ctrl]+k)。
- [ctrl]+a/[ctrl]+e ,分别是让光标移动到整个指令串的最前面 ([ctrl]+a) 或最后面 ([ctrl]+e)。
7,变量就是由文字或者符号组成,用来取代一些设定或者一串保留的数据。
- echo 这个指令来取用变量,变量在被取用时,前面 必须要加上钱字号『 $ 』才行,
- 变量与变量内容以一个等号『=』来连结, 等号两边不能直接接空格符
- 变量名称只能是英文字母与数字,但是开头字符不能是数字,
- 若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如下所示:
echo ${PATH}
echo $PATH
#
PATH=$PATH:/home/dmtsai/bin
PATH=${PATH}:/home/dmtsai/bin
PATH="$PATH":/home/dmtsai/bin
#
8,变量主要有环境变量和自定义变量,
- .使用env和export可以观察环境变量,其中exprot可以将自定义变量转换为环境变量。
- set可以观察到目前的bash环境下的所有变量。
11,$?表示前一个指令执行完毕后回传的值。在linux回传值为0代表执行成功。
12,locale 可用于观察语系资料。
#默认语系
cat /etc/locale.conf
#修改语系
LANG=en_US.utf8; locale
export LC_ALL=en_US.utf8; locale
13,可用read让用户由键盘输入变量的值。
read [-pt] variable
#选项与参数: -p :后面可以接提示字符! -t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!
#范例一:让用户由键盘输入一内容,将该内容变成名为 atest 的变量
read atest This is a test <==此时光标会等待你输入!请输入左侧文字看看
echo ${atest} This is a test <==你刚刚输入的数据已经变成一个变量内容!
#范例二:提示使用者 30 秒内输入自己的大名,将该输入字符串作为名为 named 的变量内容
read -p "Please keyin your name: " -t 30 named Please keyin your name: VBird Tsai <==注意看,会有提示字符喔!
echo ${named} VBird Tsai <==输入的数据又变成一个变量的内容了!
declare 宣告变量类型:
declare [-aixr] variable
#选项与参数: -a :将后面名为 variable 的变量定义成为数组 (array) 类型
# -i :将后面名为 variable 的变量定义成为整数数字 (integer) 类型
# -x :用法与 export 一样,就是将后面的 variable 变成环境变量;
# -r :将变量设定成为 readonly 类型,该变量不可被更改内容,也不能 unset
#范例一:让变量 sum 进行 100+300+50 的加总结果
sum=100+300+50
echo ${sum} 100+300+50 <==咦!怎么没有帮我计算加总?因为这是文字型态的变量属性啊!
declare -i sum=100+300+50
[root@liruilong ~] declare -i sum=12+34+34
[root@liruilong ~] echo ${sum}
80
2)ulimit可用以限制用户使用系统的资源情况
[dmtsai@study ~]$ ulimit [-SHacdfltu] [配额]
#选项与参数: -H :hard limit ,严格的设定,必定不能超过这个设定的数值;
# -S :soft limit ,警告的设定,可以超过这个设定值,但是若超过则有警告讯息。 在设定上,通常 soft 会比 hard 小,举例来说,soft 可设定为 80 而 hard 设定为 100,那么你可以使用到 90 (因为没有超过 100),但介于 80~100 之间时, 系统会有警告讯息通知你!
# -a :后面不接任何选项与参数,可列出所有的限制额度;
# -c :当某些程序发生错误时,系统可能会将该程序在内存中的信息写成文件(除错用), 这种文件就被称为核心文件(core file)。此为限制每个核心文件的最大容量。
# -f :此 shell 可以建立的最大文件容量(一般可能设定为 2GB)单位为 Kbytes
# -d :程序可使用的最大断裂内存(segment)容量;
# -l :可用于锁定 (lock) 的内存量
# -t :可使用的最大 CPU 时间 (单位为秒) -u :单一用户可以使用的最大程序(process)数量。
#范例一:列出你目前身份(假设为一般账号)的所有限制数据数值
[dmtsai@study ~]$ ulimit -a
[root@liruilong ~]22 ulimit -f 10240
[root@liruilong ~]24 ulimit -a | grep 'file size'
core file size (blocks, -c) 0
file size (blocks, -f) 10240
3)变量内容的删除、取代与替换 (Optional)
4)命令别名与历史命令:
[Demo_Li@liruilong home]$alias lm='ls -al|more'
[Demo_Li@liruilong home]$lm
total 16
drwxr-xr-x. 4 root root 4096 Jul 17 18:57 .
dr-xr-xr-x. 22 root root 4096 Jul 17 16:41 ..
drwxrwxrwx. 4 Demo_Li Demo_Li 4096 Jul 17 18:57 Demo_Li
drwx------. 25 itcast itcast 4096 Oct 22 2017 itcast
[Demo_Li@liruilong home]$unalias lm
[Demo_Li@liruilong home]$history
# n :数字,意思是『要列出最近的 n 笔命令行表』的意思!
-c :将目前的 shell 中的所有 history 内容全部消除
# -a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles , 则预设写入 ~/.bash_history
# -r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
# -w :将目前的 history 记忆内容写入 histfiles 中!
5)执行历史命令:
[dmtsai@study ~]$ !number
[dmtsai@study ~]$ !command
[dmtsai@study ~]$ !!
#选项与参数:
# number :执行第几笔指令的意思;
# command :由最近的指令向前搜寻『指令串开头为 command』的那个指令,并执行;
# !! :就是执行上一个指令(相当于按↑按键后,按 Enter)
6)路径与指令搜寻顺序 :
- 1. 以相对/绝对路径执行指令,例如『 /bin/ls 』或『 ./ls 』;
- 2. 由 alias 找到该指令来执行;
- 3. 由 bash 内建的 (builtin) 指令来执行;
- 4. 透过 $PATH 这个变量的顺序搜寻到的第一个指令来执行。
[Demo_Li@liruilong home]$alias echo='echo -n'
[Demo_Li@liruilong home]$type -a echo
echo is aliased to `echo -n'
echo is a shell builtin
echo is /bin/echo
15,bash的配置文件主要分为login shell与non-login shell ,login shell 的配置文件读取流程 :
1)source :读入环境配置文件的指令
[dmtsai@study ~]$ source 配置文件档名
#范例:将家目录的 ~/.bashrc 的设定读入目前的 bash 环境中
[dmtsai@study ~]$ source ~/.bashrc <==底下这两个指令是一样的!
[dmtsai@study ~]$ . ~/.bashr
2)终端机的环境设定: stty, set :
[dmtsai@study ~]$ stty [-a]
#选项与参数: -a :将目前所有的 stty 参数列出来;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q;
stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
- intr : 送出一个 interrupt (中断) 的讯号给目前正在 run 的程序 (就是终止啰!);
- quit : 送出一个 quit 的讯号给目前正在 run 的程序;
- erase : 向后删除字符,
- kill : 删除在目前指令列上的所有文字;
- eof : End of file 的意思,代表『结束输入』。
- start : 在某个程序停止后,重新启动他的 output
- stop : 停止目前屏幕的输出;
- susp : 送出一个 terminal stop 的讯号给正在 run 的程序。
3)通配符与特殊符号:
[root@liruilong Demo_Li]# ll / > ~/rootfile
[root@liruilong Demo_Li]# ll ~/rootfile
-rw-r--r--. 1 root root 1009 Jul 18 17:05 /root/rootfile
[root@liruilong Demo_Li]# nl ~/rootfile
1 total 98
2 dr-xr-xr-x. 2 root root 4096 Oct 22 2017 bin
3 dr-xr-xr-x. 5 root root 1024 Sep 16 2017 boot
………………
1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << ,将原 本需要由键盘输入的数据,改由文件内容来取代;
2. 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
- 1> :以覆盖的方法将『正确的数据』输出到指定的文件或装置上;
- 1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;
- 2> :以覆盖的方法将『错误的数据』输出到指定的文件或装置上;
- 2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
16,使用vim 时,如果不小心按了crtl+s则画面会冻结,可以使用