head, head命令可以显示文件自文件头起的若干行,默认10行。Usage: head -N <directory>
tail,tail命令可以显示文件自尾部起向上若干行,默认10行。Usage: tail -N <directory>
more, more命令可以用来显示整个文件内容,但是一次只会显示一屏内容,敲击空格键可以显示下一屏。
find, find命令,例如:"find StandardC -name note.txt"是在目录路径"StandardC"所描述的目录下查找名字为"note.txt"的文件.
find命令是基于文件外在属性的查找,例如可以依据文件大小、文件名称等查找。也就是这样,她并不能依据文件内容查找.Usage: find <开始查找的目录> 查找选项(-name选项表示文件名称 -perm选项表示文件其他属性)
命令find的命令选项-name最为常用,除此之外还可以选用其他一些更为灵活的命令选项,find命令选项简介如下:
-name 按照文件名查找文件。
-perm 按照文件权限属性查找文件。
-depth 首先在当前指定的目录查找,然后再查找其子目录。
-prune 使用这一选项可以实现不在当前指定目录中查找。当find命令同时有-prune和-depth两个选项时,-prune选项将被find命令自动忽略。
-mtime -n +n 实现按照文件更改时间查找。-n表示文件更改时间在n天以内,+n表示文件更改时间在n天以前
-user 按照文件属主查找文件。
-group 按照文件属组查找文件。
-nouser 查找无有效属主的文件,也就是说文件属主在/etc/passwd中不存在。
-nogroup 查找无有效属组的文件,也就是说文件属组在/etc/groups中不存在。
-newer file1 !file2 查找比文件file1新但是比文件file2旧的文件。
-type 按照文件类型查找。
b 是块设备。
c 是字符设备。
p 是管道文件。
d 是目录文件。
l 是符号链接(symbol)文件,也成"软链接"
f 是普通文件。
-size n : [c] 查找文件长度为n块的文件。加c表示文件长度以字节计。
grep, grep命令。grep(global search regular expression(RE) and print out the line, 全面搜索正则表达式并把行打印出来)是一个强大的基于文件内容的搜索工具,她能通过正则表达式搜索文本并把所在行打印出来。
grep命令选项:
-? 表示打印所在行的同时还需要打印所在行上下?行,例如grep -5 version mysql-5.0.45/Makefile
-c,--count表示只打印出匹配的行数,不打印匹配的内容。
-n, --line-number表示需要打印出匹配行的行号。
-v, --revert-match反检索,只打印不匹配的行。
grep命令举例: "grep versions mysql-5.0.45/Makefile"是在文件路径"mysql-5.0.45/Makefile"所描述的文件内容里面查找包含字符串"versions"的行.grep命令进行的是文件内容的查找。Usage: grep 要查找的字符串 文件路径
? 表示任意的一个字母或数字
* 表示任意长度的字符串,也就是任意多个任意字母或数字
[] 表示某一个范围内的字母或数字,例如[2-4]表示2、3、4其中一个字符。
可以看出,?*以及[]事实上就是一个集合,?就是任意一个字符的集合,*就是任意多个字符组成的集合, [2-4]就是元素为2、3、4的一个集合.
输入输出重定向。linux系统有默认的标准输入设备(stdin),有默认的标准输出设备(stdout)。我们可以通过输入/输出重定向来更改输入/输出设备。其中:
< 可以更改输入设备
>或者>> 可以更改输出设备
管道。使用管道'|'可以把多个命令连接起来,管道'|'前面的命令的输出会作为管道后面的命令的输入,例如: ls -l | grep day01
在命令行中可以一次执行多条命令, 书写时命令之间须用';'隔开,敲击回车键后命令会以此执行。例如:pwd;ls
在命令行中可以通过使用'\'来把一条命令书写在多个连续的行中,当命令书写完成后,敲击回车键后命令会被执行。
上面了解了基本shell语句,需要注意的是:
操作系统可以划分出两部分"kernel"和"shell"。kernel是俗称内核,完成计算机资源的管理,主要包括CPU管理、内存管理、文件管理以及其他i/o设备资源管理。shell俗称外壳,她是一种程序设计语言,她可以交互式滴解释执行命令。作为程序设计语言,她也有自己的语言字符集,有自己的控制流语句用以控制程序各个运算的执行顺序(控制流结构包括1、顺序结构 2、分支结构3、循环结构)。当然她也允许定义变量。
终端中执行echo $SHELL可以查看当前用户在用的shell类型。shell分好多种,简介下:
<1>Bourne Shell
bsh(Bourne Shell)是伯恩(Bourne)为AT&T UNIX所写,简称b-sh(读作b-shell或者Bourne Shell)是最早最知名的unix shell。如果使用的是Bourne Shell,那么在终端(Terminal)上往往命令提示符为$。Bourne Shell的下一版本是Bourne Shell again,简称bash
<2>C Shell
csh(C Shell)是vi作者乔恩在美国加州大学伯克利分校为BSD UNIX创建。相比Bourne Shell,她更类似于C语言。要注意的是语法上C Shell并不兼容Bourne Shell。如果使用的是C Shell,那么在终端(Terminal)上往往命令提示符为%。C Shell也有一个增强版,名叫tcsh(TC Shell)
注意:一般unix系统终端(Terminal)上root用户命令提示符总是#。
接下来,一个神一样的工具vi将要出场,初来乍到请你一遍又一遍地通过vimtutor练习vi的使用。基本上通过vi编辑代码(以抄代码的速度衡量)速度可以在15分钟/百行就可以说熟练使用vi了。
vi还有这样操作,你知道么?
(1)光标所在英文字符,敲上一个波浪~可以改变英文字符的大小写。
(2)敲上一个大写的J就可以将下一行合并到当前行行末,成为同一行。
(3)
1,2co3 拷贝1、2行到第三行之后。
1,2m3 移动1、2行到第三行之后。
1,2d 删除第1-2行。
1,2y 拷贝1、2行。