Linux文件操作(linux文件操作命令)
sinye56 2024-11-13 12:35 11 浏览 0 评论
学习脑图如下:
一,文件创建
touch
用法:touch [选项] 文件
-a 只更改访问时间
-d, --date=字符串 使用指定字符串表示时间而非当前时间
-m 只更改修改时间
-r, --reference=文件 使用指定文件的时间属性而非当前时间
[root@jiangfeng tmp]# touch 20190707
[root@jiangfeng tmp]# stat 20190707
File: "20190707"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: 803h/2051d Inode: 261898 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-07 17:48:49.393662578 +0800
Modify: 2019-07-07 17:48:49.393662578 +0800
Change: 2019-07-07 17:48:49.393662578 +0800
[root@jiangfeng tmp]# touch -a 20190707 -t 201810101010
[root@jiangfeng tmp]# touch -m 20190707 -t 201901010101
[root@jiangfeng tmp]# stat 20190707
File: "20190707"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: 803h/2051d Inode: 261898 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-10-10 10:10:00.000000000 +0800
Modify: 2019-01-01 01:01:00.000000000 +0800
Change: 2019-07-07 17:52:31.807663461 +0800
[root@jiangfeng tmp]# ll
总用量 0
-rw-r--r--. 1 root root 0 1月 1 2019 20190707
-rw-------. 1 root root 0 7月 6 23:16 yum.log
注:stat命令为查看文件的详细信息;
ll命令为’ls –l’的缩写,这里查看文件的日期为文件的修改信息。
[root@jiangfeng tmp]# touch jiangfeng
[root@jiangfeng tmp]# touch -d '2018-12-12 12:00' jiangfeng
[root@jiangfeng tmp]# stat jiangfeng
File: "jiangfeng"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: 803h/2051d Inode: 266037 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-12-12 12:00:00.000000000 +0800
Modify: 2018-12-12 12:00:00.000000000 +0800
Change: 2019-07-07 18:00:58.526669190 +0800
注:-d选项为修改文件的访问时间和修改时间
二,查看文件内容
1.cat命令
格式:cat –operation file
-n:显示行号
-A:显示控制字符,如换行符,制表符等( linux $ 和 Windows ^M$ )
2.tac 命令
一般查看小文件,从最后一行到第一行列出来
3.more和less命令
一般查看大文件,q退出查看,可以搜索,建议less命令
4.head 命令
默认查看文件前10行, head -n 15或head -15 表示查看前15行
5.tail命令
默认查看文件后10行, tail -n 15或tail -15 表示查看后15行; -f 表示动态查看
6.ldd命令
一般用来查看二进制的命令文件
[root@jiangfeng tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
……
tcpdump:x:72:72::/:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
[root@jiangfeng tmp]# tail -2 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
[root@jiangfeng tmp]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@jiangfeng tmp]# ldd /bin/vi
linux-vdso.so.1 => (0x00007fff355d1000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00000032e2a00000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000032e3200000)
libacl.so.1 => /lib64/libacl.so.1 (0x00000032e8e00000)
libc.so.6 => /lib64/libc.so.6 (0x00000032e1200000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000032e0e00000)
/lib64/ld-linux-x86-64.so.2 (0x00000032e0a00000)
libattr.so.1 => /lib64/libattr.so.1 (0x00000032e3600000)
三,文件的拷贝、移动、重命名、删除
1.cp(本地文件拷贝)
cp -operation 需要拷贝的文件 拷贝后的位置
-a 递归拷贝文件,包括目录及文件属性信息
-r 拷贝目录
-p 拷贝文件包含文件的属性信息
-v 显示拷贝过程信息
[root@jiangfeng tmp]# cp -a /tmp/ /root/
[root@jiangfeng tmp]# ls /root/
anaconda-ks.cfg install.log install.log.syslog tmp
2.mv(移动或重命名文件)
1)移动文件用法(不同路径下)
mv 需要移动的文件 移动到新的路径下
2)重命名用法(相同路径下)
mv 原来文件的名字 新文件的名字
[root@jiangfeng tmp]# mv /root/file1 /tmp/ 移动/root/file1文件到/tmp目录下
[root@jiangfeng tmp]# ls
20190707 file1 jiangfeng yum.log
[root@jiangfeng tmp]# mv file1 test1 将/tmp目录下的file1文件重命名成test1
[root@jiangfeng tmp]# ls
20190707 jiangfeng test1 yum.log
3.rm(删除命令)
用法:rm –operation file(directory)
-r 递归删除,一般用于删除目录
-f 直接删除,不提示
四,文件查找
1.查找命令
1)which:找出命令的路径
2)whereis:找出命令的路径以及文档手册信息
[root@jiangfeng tmp]# which df
/bin/df
[root@jiangfeng tmp]# whereis df
df: /bin/df /usr/share/man/man1/df.1.gz /usr/share/man/man1p/df.1p.gz
2.文件查找(find)
Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find pathname -options [-print -exec -ok]
参数
- pathname find命令查找的目录路径。"~"代表了你的$HOME目录。
- -print find命令对匹配的文件输出到标准输出。
- -exec find命令对匹配的文件执行该参数所给出的shell命令。
- -ok 和- exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的 shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
常用选项
-name 按照文件名查找文件。
-iname 'FILENAME':文件名匹配不区分大小写
-perm 按照文件权限来查找文件。
-user 按照文件属主来查找文件。
-type查找某一类型的文件,诸如:
- b - 块设备文件。
- d - 目录。
- c - 字符设备文件。
- p - 管道文件。
- l - 符号链接文件。
- f - 普通文件。
-mitime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。Find命令还有-atime和-ctime选项。
-size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-prune 使用这一选项可以使find命令不在当前的目录中查找,如果同时使用了-depth选项,那么-prune选项将会被忽略。
-group 按照文件所属的组来查找文件。
-uid UID:根据UID查找
-gid GID:根据GID查找
-nogroup 查找无有效所属组的文件
-nouser 无效属主
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-depth 查找文件时,首先查找当前目录的文件,然后再其子目录中查找。
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount 查找文件时不跨越文件系统mount点。
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁盘带设备中。
组合条件:
-a: -o: -not:
示例:
使用name选项
find ~ -name "*.txt" -print
find . -name "[A-Z]*" -print
find . -name "[a-z][a-z][0-9][0-9]txt" -print
使用perm选项
find . -prem 755 -print
忽略某个目录
find /etc -name "/etc/yum" -prune -o -print
使用user和nouser选项
find / -user test -print
find / -nouser -print
使用group和nogroup选项
find /home -group "test" -print
按照更改时间查找文件
find / -mtime -5 -print #5天以内
find / -mtime +3 -print #3天之前
find /etc -type d -print #查找所有目录
find . ! -type d -print #查找除目录外的文件
使用size选项
find / -size +1M -print
find / -size 100c -print 100字节大小
使用depth
find /etc -name "*.conf" -depth -print #先匹配所有文件,再在子目录中查找
使用mount选项
find / -name "*.XC" -mount -print #在当前的文件系统中查找文件。
使用exec或ok来执行shell命令
shell
find /home/test -mtime +5 -exec rm -rf {} \;
find /home/test -mtime 0 -exec cp -a {} /tmp/ \;
xargs选项
与-exec类似,xargs命令只有一个进程
find / -type f -print | xargs file
查找/var目录下属主为root并且属组为mail的所有文件
find /var -user root -a -group mail
2.查找/usr目录下不属于root,bin,或student的文件
find /usr -not \( -user root -o -user bin -a -user student \)
3.查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件
find /etc -mtime -7 -a -not \( -user root -o -user student \)
4.查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组修改为root
find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root.root {} \;
5.查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中
find /etc -size +1M >> /tmp/etc.largefiles
6.查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息
find /etc -not -perm /222 -ls
五,文件打包压缩
1、常见的压缩与解压缩工具
zip :兼容类unix与windows,可以压缩多个文件或目录。 unzip解压缩
gzip :压缩单个文件,压缩率相对低,cpu开销相对低。 gunzip解压缩
bzip2 :压缩单个文件,压缩率相对高,cpu开销相对高。 bunzip2解压缩
xz :压缩单个文件,压缩率高,压缩时间相对长,解压速度快,cpu开销相对高。 unxz解压缩
2、工具的用法
① zip工具
选项:
-r 递归压缩,压缩目录
压缩:
zip 压缩后的文件 需要压缩的文件
zip /home/backup_config.zip /tmp/file1 /etc/hosts
注意:zip压缩默认压缩后的格式就是.zip;当然也可以加后缀.zip,一般都加上
解压缩:
-d 指定解压缩路径
unzip /home/backup_config.zip 解压到当前目录
unzip /home/backup_config.zip -d /tmp/test 解压到指定位置
② gzip工具
选项:
-d 解压缩
-r 递归压缩(目录)
压缩:
gzip /tmp/dir1/file1 一次压缩一个文件
gzip file1.log file2.log 一次性压缩多个文件,一个一个压缩。
解压缩:
gunzip 需要解压的文件
或者
gzip -d 需要解压的文件
gunzip file* 一次解压多个文件,*代表通配符;file*表示以file开头所有文件
③ bzip2工具
选项:
-d 解压缩
压缩:
bzip2 /home/backup_config.zip
解压缩:
bunzip2 backup_config.zip.bz2
或者
bzip2 -d backup_config.zip.bz2
④ xz工具
选项:
-z 压缩,默认
-d 解压缩 或者 unxz
压缩:
xz 文件名
解压缩:
unxz 文件名
或者
xz -d 文件名
3.打包工具
tar 命令:可以将多个文件打包成一个并且压缩,很常用。
选项:
-c 打包
-z 调用gzip工具压缩
-j 调用bzip2工具压缩
-J 调用xz工具压缩
-v 显示详细信息
-f 指定包名
-x 解压
-C 指定解压路径
-r 读取追加文件
-t 列出或查看tar包内容
说明:以上选项前面的横岗"-"可以省略。
用法:
tar 选项 打包压缩后的文件 需要打包压缩的文件
zip 选项 压缩后的文件 需要压缩的文件
注意: 1.如果已经将文件压缩打包,那么就不能追加;如果只是打包就可以追加。 2.参数顺序需要注意,最好把-f参数放到所有参数后面。 3.当出现以下提示时,加一个大P参数解决。 tar: Removing leading `/' from member names
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)