Linux-----文件处理文件

Linux文件系统的层次结构

Linux-----文件处理文件_第1张图片
文件系统的最顶层是由根目录开始的,系统使用“/”来表示根目录,在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含(子)目录或文件。注意,目录名或文件名都是区分大小写的。完整的目录或文件路径是由一连串的目录名所组成的,其中每一个目录由“/”来分隔。在文件系统中,有两个特殊的目录,一个是用户所在的工作目录,即当前目录,可用一个点“.”表示;另一个是当前目录的上一层目录,也叫父目录,用两个点“…”表示。

Linux文件(目录)命名规则

1.在命名时应避免使用 <、>、?、* 和非打印字符等。如果一个文件名中包含了特殊字符,那么在访问这个文件时就需要使用引号将文件名括起来。
2.目录名或文件名的长度不能超过 255 个字符。
3.目录名或文件名是区分大小写。
4.Linux 操作系统没有文件的扩展名。
Linux 系统中常见硬件设备的文件名:
Linux-----文件处理文件_第2张图片

文件处理基本命令

[root@localhost ~]# cd [相对路径或绝对路径]
cd ~:代表当前登录用户的主目录
cd ~用户名:表示切换至指定用户的主目录
cd -:代表上次所在的目录
cd .:代表当前目录
cd …:代表上级目录

[root@localhost ~]# ls [选项] 目录名称
ls -a:显示所有文件,包括隐藏文件
ls -l:使用长格式列出文件和目录信息
ls -d:查看目录的属性,而不列出目录内的文件数据
ls -h:以易读的方式显示文件或目录的大小
ls -i:文件的唯一标识符

[root@localhost ~]# pwd
pwd:查看当前的工作目录

[root@localhost ~]# mkdir [-mp] 目录名
mkdir:当前目录下创建一个目录
mkdir -p:递归创建目录
mkdir -m:自定义目录的权限
mkdir -v:查看文件创建过程

[root@localhost ~]# mkdir test
[root@localhost ~]# mkdir -p test1/test2
[root@localhost ~]# mkdir -m 711 test3
[root@localhost ~]# ls -l

[root@localhost ~]# rmdir [-p] 目录名
remdir:删除一个空目录
remdir -p:递归删除一个空目录

[root@localhost ~]# touch [选项] 文件名
touch:创建一个文件
touch -a:只修改文件的访问时间
touch -c:仅修改文件的时间参数,文件不存在,不会建立新文件
touch -d:设定日期时间
touch -m:只修改文件的数据修改时间
touch -t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm
atime:访问时间
mtime:数据修改时间
ctime:状态修改时间

#修改文件的访问时间
[root@localhost ~]#touch test
[root@localhost ~]#ll --time=atime test
#修改atime、mtime和ctime
[root@localhost ~]#touch -d"2022-01-01 00:00" test
[root@localhost ~]#ll test;ll --time=atime test;ll --time=ctime test

软链接:类似于 Windows 系统中给文件创建快捷方式。
硬链接:文件的基本信息都存储在 inode 节点中,而硬链接指的就是给一个文件的 inode节点分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息,同步更新,不能跨分区,不能对目录使用。

[root@localhost ~]# ln [选项] 源文件 目标文件
ln:建立硬链接文件
ln -s:建立软链接文件
ln -f:如果目标文件存在,则删除目标文件后在建立软连接
注:软链接文件必须写成绝对路径

[root@localhost ~]#touch test
[root@localhost ~]#ln test
[root@localhost ~]#touch test1
[root@localhost ~]#ln -s test1

[root@localhost ~]#cp[选项]源文件 目标文件
cp:复制一个文件
cp -r:递归复制,复制一个目录
cp -p:复制后目标文件保留文件的属性
cp -i:询问,如果目标文件已经存在,则会询问是否覆盖
cp -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件
cp -s:把目标文件建立为源文件的软连接文件,而不是复制源文件
cp -d:如果源文件为软连接,则复制出的目标文件也是软连接(硬链无效)
cp -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用

[root@localhost ~]#touch test
#把源文件复制到/tmp/目录下
[root@localhost ~]#cp test /tmp/
#复制改名
[root@localhost ~]#cp test /tmp/tst
#目标位置有同名文件,所以会提示是否覆盖
[root@localhost ~]# cp test /tmp/
cp:是否覆盖"/tmp/test"?y

[root@localhost ~]# rm[选项] 文件或目录
rm -f:强制删除,不在询问
rm -i:删除文件之前,系统会给出提示信息
rm -r:递归删除,主要用于删除目录,包括子目录和文件
注意:rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复。

#删除前会询问是否删除
[root@localhost ~]# touch text
[root@localhost ~]# rm text
rm:是否删除普通空文件"text"?y

[root@localhost ~]# mv 【选项】 源文件 目标文件
mv -f:直接强制覆盖,不询问
mv -i:如果文件存在,则询问是否覆盖
mv -n:如果文件已经存在,则不会覆盖移动,也不询问用户
mv -v:显示文件或目录移动的过程
mv -u:如果目标文件存在,进行对比,源文件更新,对目标文件进行升级
如果源文件和目标文件在同一目录中,那就是改名。

[root@localhost ~]# mv text /tmp
#移动之后,源文件会被删除,类似剪切
[root@localhost ~]# mkdir movie
[root@localhost ~]# mv movie /tmp

cat:游览一些短文件
cat -n:查看文件的前n行
tac:反向显示
more:长文件分页游览
less:长文件分页游览
less |内容:查看文件相应的内容
head -n:查看文件内容的前n行
tail -n:查肯文件内容的后n行
tail -f:动态显示一个文件

[root@localhost ~]#touch jun
[root@localhost ~]#cat -5 jun
[root@localhost ~]#more jun
[root@localhost ~]#tac jun
[root@localhost ~]#head -3 jun
[root@localhost ~]#tail -f jun

在文件中搜索与字符串匹配的行并输出
gerp[选项] 字符串[文件…]
grep -i:忽略字符大小写的差别
grep -n:为在显示符合的字符串之前,标出改行的行号
grep -v:排除查找,文件内容查找

[root@localhost ~]#cat>test //建立一个文件
[root@localhost ~]#grep 'hello' test

sort[选项][文件列表]
把所有指定文件的行一起进行排序,结果写到标准输出,有排序与合并功能
sort -r:按照每行第一个字符进行反向排序
sort -r -o file1 file2:对file2文件每行第一个字符进行反向排序并把结果保存到file1中
sort -n:按照每行第一个字段为关键字进行数值排序
sort -k 3:对文件按照每行第三个字段为关键字进行排序

chmod [{ugoa}{±=}{rwx}][文件目录]
rwx rw r = 7 6 4
chmod 765 文件:给文件的权限为rwxrw-r-x
chmod -R:递归修改权限
文件中的rwx:r:可以执行cat/more/less/head/tail(可以查看文件内容)
w:vim(修改文件内容)
x:script command(可执行该文件)
目录中的rwx:r:ls(读取)对文件读取,对目录游览
w:touch/mkdir/rmdir/rm(对文件新增修改,对目录删除、移动目录内文件的权限)
x:cd(对文件执行文件,对目录该用户具有进入目录的权限)
-:没有权限,不允许对文件进行读取、修改及执行
特殊权限:用户置位s(SUID)
组置位s (SGID)
粘着置位 t (Sticky)
s属性:在文件执行时把进程的属主或组ID置为该文件的文件属主:
u+r : 可以设置文件的SUID
g+s:可以设置文件的SGID
t :保存程序的文本到交换设备上。

[root@localhost ~]#touch jun
[root@localhost ~]#chmod 765 jun

chown[用户][文件或目录]改变所有者
chgrp[用户组][文件或目录]
例如显示:0022
0:特殊权限;显示:022----------实际:755
每个用户都有自己的宿主目录,通常在/home目录下,宿主目录默认权限:rwx-
特殊权限:SUID、GUID、sticky的表示:
rwsrw-r- 表示有SUID标志
rwxrwsrwr-表示有GUID标志
rwxrw-rwt 表示有sticky标志
数字形式修改权限:如果要加上特殊权限,就必须用4位数字才能表示,SUID、GUID、sticky的八进制位分别是:4000、2000、1000
字母形式修改权限:SUID、GUID、sticky的字母形式分别是:u+s、g+s、o+t;删除标记是u-s、g-s、o-t

[root@localhost ~]#ls –I my*
[root@localhost ~]#chmod 2755 myfile1
[root@localhost ~]#chmod 4777 myfile2

程序的t属性:粘着位告诉系统在程序完成后在内存中保存一份运行程序的备份。如该程序常用,可为系统节省时间,不用每次从磁盘加载到内存
目录的s属性:使得在该目录下创建的任何文件及目录属于该目录所拥有的组
目录的t属性:设置了目录的t属性后,只有该目录的所有者及root才能删除该目录

su命令,将用户进行切换
在这里插入图片描述
文件默认权限:创建时所拥有的权限,在Linux通过设置umask掩码来指定
umask -S:以rwx形式显示新建文件缺省权限
默认状态下,umask=0022
文件创建时的默认权限=0666-umask,即默认状态下,一个新建文件的权限为:0644
目录创建时的默认权限=0777-umask,即默认状态下,一个新建目录的权限为:0755

find[搜索路径][选项][表达式、搜索关键字]
*:区配任意字符
?:匹配单个字符
-a:两个条件满足
-o:满足一个条件
-exec/-ok:对搜索结果进行操作,-ok询问确认

find -name(文件名查找)
find -iname(文件名查找,不区分大小写)
find -size:按照文件的大小来查找(+:大于、-:小于 和 =:等于)
find -user/-group:根据所有者/所属组进行查找
find -atime:访问时间
find -type:根据文件的属性 f(文件)、d(目录)和l(软链接)
find -inum:根据节点查找

[root@localhost ~]#find /var -name *.sh
[root@localhost ~]#find /home -user root -a -name *.sh
[root@localhost ~]#find /tmp -perm 755 //查找在/tmp目录下权限时755的文件
[root@localhost ~]#find /tmp -perm -222 //查找所有类别用户都满足写权限的文件。即777-222=555
[root@localhost ~]#find /type -d -a -time +3
[root@localhost ~]#find /tmp -size +2M
[root@localhost ~]#find /-name *.conf -a -atime -5 |grep mysql //查找最近5天内访问过的,以conf为扩展名的配置文件,且为包含关键字mysql文件名的所有文件

借助搜索关键字查找文件或目录
locate[选项]搜索关键字
updatedb:更新文件资料库(在tmp下的文件找不到)
locate与find的区别
· locate速度远胜find
· find搜索整个目录,locate搜索数据库/var/lib/locatedb
· 即便文件存在,数据库中没有记录,locate便搜索不到

which命令:查看命令所在路径
where is:找到文件路径与帮助文档所在的位置
man 命令/配置文件 (不需要写绝对路径)查看命令配置文件手册(info与man一样)
whatis 命令:简短的介绍命令
aprops 配置文件:获得配置文件相关信息
命令 --help:帮助命令
help 文件名称:帮助文档

[root@localhost ~]#which ls

文件压缩与解压
1、gzip:gzip [文件],后缀名.gz
不压缩目录,不保留原文件
解压 .gz文件:gunzip或者gzip -d 文件
2、tar:tar 选项[-zcvf] [压缩后文件名] [目录] ,后缀名.tar.gz
-c:打包
-x:解包
-v:显示详细信息
-f:指定文件名
-j:用bzip2 压缩或解压
-p:保留原始的权限与属性
-z:打包同时压缩,用gzip压缩或解压
3、zip:zip 选项[-r] [压缩后文件名] [文件或目录],后缀名.zip
-r:压缩目录
解压文件:unzip[压缩文件]
4、 bzip2 选项 [-k] [文件] ,后缀名.bz2
解压缩:bunzip2 选项 [-k] [文件]
-k 产生压缩文件后保留原文件

#gzip/gunzip
[root@localhost ~]#touch test1
[root@localhost ~]#cp /etc/services /test1
[root@localhost ~]#gzip test1
[root@localhost ~]#gunzip test1
#tar
[root@localhost ~]#mkdir test2
[root@localhost ~]#tar -zcvf test2.tar test2
[root@localhost ~]#tar -xcvf test2.tar
#zip
[root@localhost ~]#mkdir test3
[root@localhost ~]#zip -r test3.zip test3
[root@localhost ~]#unzip test3
#bzip2
[root@localhost ~]#mddir test4
[root@localhost ~]#bzip2 -k test4.bz2
[root@localhost ~]#bunzip -k test4.bz2

1、write [用户名]:给指定用户发用消息,以Ctrl+D保存,在同一服务器下wall [message]:给所有用户发送广播消息
2、ping -c IP地址:测试网络连通性,-c:表示制定发送次数
3、fconfig:查看和设置网卡信息
4、mail [用户名]:查看发送电子邮件
5、last:列出过去与目前登入系统的用户信息
6、lastlog:查看所有用户上次登录的时间
7、last log -u(ID):查看某特定用户上次登录的时间
8、traceroute:显示数据包到主机间的路径
9、netstat [选项]:显示网络相关信息
-t:TCP协议
-u:UDP协议
-l:监听
-r:路由
-n:显示IP地址和端口号
10、mount [-t 文件系统] 设备文件名 挂载点;umount [文件系统]

#本机监听端口
[root@localhost ~]#netstat -tlm 
#本机网络所有连接
[root@localhost ~]#netstat -an
#查看路由信息
[root@localhost ~]#netstat -rn
#挂载
[root@localhost ~]#mount -t iso9660 /dev/sr0 /mnt/cdrom
[root@localhost ~]#cd /mnt/cdrom

1、shutdown [选项] 时间
-h:关机
-r:重启
-c:取消前一个关机命令
其他关机命令:halt、poweroff、init 0
2、重启:reboot、init 6
3、logout 退出登录
4、init 0:关机
init 1:单用户(启动最小的核心程序)
init 2:不完全多用户,不含NFS(Network File Server)服务(文件共享)
init 3:完全多用户
init 4:未分配
init 5:图像界面
init 6:重启

[root@localhost ~]#cat /etc/inittab
#切换运行级别
[root@localhost ~]#init 5
#查看运行级别
[root@localhost ~]#runlevel

查看计算机的CPU信息:#cat /proc/cpuinfo
查看计算机的DMA 信息:#cat /proc/dma
查看文件系统信息:#cat /proc/filesystems
查看主机中断信息:#cat /proc/interrupts
查看主机I/O端口信息:#cat /inports
查看计算机内存信息:#cat /proc/meminfo
查看Linux版本信息:#cat /proc/version
查看版卡信息:#cat /proc/pci
查看USB设备:#cat /proc/usb

你可能感兴趣的:(Linux基本应用,linux,服务器,运维)