RHEL8.0快速入门系列笔记–RHEL文件操作管理(四)
重要:Linux下,一切皆文件!
说在前面
1.接下来所有的命令需要在一个载体上执行,这个载体叫做终端。
2.终端上所有命令都要一个东西翻译解释一下,计算机才能了解执行。
3.这个翻译杰斯的东西叫Shell解释器,Redhat和CentOS默认shell解释器叫bash
4.既然需要bash帮忙翻译解释先关命令,那么你所敲的命令必须符合它的语法,否则报错给你看。
命令 [可选项] 参数
[root@localhost ~]# ls -l /root
命令:整条shell命令的主体
选项:会影响或微调命令的行为,通常以-,--开头
参数:命令作用的对象
1、判断文件类型(file)
- 常见文件类型
文件类型 | 描述 |
---|---|
字符设备(C) | 所有输入输出的设备,如:键盘、鼠标、显示器、打印机 |
块设备(B) | 所有存储设备称之为块设备文件,如:软盘、磁盘、光盘、U盘、磁带、光驱等 |
软连接文件(l) | 类似于windows下的快捷方式 |
目录文件(d) | 相当于windows下的文件夹 |
普通文件(f或-) | 类似于windows下的记事本、word |
管道文件(p) | 简单理解为程序或进程之间通讯的一种方式 |
套接字文件(s) | 简单理解为程序或进程之间通讯的一种方式 |
- 用file命令来判断文件类型
[root@localhost~]# file /dev/tty1
/dev/tty1:character special 字符设备
[root@localhost~]# file /bin/sh
/bin/sh: symbolic link to bash 软连接文件
2、列出目录内容(ls)
常见选项
-a all,查看目录下的所有文件,包括隐藏文件
-l 长列表显示,列出显示内容的详细信息
-h 以人性化方式显示出来
-d 只列出目录名,不列出其他内容
-t 按修改时间排序
-r 逆序排列
-S 按文件的大小排序
-i 显示文件的indo号(索引号)
-R 递归列出目录内容
-m 用逗号分隔显示内容
3、创建目录(mkdir)
常见选项
-p 级联创建
[root@redhat~]# mkdir /test/ 在根目录下创建test目录
[root@redhat~]# mkdir ./test/ 在当前目录创建test目录
[root@redhat~]# mkdir -p /test/yunwei/redhat
说明:如果创建的目录的上一级目录不存在,就要加-p参数,-p在前面和后面都一样
4、创建文件(touch)
注意:Linux下文件的命名规则
1.文件名严格区分大小写
2.文件名不能包含特殊符号,如(/或*)
3.文件名最多可达255个字符
- 创建一个新的空文件(目标文件不存在)
准备环境,删除/tmp目录下的所有文件
[root@localhost~]# rm -f /tmp/*
[root@localhost~]# touch /tmp/file1 在/tmp下创建file1文件
- 修改文件的时间
[root@redhat~]# stat file1 查看文件状态信息
文件:file1/
大小:6 块:0 IO 块:4096 目录
设备:fd00h/64768d Inode:17562020 硬链接:2
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2020-02-02 22:26:39.133291883 +0800
最近更改:2020-02-02 22:26:39.133291883 +0800
最近改动:2020-02-02 22:26:39.133291883 +0800
[root@redhat~]# touch -m file1 -t "202002021111" 修改文件访问时间
[root@redhat~]# touch -d "202002021111" 访问时间修改时间同时修改
5、查看文件内容
- cat命令:一般查看小文件,从第一行到最后一行列出来。
常见选项:
-n: 显示行号
-A: 显示控制字符,如换行符,制表符等 - tac命令:一般查看小文件,从最后一行到第一行列出来。
- more和less命令:一般查看大文件,q退出查看,可以搜索,建议less命令
- head命令:默认查看文件前10行,head -n 15或head -15表示查看前15行
- tail命令:默认查看文件后10行,tail -n 15或tail -15表示查看后15行,-f表示动态查看
- ldd命令:一般用来查看二进制的命令文件。
6、拷贝文件(cp)
注意:本地文件拷贝
1)用法
cp [选项] 需要拷贝的文件 拷贝到哪里
2) 常用选项
选项 | 含义 |
---|---|
-r | 递归拷贝目录 |
-v | 显示拷贝过程信息 |
-p | 文件属性信息一起拷贝 |
-a | 递归拷贝文件,包括目录及文件属性信息 |
7、移动或重命名文件(mv)
移动文件用法(不同路径下)
# mv 需要移动的文件 移动到新的路径下
重命令用法(在同一路径下)
# mv 原来文件名字 新文件名字
8、删除文件(rm)
常用选项
-r 递归删除一般用于删除目录
-f 直接删除 不提示
扩展补充
一、Linux下如何获取帮助(help)
1、简约求帮助(help)
help命令:知道该命令的含义,相关参数不知道可以使用help
[1] 内部命令
help 命令
[2] 外部命令
命令 --help
[3] 如何判断一个命令是内部命令还是外部命令
type 命令
2、详细求帮助(man)
man 命令
3、相关官方文档
http://httpd.apache.org/docs/2.4/
http://nginx.org
http://tengine.taobao.org/nginx_docs/cn/docs/
https://www.zabbix.com/documentation/3.4/zh/manual
https://www.linuxidc.com
二、Bash的标准输入输出
1、名词解释
- 标准输入(stdin):键盘上的输入 文件描述符—>0
- 标准输出(stdout):屏幕上正确的输出 文件描述符—>1
- 标准错误(stderr):屏幕上错误的输出 文件描述符—>2
2、相关符号
> :标准输出重定向,覆盖重定向,1>或>标准输出重定向,2>标准错误重定向
>>:追加重定向,1>>标准输出追加,2>>标准错误追加
<:标准输入
&>:标准输出标准错误重定向
3、举例说明
[1] 环境准备
1.创建1.sh脚本文件
[root@redhat~]# echo -e 'hostname \nhello' > 1.sh
[root@redhat~]# cat 1.sh
hostname
hello
2.给1.sh赋予执行权限
[root@redhat~]# chmod +x 1.sh
3.执行脚本文件
[root@redhat~]# ./1.sh
redhat
./1.sh:行2:hello:未找到命令
[2] 将标准输出(屏幕上的正确结果)重定向到/tmp/1.log文件中
[root@redhat~]# ./1.sh > /tmp/1.log
[3]将标准错误(屏幕身上错误结果)重定向到/tmp/1.log
[root@redhat~]# ./1.sh 2> /tmp/1.log
[3]将标准输出和标准错误一起重定向到/tmp/2.log
[root@redhat~]# ./1.sh &> /tmp/2.log
[4] 标准输出追加重定向
[root@redhat~]# ./1.sh >> /tmp/2.log
[root@redhat~]#./1.sh > /dev/null 2>&1 将标准输出标准错误扔掉
/dev/null Linux系统下特殊的设备文件,空设备,类似黑洞。
4.echo命令
echo会将输入的字符串送往标准输出,并在最后加上换行符。可以理解为打印字符串。
创建选项:
-n:不输出最后的换行符“\n”
-e:解释转移字符(字符串中出现\n、\t等特殊字符,则特别加以处理,而不会将它当成一般字符输出)
举例说明
[root@redhat ~]# echo hello world 打印hello world
[root@redhat ~]# echo aaa > file1 将aaaa重定向到file1中
总结:
1.echo表示打印字符串,默认将字符创送往标准输出;默认会打印一个换行符
2.echo可以结合>或者>>符号来使用,进行文件的创建或内容追加