Linux基础第二篇
元字符
元字符定义:
指对当前shell具有特殊含义的字符
常用元字符:
* : 代表0-n个任意字符 例如:ls j* 显示所有以j开头的文件或目录名字
? :代表任意一个字符 例如:ls j? 以j开头 后面有一位的文件或目录
; : 多个命令的分隔符 例如:cd;ls 先切换再显示列表;
date;cal;pwd 查看当前日期、查看当前日历和显示当前工作路径的绝对路径名
[] : 从[]指定的集合或者范围中选择一个字符
例如: [a-c]:aAbBc
[abc]:abc
ls[a-c]*:查找以包含aAbBc字母开头的文件或目录
> : 重定向命令的输出到文件而不是屏幕(覆盖源文件)
例如:cal 10 2004 > a.txt 将2004年10月份的日历输出到a.txt文件中
>> : 将命令的输出追加到一个已经存在的文件
例如:cal 10 2004 >> a.txt 将2004年10月份的日历追加到a.txt文件中
| : 将前一个命令的输出作为下一个命令的输入
例如:ls -l /etc | more 使用more命令查看/etc目录下的内容
Text Viewer
-
cat
语法:cat filename(s)
作用:(1)将文本文件的内容一次性显示在屏幕上
(2)常用来将两个或者更多的文件整合成一个文件
例如cat a.txt: 将a.txt文件中的内容显示到屏幕上
cat a.txt b.txt > large.txt 将a.txt以及b.txt中的内容输出到large.txt
清空文件:
/dev/null 这个文件是linux中的黑洞,无论向这个文件中输入什么文件还是空
比如:cal > /dev/null 依旧是空 -
more
语法:more filenames
作用:一次一屏幕的显示文本文件内容
指令:
space bar : 一次滚动一屏幕
return : 一次向下一行。
b : 一次回退一屏幕
f : 一次向前一屏幕
h/? : 显示帮助信息文档
q : 退出,回到shell终端
/String : 向前查找字符串
n : 查找下一个字符串
vi介绍
作用:满屏文本编辑器。
vi编辑器的三种模式:
- 底行模式
- 命令行模式
- 输入模式
模式转换:
(1)命令行模式-----》输入模式:
插入:
a: 在光标所在位置之后插入
A: 在光标所在行的行尾插入
i: 在光标所在位置插入
I: 在光标所在行的行首插入
o: 在光标所在行的下一行插入
O: 在光标所在行之上插入
(2)输入模式------》命令行模式
Esc
(3)命令行模式-----》底行模式
ESC+:or / or ?
打开vi
vi : 打开一个新的文件,退出或者保存时命名
vi filename : 打开或者创建一个新的文件
保存文件
底行模式下:
:w newFile : 存成新文件
:w : 存盘
退出vi
底行模式下:
:wq : 保存退出
:q! : 强行退出不存盘
删除文本
x: 删除一个字符
s: 删除当前字符,并进入输入模式
dw: 删除当前词
ndw: 删除n个词
dd: 删除当前行
ndd: 删除之后的n行
:5,10d: 删除5-10行之间的内容
修改文本
r : 替换一个字符,
cw :替换一个单词, 进入输入模式
cc :替换一行, 进入输入模式
C :替换从光标至行尾。 进入输入模式
复制和粘贴文本
yw : 拷贝词
yy : 拷贝行
p : 当前行下粘贴
:1,2co3: 拷贝行1,行2在行3之后
:4,5m6: 移动行4,行5在行6之后。
高级功能
~ : 改变大小写
J : 把当前行和下一行连起来
u : 废除刚才的编辑操作
:set nu : 显示行标
:21 光标停在指定行
21G 光标停在指定行
/str 从当前行往下查找
?str 从当前行往上查找
n 继续查找
:r file 在光标所在位置插入另一个文件
:1,$s/old/new/g 替换文本(%s/old/new/g)
配置文件
定义
系统配置文件用来记录一些系统运行时需要的相关配置信息,环境变量信息等。
种类
- 系统级别:/etc/profile
一般存放在/etc目录下
例如:
(1)/etc/enviroment 是系统的环境变量。
(2)/etc/profile: 是所有用户的环境变量。当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置。
(3)/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。 - 用户级别:~/.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 运行的通常二者设置大致相同,所以通常前者会调用后者。
内容
- 设置默认的创建权限
- 设置环境变量
- 设置默认终端提示符
- 设置默认命令行命令的路径
- 设置客户自定义命令
相关指令
-
设置环境变量
(1)在Shell中定义临时变量:
varName=value
(2)定义用户级别的环境变量
在用户级别的配置文件中:常用的~/.bashrc
export varName=value
让文件执行:source ~/.bashrc或者. ~/.bashrc
(3)定义系统级别的环境变量
在系统级别的配置文件中:常用的/etc/profile
export varName=value -
读取变量的值:
echo $varName -
path变量:
path环境变量用来指明操作系统下常用命令的搜索路径 -
which
语法: which commandName
作用:在系统环境变量中查找指定命令的路径名
which是根据使用者所配置的 PATH 变量内的目录去搜寻可运行文档的!所以,不同的 PATH 配置内容所找到的命令可能不一样! -
whereis
语法:whereis commandName
作用:whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis时,会从数据库中查找数据,而不是通过遍历硬盘来查找,效率自然会很高。但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。 -
history
显示命令行历史记录
history 10 显示最近的10条记录
!n 执行第n条历史命令
!! 执行刚刚执行过的历史命令 -
alias
语法:alias 别名=命令
作用:用来给一个长的命令,起一个简单的别名
例如:
给history起个别名h
alias h=history
查看所有的别名
alias
取消绑定
unalias h -
用户终端提示符
变量设置: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时,提示符为:# ,普通用户则为:$
-
umask
跟系统创建的目录和文件的默认权限相关。
这个值决定了当前用户所创建文件和目录的默认权限
目录权限: 777 - umask
文件权限: 777 - umask - 所有人的执行权限
linux中grep命令的用法
作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的。
首先谈一下grep命令的常用格式为:grep [选项] ”模式“ [文件]
grep家族总共有三个:grep,egrep,fgrep。
常用选项:
-E :开启扩展(Extend)的正则表达式。
-i :忽略大小写(ignore case)。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
--color :将匹配到的内容以颜色高亮显示。
-A n:显示匹配到的字符串所在的行及其后n行,after
-B n:显示匹配到的字符串所在的行及其前n行,before
-C n:显示匹配到的字符串所在的行及其前后各n行,context