一、文件相关操作命令
1.创建文件
创建一个空文件
【【【 touch + 创建的文件名(文件路径) 】】】
[root@haha t1]# touch 1.txt //相对路径
[root@haha t1]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 19 08:57 1.txt
[root@haha t1]# touch /t1/2.txt //绝对路径
[root@haha t1]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 19 08:57 1.txt
-rw-r--r--. 1 root root 0 7月 19 08:58 2.txt
2.删除文件
[root@haha t1]# rm -rf 1.txt /t1/2.txt
[root@haha t1]# ll
总用量 0
3.查看文件
查看文件是否存在
[root@haha t1]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 19 09:04 1.txt
[root@haha t1]# ll 3.txt
ls: 无法访问3.txt: 没有那个文件或目录
----------------------------------------------------------------------------------
查看文件内容 【cat】
【【【 cat + 文件路径 】】】
[root@haha t1]# cat 1.txt
wwww
【【【 cat + -n + 文件路径 】】】
[root@haha t1]# cat -n 1.txt //查看行号 【-n】
1 wwww
【【【 cat + -E + 文件路径 】】】
[root@haha t1]# cat -E 1.txt //在文件每行末尾加$ (验证每行是否有空格) 【-E】
w $
p$
ww ww$
$
$
$
$
$
$
$
$
【【【 cat + -b + 文件路径 】】】
[root@haha t1]# cat -b 1.txt //查看文件时除了空行,其余显示行号【-b】
1 w
2 p
3 ww ww
5
4 111
【【【 cat + -s + 文件路径 】】】
[root@haha t1]# cat -s 1.txt //当文件有连续的空行时,会只显示一行空行(方便阅读)【-s】
w
p
ww ww
111
【【【 cat + -A + 文件路径 】】】 //显示换行符
----------------------------------------------------------------------------------
查看文件最近记录【tail】
【【【 tail + -行数 + 文件路径 】】】
[root@haha t1]# tail -10 /var/log/secure //查看文件最近10行
Jul 18 21:36:12 haha sshd[2051]: Accepted password for root from 10.0.0.1 port 8188 ssh2
Jul 18 21:36:12 haha sshd[2051]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 19 08:15:16 haha polkitd[921]: Loading rules from directory /etc/polkit-1/rules.d
Jul 19 08:15:16 haha polkitd[921]: Loading rules from directory /usr/share/polkit-1/rules.d
Jul 19 08:15:16 haha polkitd[921]: Finished loading, compiling and executing 2 rules
Jul 19 08:15:16 haha polkitd[921]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Jul 19 08:15:23 haha sshd[1343]: Server listening on 0.0.0.0 port 22.
Jul 19 08:15:23 haha sshd[1343]: Server listening on :: port 22.
Jul 19 08:18:24 haha sshd[1600]: Accepted password for root from 10.0.0.1 port 9978 ssh2
Jul 19 08:18:25 haha sshd[1600]: pam_unix(sshd:session): session opened for user root by (uid=0)
----------------------------------------------------------------------------------
tail监控文件变化 【-f】
【【【 tail + -f + 文件路径 】】】
[root@haha t1]# tail -f /var/log/secure
----------------------------------------------------------------------------------
查看历史最久文件 【head】(从上往下看)
【【【 head + -行数 + 文件路径 】】】
[root@haha t1]# head -10 /var/log/secure //查看最老的10条记录
Jul 17 10:55:07 haha polkitd[943]: Loading rules from directory /etc/polkit-1/rules.d
Jul 17 10:55:07 haha polkitd[943]: Loading rules from directory /usr/share/polkit-1/rules.d
Jul 17 10:55:07 haha polkitd[943]: Finished loading, compiling and executing 2 rules
Jul 17 10:55:07 haha polkitd[943]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Jul 17 10:55:11 haha sshd[1414]: Server listening on 0.0.0.0 port 22.
Jul 17 10:55:11 haha sshd[1414]: Server listening on :: port 22.
Jul 17 10:55:16 haha login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Jul 17 10:55:16 haha login: ROOT LOGIN ON tty1
Jul 17 11:06:11 haha sshd[1722]: Accepted password for root from 10.0.0.1 port 63638 ssh2
Jul 17 11:06:11 haha sshd[1722]: pam_unix(sshd:session): session opened for user root by (uid=0)
----------------------------------------------------------------------------------
查看大文件
more 文件名 //分页查看大文件
f(下)/b(上) //上下翻页
less 文件名 //
j(下)/k(上) //滚轮上下翻页
f/b //上下翻页
也可以上下左右箭头进行滑动
less比more查看更加灵活
4.编辑文件
echo 方式编辑文件(没有文件会自动创建文件)
【【【 echo + 文本内容 + > + 文件路径 】】】 覆盖写入
[root@haha t1]# ll
总用量 0
[root@haha t1]# echo "娃哈哈" > 1.txt
[root@haha t1]# ll
总用量 4
-rw-r--r--. 1 root root 10 7月 19 10:20 1.txt
[root@haha t1]# cat 1.txt
娃哈哈
【【【 echo + 文本内容 + >> + 文件路径 】】】 追加写入
[root@haha t1]# echo "哈哈哇" >> 1.txt
[root@haha t1]# cat 1.txt
娃哈哈
哈哈哇
**标准输出重定向**
> //覆盖写入
>> //追加写入
清空文件
> 文件名 //给文件覆盖空
cat 方式编辑文件(没有文件会自动创建)
【【【 cat + > + 文件路径 + <<'EOF' >EOF 】】】 覆盖写入
[root@haha t1]# cat > 2.txt <<'EOF'
> 111
> 2
> 233
> 4556
> EOF
[root@haha t1]# cat 2.txt
111
2
233
4556
【【【 cat + >> + 文件路径 + <<'EOF' >EOF 】】】 追加写入
[root@haha t1]# cat >> 2.txt <<'EOF'
> 99999999
> EOF
[root@haha t1]# cat 2.txt
111
2
233
4556
99999999
二、vi/vim 编辑器
【【【 vim + 文件路径 】】】 //默认进入视图模式
模式一:视图模式
模式二:编辑模式
模式三:命令模式
------------------------ 视图模式 -----------------------------
i:进入编辑模式,在当前光标下插入
esc:返回视图模式
a:追加进入编辑模式,在当前光标后插入
A(shift+a):追加光标所在行尾进入编辑模式
o:在当前行的下一行插入空行,进入编辑模式
O(shift+o):在当前行的上一行插入空行,进入编辑模式
u:返回上一步操作
ctrl + r:返回下一步操作
C(shift+c):删除光标所在位置到行尾,进入编辑模式
cc :清空当前行(保留当前行),进入编辑模式
dd :删除当前行,不进入编辑模式
数字+dd :连续删除行 例:2dd //连续删除两行
d1G :删除光标所在位置到文件头
dG :删除光标所在位置到文件末尾
^ :光标到行首
$ :光标到行尾
d^ :删除光标所在位置到行首,不进入编辑模式
d$ :删除光标所在位置到行尾,不进入编辑模式
yy :复制当前行
数字+yy :复制光标下的几行 例:3yy //复制光标下的3行
p :粘贴yy复制的行
数字+p :粘贴yy复制的行几次 例:3p //粘贴yy复制的行3次
gg:光标前往文件首行
G(shift + g):光标前往文件尾行
数字+gg/数字+G :光标前往文件第几行 例:10gg/10G //光标前往文件第10行
------------------------------------------------------------------
------------------------ 编辑模式 ---------------------------------
无需多说----【打字】
------------------------------------------------------------------
------------------------ 命令模式 ---------------------------------
/+搜索内容 : 查找相关内容 例:/root //查找,高亮文件内的root字符串 (视图模式下输入)
n:向下查找
N:向上查找
/+搜索内容+\c : 查找相关内容不区分大小写 例: /a\c //查找,高亮文件内的a和A字符串
:noh :取消高亮显示
:set nu :显示行号
:wq :保存并退出
:wq! :强制保存并退出
:q :退出不保存
:q :强制退出不保存
:set paste :保持原格式粘贴
s#原本内容#要替换的内容#g
:s###g或s///g或s@@@g :替换文件
:行号,行号s###g //指定行号(区间)替换文件内容
例:
:10,12s#var#hhh#g //替换10到12行var更改成hhh
:%s###g :将整个文件替换
例:
:%S/var/hhh/g //将整个文件中的var替换成hhh
拓展:
不区分大小写替换文件内容
1.txt原文件内容:
echo
Echo
sed -ri 's#echo|Echo#aaa#g' 1.txt (涉及正则表达式)
1.txt文件替换后内容:
aaa
aaa
vim快速到指定行数
【【【vim + +行数 + 文件路径】】】
例:
vim +100 /etc/sudoers //就会打开sudoers文件,到里面的100行
三、小问题
当文件异常退出时,再次编辑文件会无法编辑。
解决办法:
1.继续vi/vim编辑这个文件,按R(返回上次编辑内容)或D(删除上次编辑的内容)
2.直接删除本地的隐藏文件.swp(这个是编辑时的临时文件,保存后会覆盖原文件)
03-完