Linux文件管理

touch命令:

  • touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
  • ls -l 可以显示档案的时间记录
  • 使用者权限:所有权限用户

语法:

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

参数说明:

a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
–no-create 不会建立新档案。
–help 列出指令格式。
–version 列出版本讯息。
# 不存在就创建文件,存在就改时间属性
touch a.txt

# 批量创建空文件
touch a{1..10}.txt

# 查看文件详细信息
stat a.txt

vi与vim:

  • 使用vi/vim其实就相当于我们在Windows系统中创建文件、打开文件、编辑文件、保存文件操作
  • vi是 visual interface的简称, 是linux中最经典的文本编辑器。
vi的特点:
  • 只能是编辑、文本内容,不能对字体段落进行排版
  • 不支持鼠标操作
  • 没有菜单
  • 只有命令
  • vi编辑器在系统管理服务器管理、编辑文件时, 其功能永远不是图形界面的编辑器能比拟的
vim介绍:
  • vim:是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
  • 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
  • vim 则可以说是程序开发者的一项很好用的工具。
vi/vim模式主要分为以下三种:
  1. 命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。
  2. 编辑模式:在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。
  3. 末行模式:在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。
打开和新建文件:
  • 使用vim不但可以打开一个现存的文件;也可以生成(vim后的文件不存在的情况下)一个文件;有点类似于我们在Windows中输入notepad命令一样,我们输入notepad后就会打开一个文本文档,然后进行编辑–另存为。
  • 使用者权限:当前文件的权限用户
  • 在终端中输入vim在后面跟上 文件名 即可
  • 如果文件已经存在, 会直接打开该文件
  • 如果文件不存在, 打开一个临时文件,保存且退出时就会新建一个文件
进入编辑模式命令:
命令功能
i在当前字符前插入文本
l在行首插入文本
a在当前字符后添加文本
A在行末添加文本
o在当前行后面插入空行
O在当前行前面插入空行
保存命令:
命令功能
:q不保存退出
:q!不保存强制退出
:wq正常保存退出
:wq!强制保存退出
vim创建和定位:
# 如果文件已存在会直接打开文件,不存在就打开临时文件,退出保存以后就新建了
vim 文件名

# 定位行
vim 文件名 a.txt +5
vim异常:
  • 在Linux中修改文件时是不会在源文件上直接改的,而是先在交换文件中改,交换文件的后缀是.swp,当修改完毕保存后,系统会再把交换文件的内容同步到源文件。
  • 如果因为没有保存就关闭了虚拟机,再次打开是会提醒你是不是要恢复的,选择恢复或者或者直接删除交换文件就可以了
    在这里插入图片描述

文件查找:

find:

find命令用来在指定目录下查找文件。
任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法

find <指定目录> <指定条件> <指定内容>

-name:按照名字查找文件
-ctime:按照时间查找文件 -n指n天内,+n指n天前

# 查找当前文件夹的指定文件,代码里的点是代表在当前目录下查找
find . -name "*.txt"

# 查找全盘的的指定文件,代码里的斜杠是代表在从根目录开始
find / -name "*.txt"

# 查找1天内操作过的文件
find . -ctime -1

读取命令read:

  • read命令用于从标准输入读取数值。
  • read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。
  • read命令相当于在java SE阶段学习的键盘录入输入Scanner(read命令会比Scanner更强大),开发人员可以动态的与程序交互,

语法

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

简单读取

echo "请您输入网站名: "  
#读取从键盘的输入  
read website  
echo "你输入的网站名是 $website"  
exit 0  #退出

读取文件

  • 每次调用 read 命令都会读取文件中的 “一行” 文本。当文件没有可读的行时,read 命令将以非零状态退出。

  • 我们可以使用 cat 命令将结果直接传送给包含 read 命令的 while 命令。

测试文件 test.txt 内容如下:

AAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDD
================itzhuzhu

脚本如下,可以将脚本放到xxx.sh中进行执行

#!/bin/bash
count=1
cat test.txt | while read line      
# cat 命令的输出作为read命令的输入,read读到>的值放在line中
do
   echo "Line $count:$line"
   count=$[ $count + 1 ]          # 注意中括号中的空格。
done
echo "finish"
exit 0

文件查看:

命令功能
cat文件名查看小文件内容
less-N文件名分屏显示大文件内容
head-n文件名查看文件的前一部分
tail-n文件名查看文件的最后部分
grep 关键字 文件名根据关键字搜索文本文件内容
cat:
# 查看a.txt的内容
cat a.txt

#  查看a.txt内容并加行号
cat -n a.txt

# 退出查看视图摁q
less:
# 查看a.txt的内容
less a.txt

# 查看a.txt的内容并加行号
less -N a.txt
tail:
  • -c<数目> 显示的字节数。
  • -n<行数> 显示的行数。
# 显示文件最后3行
tail -3 b.txt

# 动态显示最后10行(动态就是一直刷新获取最新)
tail -f b.txt

# 动态显示最后4行
tail -4f b.txt

# 显示文件b.txt的内容,从第2行至文件末尾
tail -n +2 b.txt

# 显示最后45个字符
tail -c 45  b.txt
head:
  • -c<数目> 显示的字节数。
  • -n<行数> 显示的行数。
# 显示文件的前10行
head b.txt

# 显示文件开头的5行
head -n 5 b.txt

# 显示前10字节
head -c 10 b.txts
grep:
  • grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一行显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
    语法:
grep [参数选项] 关键字 文件名
  • -n:把包含关键字的行展示出来
  • -i:把包含关键字的行展示出来,搜索忽略大小写
  • -v:把不包含关键字的行展示出来
# 把包含关键字的行展示出来
grep 关键字 b.txt

# 把包含关键字的行展示出来加行号
grep -n 关键字 b.txt

# 把包含关键字的行展示出来,搜索忽略大小写
grep -i 关键字 b.txt

# 把不包含关键字的行展示出来
grep -v 关键字 b.txt

# 查找指定的进程信息,包括grep进程
ps -ef | grep 关键字

# 查找指定的进程信息,不包含grep进程
ps -ef | grep 关键字 | grep -v "grep"

# 查找指定进程名的个数
ps -ef grep -c 进程名

echo:

  • echo命令有点类似于System.out.print(“hello”),但是,echo还有一个功能就是追加文件内容到文件,类似append文件流写入一样
  • 使用者权限:所有用户
  • echo string 将字符串输出到控制台 , 通常和重定向联合使用
echo字符串展示文本
echo字符串 > 文件名将字符串写到文件中(覆盖文件内容)
echo字符串 >> 文件名将字符串写到文件中(不覆盖文件内容)
cat不存在在的目录 & >>error.log将命令的失败的结果追加error.log文件的后面
# 输出hello world
echo "hello world"

# 将hello world写到a.txt
echo 要写的内容 > a.txt
echo "hello world" > a.txt

# 将hello world2写到a.txt,追加写入
echo 要写的内容 >> a.txt
echo "hello world2" >> a.txt

# 将abc文件的内容写到a文件,但是abc文件不存在就会把报错信息写到a文件中
cat abc.txt &>> a.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itzhuzhu.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值