Linux 基础指令(2)

文件等与内容加属性,cat就是打印一个文件的内容

echo和cat和重定向

echo"hello world"打印字符串到显示器
echo"hello world">file.txt 把本该打印到显示器的内容重定向到file.txt,若文件不存在则创建文件,存在就直接访问(默认在当前路径下,也可以是路径加文件名)每次都会覆盖掉上一次的内容,是不是和文件操作很像呢?
>>追加重定向:每次在后面新增
访问方式:输出重定向,从文件开始覆盖写入(不管之前是什么内容,都用新内容覆盖写入)
追加重定向,从文件结尾追加写入(在原基础上不断增多)
这两种方式本质都是写入
重定向:本该写入显示器的内容写入文件中

cat file.txt 把文件内容打印出来
cat本质就是 把file.txt打开,读到自己的程序中,然后再通过自己的程序把数据显示出来
相当于 fopen + fread fwrite(fprintf)
cat 加回车 光标卡在对话框中,输入什么就打印什么
cat默认是从键盘读取数据,打印到显示器上,cat后面跟上文件就是从文件中读取,就相当于输入重定向(键盘→文件) cat<file.txt 读取file.txt,指向键盘的指针指向文件,( 不需要打开文件?
cat file.txt
用户传了文件名
从文件中读取
打印到显示器
cat file.txt > test.txt 输出重定向
cat < file.txt > test.txt 输入重定向和输出重定向

Linux是C语言和汇编写的,设计理念是一些皆文件,及显示器键盘这些外设都看作普通文件一样,操作系统为每一个文件创建struct file{}结构体

struct file{
int (*read_p)();
int (*write_p)();
}

每一个文件都有自己的struct file 结构体,读写方法指针指向自己对应的读写函数,虽然每一个文件的读写方法不经相同,但是上层OS都以统一视角看待即struct file(变量/对象类型)的角度管理这些不同的文件

虽然键盘显示器普通文件的读写方法不同,但是通过再Linux上定义一层函数指针,在OS层面定义一个struct file(假定包含两个指向读写方法的函数指针)结构体实例化出三个对象,每个函数指针都指向自己的方法但是对于操作系统看来,所有的普通文件都看作file这样的结构体,统一视角,模型简化

more和less

当我们使用cat file.txt查看文本时,文本太长可以使用more file.txt打满一个屏幕,回车继续逐行下翻,退出使用more -q

more -5 file.txt 5指定行号,逐行阅读文本

推荐使用less,因为可以上下翻,在交互模式下可以检索,交互模式:

/999:搜索关键字999

然后输入n可以向下检索含有999的内容

输入g回到最开始

head和tail

head -n file.txt 提取文件头部若干(n缺省值为10)行(n行)

tail -n file.txt 提取后10行

问:如何利用head和tail提取【999,1010】行

1.创建临时文件

head -1010 file.txt > tmp.txt

tail -12 tmp.txt

2.利用管道

head -1010 file.txt

head -1010 file.txt | tail -12

管道

管道→资源(数据)传输数据

head -1010 file.txt | tail -12 &#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值