1,元字符
1.1元字符定义:指对当前shell具有特殊含义的字符
1.2常用元字符
a.*
: 代表0-n个任意字符 例如:ls j*
显示所有以j开头的文件或目录名字
b.?
:代表任意一个字符 例如:ls j?
以j开头,后面有一位字符的文件或目录
c.;
: 多个命令的分隔符 例如:cd;ls
先切换再显示列表
date;cal;pwd
查看当前日期、查看当前日历和显示当前工作路径的绝对路径名
得出结果即:
2020年 07月 22日 星期三 20:54:35 CST
七月 2020
日 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
/home/briup
d.>
: 重定向命令的输出到文件而不是屏幕(覆盖源文件)
例如:cal 10 2004 > a.txt
将2004年10月份的日历输出到a.txt文件中
e. >>
: 将命令的输出追加到一个已经存在的文件
例如:cal 10 2004 >> a.txt
将2004年10月份的日历追加到a.txt文件中
f.<
:重定向输入到文件
cat < test.txt > a.txt
等价于—> cp test.txt a.txt
g.|
: 将前一个命令的输出作为下一个命令的输入(管道)
例如:ls -l /etc | more
使用more命令查看/etc目录下的内容
2,Text Viewer
1.cat
语法:cat filename(s)
作用:
(1)将文本文件的内容一次性显示在屏幕上
(2)常用来将两个或者更多的文件整合成一个文件
例如:
(1)cat a.txt
将a.txt文件中的内容显示到屏幕上
(2)cat a.txt b.txt > large.txt
将a.txt以及b.txt中的内容输出到large.txt
清空文件:
/dev/null 这个文件是linux中的黑洞,无论向这个文件中输入什么文件还是空
例如:cal > /dev/null
依旧是空
2.more
语法:more filenames
作用:一次一屏幕的显示文本文件内容
指令:
space bar : 一次滚动一屏幕
return : 一次向下一行。
b : 一次回退一屏幕
f : 一次向前一屏幕
h/? : 显示帮助信息文档
q : 退出,回到shell终端
/String : 向前查找字符串
n : 查找下一个字符串
3.more和cat的异同
都是用来查看文本文件内容的指令
不同的是cat一次性将所有文本全部显示,并且具有将两个或者更多的文件整合成一个文件的功能,more则可以一次一屏幕的查看文本文件内容并且具有丰富的功能。
1.vi编辑器
作用:满屏文本编辑器。
vi编辑器的三种模式:
1.底行模式
2.命令行模式
3.输入模式
三者之间的相互转换如图:
模式转换:
(1)命令行模式→输入模式:
插入:
a: 在光标所在位置之后插入
A: 在光标所在行的行尾插入
i: 在光标所在位置插入
I: 在光标所在行的行首插入
o: 在光标所在行的下一行插入
O: 在光标所在行之上插入
(2)输入模式→命令行模式
Esc
(3)命令行模式→底行模式
ESC+:or / or ?
2.vi编辑器指令
2.1 打开vi:
vi :打开一个新的文件,退出或者保存时命名
vi filename : 打开或者创建一个新的文件
2.2 保存文件:
底行模式下:
:w newFile : 存成新文件
:w : 存盘
2.3 退出vi:
底行模式下:
:wq : 保存退出
:q! : 强行退出不存盘
2.4删除文本:
x:删除一个字符
s:删除当前字符,并进入输入模式
dw:删除当前词
ndw:删除n个词
dd:删除当前行
ndd:删除之后的n行
:5,10d:删除5-10行的内容
2.5修改文本:
r : 替换一个字符,
cw:替换一个单词,进入输入模式
cc:替换一行,进入输入模式
C:替换从光标至行尾,进入输入模式
2.6复制和粘贴文本:
yw: 拷贝词
yy:拷贝行
p : 当前行下粘贴
:1,2co3: 拷贝行1,行2在行3之后
:4,5m6:移动行4,行5在行6之后
2.7高级功能:
~ : 改变大小写
J : 把当前行和下一行连起来
u : 废除刚才的编辑操作
:set nu : 显示行标
:21 : 光标停在指定行
G :光标停在最后一行
21G : 光标停在指定行
/str : 从当前行往下查找
?str :从当前行往上查找
n :继续查找
:r file : 在光标所在位置插入另一个文件
:1,$s/old/new/g :替换文本(%s/old/new/g)
1.定义
系统配置文件用来记录一些系统运行时需要的相关配置信息,环境变量信息等。
2.种类
2.1系统级别:/etc/profile
一般存放在/etc目录下
例如:
(1)/etc/enviroment 是系统的环境变量。
(2)/etc/profile: 是所有用户的环境变量。当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置。
(3)/etc/bashrc: 为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
2.2用户级别:~/.bashrc
一般存在用户家目录之下
例如:
(1)~/.bash_profile
: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
(2)~/.bashrc
: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
(3) ~/.bash_logout
:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc
等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是”父子”关系。
(4)~/.bash_profile
是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
3.内容
1.设置默认的创建权限
2.设置环境变量
3.设置默认终端提示符
4.设置默认命令行命令的路径
5.设置客户自定义命令
4.相关指令
1.设置环境变量
(1)在Shell中定义临时变量:varName=value
(2)定义用户级别的环境变量
在用户级别的配置文件中:常用的~/.bashrc
export varName=value
让文件执行:source ~/.bashrc
或者 ~/.bashrc
(3)定义系统级别的环境变量
在系统级别的配置文件中:常用的/etc/profile
export varName=value
2.读取变量的值:
echo $varName
3.path变量:
path环境变量用来指明操作系统下常用命令的搜索路径
4.which
语法: which commandName
作用:在系统环境变量中查找指定命令的路径名
which是根据使用者所配置的 PATH 变量内的目录去搜寻可运行文档的!所以,不同的 PATH 配置内容所找到的命令可能不一样!
5.whereis
语法:whereis commandName
作用:whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis时,会从数据库中查找数据,而不是通过遍历硬盘来查找,效率自然会很高。但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
6.history
显示命令行历史记录
history 10
显示最近的10条记录
!n
执行第n条历史命令
!!
执行刚刚执行过的历史命令
(禁止删库跑路!76:我看见你们了! )
7.alias
语法:alias 别名=命令
作用:用来给一个长的命令,起一个简单的别名
例如:
给history起个别名h
alias h=history
查看所有的别名
alias
取消绑定
unalias h
8.用户终端提示符
变量设置:PS1='value'
value中可以包含:
\d :代表日期,格式为weekday month date,例如:“Mon Aug 1”
\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称。家目录会以 ~代替
\W :利用basename取得工作目录名称,所以只会列出最后一个目录
# :下达的第几个命令
$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
PS1=”`hostname`$”查询当前用户名
9.umask
跟系统创建的目录和文件的默认权限相关。
这个值决定了当前用户所创建文件和目录的默认权限
目录权限: 777 - umask
文件权限: 777 - umask - 所有人的执行权限
例:在虚拟机终端中输入umask
可得到0002,掩码为002,
目录权限为777-002。即775,权限详细为drwxrwxr-x
文件权限为777-002-111。即664,详细为-rw-rw-r--
今天对linux系统即shell的基础东西的剩余部分进行了学习,总的来说对linux系统和shell语句有了更深层次的认识。今天的重点内容是vi编辑器,通过vi编辑器进行文本编辑,熟练了vi编辑器的各种操作,包括vi编辑器的三种模式转换,在命令行模式对文本进行修改等等,收获还是很丰富的。明天就开始进行java的相关学习了,加油!