linux一直学的很拖拖拉拉的,以前学了,不常用,不写笔记,基本忘了,又的重新来一次。
Shell是什么
Shell是一个命令解释器,它为用户提供了一向Linux内核发送请求以便运行程序的界面系统程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。
Bash的基本功能
1历史命令
当在服务器出问题,需要查看上一次操作,以判断问题。可以通过历史命令查看。
#history [选项][l历史命令保存文件]
选项:
-c: 清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件
历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改。
/home/bash_history
上下键切换以前的历史命令
"!n"重复执行第n条历史命令
"!!"重复执行上一条命令
"!字串"重复执行最后一条以该字串开头的命令
2 命令与文件补全
使用tab键补全
3别名和快捷键
命令别名
设定命令别名
#alias 别名 = '原命令'
例如将vi设置为vim的别名,使用命令vi的时候就表示使用vim。(这个是根据每个人的习惯来设置的)
#alias vi=’vim‘
查询命令别名
#alias
命令执行时书顺序:
1第一顺位执行用绝对路径或相对路径执行的命令
2第二顺位执行别名
3第三顺位执行Bash的内部命令
4第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
让别名永久生效,需要修改配置文件
#vi /root/.bashrc
删除别名
#unalias 别名
常用快捷键
ctrl+c:强制终止当前的命令
ctrl+l:清屏,相当于clear
ctrl+u:删除或剪切光标之前的命令,输入一个很长命令后,不用使用退格键一个一个字符的删除,使用这个快捷键更加方便
ctrl+y:粘贴ctrl+u剪切下来的内容
ctrl+r:在历史命令中搜索,按下ctrl+r之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。
ctrl+d:退出当前终端
常用命令还是需要试试才能熟悉
4输入输出重定向
1标准输入输出
就是计算机的输入设备和计算机的输出设备
输入输出重定向就是不执行标准输入输出,用文件的方式来输入输出
2输出重定向
输出重定向:不让它输出到屏幕中让它输出到文件当中
linux做定时任务时,把命令结果保存在文件里,给管理员查看,以便检查。
知道错误命令干嘛还输出啊,所以常用的是下面的方式。
把正确的和错误的都输入同一个文件。
前4种都是一样的,都是把错误和正确输出到一个文件里面。
&>/dev/null将错误直接丢入垃圾箱
最后一种把正确的和错误的分开来写。
3输入重定向
就是不以键盘的方式来输入,而已文件的方式来输入
输入重定向没有输出重定向常用,给源码打补丁用
用wc进行演示
wc统计键盘数
ctrl+d显示计算结果
#wc [选项][文件名]
选项:
-c 统计字节数
-w 统计单词数
-l 统计行数
输入重定向格式
命令<文件 把文件作为命令的输入
用命令<<文件的方式:
wc<<hello不在是ctrl+d结束,而是再次遇到hello结束
5多命令顺序执行
简化执行操作,多个命令一起执行。
“:”的作用:
连接多个没有关系的命令,在执行dd命令的时候有帮助
dd命令在linux中执行磁盘或者 数据复制,但是它不是cp;cp只复制文件,dd命令能复制特殊文件和特殊命令,还能复制分区和硬盘,还复制硬盘或者分区的文件系统,可以当作磁盘对口命令来对待,dd主要用于磁盘的复制。
例子:
测试创建一个10M的文件需要多久
#dd if=输入文件 of=输出文件 bs=字节数 count=个数
选项:
if = 输入文件 指定源文件或者源设备
of=输出文件 指定目标文件或者设备
bs=字节数 指定一次输入\输出多少字节,即把这些字节看做一个数据块
count=个数 指定输入\输出多少个数据块
创建一个10M的文件只需要0.034s
&&与||的例子:
6.管道符
格式:
#命令1 | 命令2
作用:
命令1的正确输出作为命令2的操作对象
例子:
#ll -a /etc/ | more
more本来是用于文件的,现在可以用于命令的操作,/etc/显示内容非常多,用more可以很好的分页
#grep [选项] "搜索内容” 文件名
作用:
搜索关键字用颜色显示
选项:
-i : 忽略大小写
-n: 输出行号
-v: 反向查找
--color = auto 搜索出的关键字用颜色显示