shell Day02

cat, cat命令可以用来显示整个文件的内容, Usage: cat <directory>
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行。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值