简介
Bash 是 Unix 系统和 Linux 系统的一种 Shell(命令行环境),是目前绝大多数 Linux 发行版的默认 Shell。
shell的种类
- Bourne Shell(sh)
- Bourne Again shell(bash)
- C Shell(csh)
- TENEX C Shell(tcsh)
- Korn shell(ksh)
- Z Shell(zsh)
- Friendly Interactive Shell(fish)
bash是最常用的shell。
#查看shell种类
$ echo $SHELL
/bin/bash
进入与退出方法
#进入
$ bash
#退出
$ exit
查看当前所在目录
$ pwd
/home/me
常用命令1:文件管理
1.1 cat 命令
用于连接文件并打印到标准输出设备上
#把file1的文档内容加入行号输入到file2
$ cat -n file1.txt>file2.txt
#把file1的文档内容加入行号(空白行不加)输入到file2
$ cat -b file1.txt>file2.txt
1.2 less 命令
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件
#查看文件
$ less log2013.log
#查看进程信息通过less分页显示
$ ps -ef | less
#浏览多个文件,输入n切换到log2014 输入p切换到log2013.log
$ less log2013.log log2014.log
1.3 more 命令
以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
#一次显示3行
$ more -3 file.txt
#从第三行开始显示file文档内容
$ more +3 file
#逐页显示file文件内容,如有连续两行以上空白行则以一行空白行显示
$ more -s file
1.4 mv 命令
用来为文件或目录改名、或将文件或目录移入其它位置
#将文件 aaa 更名为 bbb
$ mv aaa bbb
#将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs
$ mv info/log
#再如将/usr/student下的所有文件和目录移到当前目录下
$ mv /user/student/*
1.5 tail 命令
#显示文件aaa.txt文件的最后100行
$ tail -n 100 aaa.txt
1.6 vi 命令
#编辑文件file
$ vi file
--- 退出编辑:
输入命令的方式为先按[ESC]键,然后输入
- :w(写入文件)
- :w!(不询问方式写入文件)
- :wq(保存并退出)
- :q(退出)
- q!(不保存退出)
常用命令2:文件、目录操作命令
2.1 ls 命令
功能:显示文件和目录的信息
#以默认方式显示当前目录文件列表
$ ls
#显示所有文件包括隐藏文件
$ ls -a
# 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
$ ls -l
#显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)
$ ls -lh
#显示文件,按照修改时间排序
$ ls -lt
2.2 cd命令
#切换到当前目录下的dir目录
$ cd dir
#切换到根目录
$ cd /
#切换到到上一级目录
$ cd ..
#切换到上二级目录
$ cd ../..
#切换到用户目录,比如是root用户,则切换到/root下
$ cd ~
2.3 cp命令
copy文件
#将文件source复制为target
$ cp source target
#将/root下的文件source复制到当前目录
$ cp /root /source
#将整个目录复制,两目录完全一样
$ cp –av soure_dir target_dir
2.4 rm命令
功能:删除文件或目录
#删除某一个文件
$ rm file
#删除时候不进行提示。可以于r参数配合使用
$ rm -f file
#删除当前目录下叫dir的整个目录
$ rm -rf dir
2.5 mv命令
将文件移动走,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令
#将文件source更名为target
$ mv source target
2.6 diff
#比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
$ diff dir1 dir2
#比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的
$ diff file1 file2
#比较文件,显示两个文件不相同的内容
$ comm file1 file2
常用命令3:显示操作历史命令
#所有的操作前加上行号,最近的操作在最后面,行号最大
$ history
...
498 echo Goodbye
499 ls ~
500 cd
#搜索某个以前执行的命令,可以配合grep命令搜索操作历史
$ history | grep /usr/bin
#清除历史
$ history -c
正则表达式规则
stay hungry, stay foolish