 深入认识指令)
目录一. Linux下一切皆文件1.1 一切皆文件从/dev 设备说起二. echo2.1 重定向操作2.1.1 输出重定向 2.1.2 输出重定向 三. cat3.1 重定向操作3.1.1 输入重定向 3.2 cat -n3.3 tac四. mv五. more六. less七. head 和 tail7.1 head7.2 tail7.3 管道的妙用7.3.1 怎么去理解管道八. date8.1 指定格式显示时间8.2 修改系统时间8.3 时间戳8.3.1 时间戳的含义8.3.2 时间戳的显示和转换8.3.3 时间戳的作用九. cal十. whereis十一. find一. Linux下一切皆文件在 Linux 中键盘、显示器等设备也可以按照“文件”的方式进行操作。程序进行输出时本质上可以理解为向显示器对应的输出对象写数据进行输入时则可以理解为从键盘对应的输入对象读取数据。对普通文件进行读写之前通常需要先显式打开文件而标准输入、标准输出和标准错误在程序启动时通常已经由系统提前准备好因此使用scanf、printf、cin、cout等进行输入输出时不需要我们再手动执行打开操作。1.1 一切皆文件从/dev 设备说起/dev/pts可以理解为存放为终端设备文件的目录每多创建一个终端就会多分配一个设备文件/dev/pts/N(N为编号)所以程序并不是直接操作显示器而是通过终端这个“文件接口”来完成输出。输入也是一样键盘输入会通过终端进入标准输入stdin程序只需要从stdin中读取数据。也就是说我们可以通过不同终端对应的设备文件/dev/pts/N把数据输出到指定的终端中。二. echoecho 可以理解就是将传递给它的参数文本字符串输出到标准输出默认情况下标准输出就是显示器。2.1 重定向操作2.1.1 输出重定向 当文件不存在时创建文件文件已经存在时对文件的内容进行覆盖。所以我们也可以利用 来完成普通空文件的创建和文件内容的删除:创建空文件内容的删除2.1.2 输出重定向 当文件不存在时创建文件文件不存在时将文本追加至文件末尾。创建空文件:文本追加三. catcat 我们可以先理解为查看文件内容。常用选项-n对输出的所有行编号如果 cat 什么都不跟们可以理解就是从标准输入读取又输出到标准输出。也就时我输入什么就输出什么。3.1 重定向操作3.1.1 输入重定向 cat 去读文件内容并输出到标准输出。至于这和直接 cat 接文件名有什么区别我们以后再说。3.2 cat -ncat -n 也就是给显示的内容带上行号。3.3 tactac也就是倒叙查看文件。四. mvmv 可以理解为是移动文件/目录或者重命名文件/目录。视mv命令中第二个参数类型的不同(是目标文件还是目录)mv指令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时mv命令完成文件重命名此时源文件只能有一个也可以是源目录名它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已经存在的目录名称时源文件或目录参数可以有多个mv命令将各参数指定的源文件均移至目录中。常用选项-f如果目标文件已存在不会询问直接覆盖-i若目标文件已经存在时就会询问是否覆盖对文件移动重命名对目录移动重命名五. moremore功能类似cat但是支持分页查看按ENTER回车向下翻(不支持上翻)按行查看。常用选项-n指定输出行数qquit退出more/关键词从当前位置向下查找输出指定行数搜索六. lessless和more类似但使用less可以随意浏览文件(上下控制)而more只能向下移动不能向上移动而且less在查看之前不会加载整个文件。常用选项-i忽略搜索时的大小写-N显示每行的行号/字符串向下搜索该字符串?字符串向下搜索该字符串n重复前一个搜索与 / 或 ? 有关N反向重复前一个搜索与 / 或 有关qquit额外补充1less工具也是对文件或其它输出进行分页显示的工具应该说是linux正统查看文件内容的工具功能极其强大2less的用法比起more更加的有弹性在more的时候我们并没有办法向前面翻只能往面看3但若使用了less时就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件更容易用来查看一个文件的内容4除此之外在less里头可以拥有更多的搜索功能不止可以向下搜也可以向上搜。七. head 和 tail7.1 headhead 与 tail就像它的名字一样的浅显易懂它是用来显示开头或结尾某个数量的文字区块head用来显示档案的开头至标准输出中而tail当然就是看档案的结尾。常用选项-n行数显示的行数7.2 tailtail 主要用于显示指定文件末尾内容不指定文件时作为输入信息进行处理。常用查看日志文件。常用选项-f循环读取-n行数显示行数tail -f 的解释tail指令从指定点开始将文件写到标准输出使用tail命令的 -f 选项可以方便的查阅正在改变的日志文件 tail -f filename 会把 filename 里最尾部的内容显示屏幕上并且不断刷新使你看到最新的文件内容。7.3 管道的妙用我们先来看看管道的第一个妙用假如说我要提取一个文件第20行到第30行的内容7.3.1 怎么去理解管道我们之前说过linux下一切皆文件管道|可以看作是一个临时文件我先提取test.txt的前30行输出到管道在提取管道的后10行输出到标准输出。八. datedate的主要用途就是获取时间。8.1 指定格式显示时间date %Y:%m:%d在显示方面使用者可以设定欲显示的格式格式设定为一个加号后接数个标记其中常用的标记列表如下8.2 修改系统时间8.3 时间戳8.3.1 时间戳的含义从 1970 年 1 月 1 日 00:00:00 格林威治时间开始累计经过的秒数这个数值称为 Unix 时间戳。8.3.2 时间戳的显示和转换时间戳的显示date %s时间戳转换为可视时间8.3.3 时间戳的作用九. calcal主要用于查看日历等时间信息如只有一个参数则表示年份1-9999如有两个参数则表示月份和年份。常用选项-3显示系统前一个月当前月下一个月的月历-j显示在当年中的第几天(一年日期按天算从1月1号算起默认显示当前月在一年中的天数)-y显示当前年份的日历十. whereiswhereis 主要用于找到程序的源、二进制文件或手册。十一. findfind 主要用于在文件树查找文件并作出相应处理。常用选项-name按照文件名查找文件。其它选项需要再查这个命名其实比较复杂。补充Linux下find命令在目录结构中搜索文件并执行指定的操作。Linux下find命令提供了相当多的查找条件功能很强大。由于find具有强大的功能所以它的选项也很多其中大部分选项都值得我们花时间来了解⼀下。即使系统中含有网络文件系统( NFS)find命令在该文件系统中同样有效只你具有相应的权限。在运行一个非常消耗资源的find命令时很多人都倾向于把它放在后台执行因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。