cat,more,less,head,tail,输出重定向

对文件和文件夹的操作

ls ,mkdir,touch ,pwd,cp,mv,rm,ln
对文件内容进行操作—》看文件里的内容
cat more less head tail

vim编辑器概述

1.新建一个空文件
# touch liupeng.txt
2.使用vim编辑器
1. # vim luyongkang.txt
2. 按字母i进入插入模式,开始修改文本 (insert)
3. 输入内容
4. 按ESC键,进入命令模式 (escape)(逃离)
5. 输入:wq ,进入末行模式,退出并且保存(written quit)

#vim  xiyouji.txt  
如果xiyouji.txt存在,就是打开,如果不存在,vim编辑器会自动帮助我们新建
cat  用来查看文件里的内容    
ls 是查看文件夹里的内容

cat命令

cat -n 显示文件内容和行号
-n, –number
number all output lines

tac命令

tac:用来倒序显示cat的结果
tac liupeng.txt |cat -n 用来倒序显示cat结果且有行号
| (管道符):将前面一个命令的输出送给后面一个命令作为输入 。借花献佛

PS:操作系统中进程与进程间的通信方式:

  • 管道
  • 系统IPC(消息队列、信号量、共享存储)
  • SOCKET

more命令

用途:全屏方式分页显示文件内容
交互操作方法:
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏 (back)
按q键退出 (quit)

# cat -n messages |more  
显示行号并且分页

less命令

用途:与more命令相同,但扩展功能更多
交互操作方法:
与more命令基本类似,但个别操作会有些出入
【page up】【page down】上翻下翻页

head命令

(从开头看)
用途:查看文件开头的一部分内容(默认为开始10行)
格式:head -n 数字 文件名

# head -n 2 messages  
显示前2行的内容
# cat -n messages |head -n 3
        等价于
# head -n 3 messages |cat -n

tail命令

用途:查看文件结尾的少部分内容(默认为10行)—->尾10行

tail  -f  文件名

tail命令高级用法

格式:tail -n 数字 文件名
命令参数:

  • -q 隐藏文件名
  • -v 显示文件名
  • -c<字节> 显示字节数
  • -n<行数> 显示的行数

例如:

tail -n +3 /etc/passwd    从第三行开始显示
tail -n -3  /etc/passwd    显示最后三行
head -n -3  /etc/passwd   显示除最后三行外的信息
head -n +3 /etc/passwd   显示前三行

练习题

对messages文件进行操作
1.显示第6行内容
2.显示第10行到20行的内容
3.显示第100行到200行的内容

# cat -n messages |head -6|tail -1
# cat -n messages |head -20|tail -11
# cat -n messages |head -200|tail -101

注意:head -3 等价 head -n 3

ps aux命令 查看当前系统进

# ps aux 

ps 查看当前系统进程信息
ps - report a snapshot of the current processes.
-u userlist
aux 是选项
ax显示所有的进程

# ps aux|more 分页显示所有的进程信息

wc 统计命令

-c, --bytes
              print the byte counts
-m, --chars
              print the character counts
-l, --lines
              print the newline counts

注意:一个数字、特殊符号、英文字母占1个字节,一个汉字占2-3个字节
注意中英文输入法

# ps aux|tail -n +2|wc -l 
显示当前有多少进程数量

sed 对文本文件进行处理

# cat -n messages |sed -n '1,3p'  显示13# cat -n messages |sed -n '1p;3p;5p'
显示第1行、第3行、第5

PS:p是输出相关的内容到屏幕上(print)

小结

  • cat :一瞬间全部显示,有显示行号的功能
  • more less:分页显示
  • head:头10行
  • tail:尾10行,高级功能,可以从第几行开始显示 tail -n +3 messages
    PS:tail -n 3 等价 tail -3

cat 扩展功能

>
输出重定向符号:将本该在屏幕上输出的内容重新定向到一个文件里。(乾坤大挪移)
如果后面接的文件不存在,则自动建立。如果文件存在,则覆盖替换原来文件里的内容。
>>
输出重定向符号(追加):追加到文件的末尾,如果后面接的文件不存在,则自动建立。如果文件存在,则覆盖替换原来文件里的内容。

# cat wangshuo.txt >ws.txt   
覆盖
②# cat wangshuo.txt  w.txt  >1.txt
将两个文件合并为一个1.txt文件

here document <<

生成一个指定内容的文件,使用here document 和输出重定向功能,例:
# cat >LP.txt <<EOF
(新建一个LP.txt文档,并且往里面写入内容,且以EOF结束)
> wangnan
> dezhou
> EOF

PS:EOF,即 End OF the…,可以用别的字符代替EOF

怎么写脚本

(多写点英文注释)

#vim lp777.sh
(以下是脚本内容)
#!/bin/bash
#author : LP
#company : chinaitsoft
#function: create file and dirctory
#version: 1.0       

执行脚本:
# bash lp777.sh

脚本执行的时候,从文件的第1条命令开始执行,到最后一条命令。
脚本,即scripts。其实脚本就是一个存放了很多条命令的文件
执行的顺序是从第1条到最后一条命令。

练习:

编辑一个脚本文件create_file.sh实现下面功能:
1.新建一个文件夹liudehua
2.进入liudehua目录,新建10个空文件zhangxueyou1 zhangxueyou2
到zhangxueyou10
3.生成一个文件叫wangjishun.txt,内容如下:
  wang ji shun   
  18+
  nan
  qilu 
4.输出wangjishun.txt的内容到屏幕上
5.输出一行***************在脚本执行的最后一行

补充小知识

# [ -d liudehhua ]  
判断liudehua目录是否存在  
$? 代表上一条命令的返回值,如果上一条命令执行成功为0,如果非0就表示不成功

初识if…else…

if 命令
then
    命令1
    命令2
    ....
else
    命令3
    命令4
    ....

if命令执行成功就是条件成立,不成功就是条件不成立。
条件成立,则执行then后面的语句命令,如果条件不成立,则执行else后面的语句命令。

if [ -d  liudehua ]
then
        echo "liudehua is exist"
else
        mkdir liudehua
fi

例子:

#!/bin/bash
#author : LP
#company : chinaitsoft
#function: create file and dirctory
#version: 1.0

#create liudehua directory    ----注释
if [ -d liudehua ]
then
    echo "liudehua is exist"
else
    mkdir liudehua
fi

cd liudehua
touch  zhangxueyou{1..10}

#create file wangjishun.txt
cat >wangjishun.txt  <<EOF
wang ji shun
18+
qilu
nan
EOF

cat  wangjishun.txt
echo "*************************"

末尾的小总结

cat more less head tail :看文件里的内容
which whereis locate :查找系统里的命令文件存放在哪里?

which命令
用途:查找可执行文件并显示所在的位置
—— 搜索范围由 PATH 环境变量指定
格式:which 命令或程序名

原文地址:https://www.cnblogs.com/lpeng94/p/12546514.html