目录:
- touch命令
- stat命令
- cp命令
- mv命令
- file命令
- rm命令
- alias命令
- ln命令
- cat、tac命令
- more、less命令
- hard、tail命令
- which命令
- whereis命令
- locate命令
- find命令
- 文件的压缩
- zip、unzip命令
- gzip、zcat命令
- bzip2、bzcat命令
- tar归档
- tar练习
touch命令
新建空文件或更新文件时间标记
格式:touch 文件名…
常用命令选项:
-a:改变文件的读取时间记录
-m:改变文件的修改时间记录
-r:使用参考文件的时间记录
-d:设定时间与日期
stat命令
:文件/文件系统的详细信息显示(可以查看到文件的读取时间、修改时间等)
Acess:内容读取时间
Modify:内容修改的时间
Change:属性(元数据)修改的时间
[root@rhel1 ~]# stat a
File: `a'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 41156620 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-02-27 23:05:34.124999274 +0800
Modify: 2019-02-27 23:05:34.124999274 +0800
Change: 2019-02-27 23:05:34.124999274 +0800
cp命令
用于复制文件或目录
格式: cp [选项] 源文件或目录… 目标文件或目录
-r:递归复制整个目录树
-a:复制时保留链接、文件属性,并递归的复制目录
mv命令
用于移动文件或目录
(注意:若目标位置与源位置相同,则相当于改名)
格式:mv [选项]… 源文件或目录 目标文件或目录
例:
把hosts复制到当前目录并改名为hosts.bak
mv /etc/hosts /etc/hosts.bak
file命令
用于查看文件类型
格式:file 文件名
[root@rhel1 ~]# file a1
a1: empty
[root@rhel1 ~]# file mysql
mysql: directory
[root@rhel1 ~]# file mysql-5.7.14-1.el6.x86_64.rpm-bundle.tar
mysql-5.7.14-1.el6.x86_64.rpm-bundle.tar: POSIX tar archive (GNU)
[root@rhel1 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
[root@rhel1 ~]# file /etc/passwd
/etc/passwd: ASCII text
rm命令
用于删除文件或目录
格式:rm [选项] 文件或目录
-f:强行删除文件或目录,不进行提醒
-r:递归删除整个目录树
通配符:
* 匹配0个或者多个字符
? 匹配1个字符
查看别名alias
命令优先级(别名>内部命令>外部命令)
[root@rhel1 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
删除别名:unalias 别名名称
ln创建软硬链接
- 硬链接
一个文件有多个不同的文件名
命令格式:ln 源文件… 链接文件
[root@rhel1 ~]# ln a1 a1.hard
[root@rhel1 ~]# ll
total 449772
-rw-r--r--. 2 root root 0 Feb 27 23:05 a1
-rw-r--r--. 2 root root 0 Feb 27 23:05 a1.hard
- 软链接
符号链接,表面上和硬链接相似
文件类型权限肯定是lrwxrwxrwx
命令格式: ln -s 源文件… 链接文件
补充:硬链接和软链接的比较
软链接:指向原始文件所在的路径,又称为符号链接
硬链接:指向原始文件对应的数据存储位置
不能为目录建立硬链接文件
硬链接与原始文件i必须位于同一分区(文件系统)中。
cat和tac
- cat命令
用于显示出文件的全部内容
格式: cat -n 文件名
-n:显示行号 - tac命令
从最后一行倒着显示出文件的全部内容,无-n选项
more命令、less命令
- more用于全屏方式分页显示文件内容 (看完最后一行自动退出)
交互操作方法:
- 按Enter键向下逐行翻滚
- 按空格键向下翻一屏、按b键向上翻一屏
- 按q退出
- less与more命令相同,但扩展功能更多(看完最后一行不会自动退出)
交互操作方法
- 与more命令基本相似,但个别操作会有些出入
- 【page down】【page up】上翻下翻页
head和tail命令
- head用于查看文件开头的一部分内容(默认为10行)
格式: head -n文件名
- tail用于查看文件结尾的少部分内容(默认为10行)
格式:
tail -n 文件名
tail -f 文件名(动态查看文件尾部=tailf)
补充:
tail命令高级用法:
格式:tial -n 数字 文件名
数字:数字前有 +(加号),从文件开头指定的单元 数开始输出;数字前有 -(减号),从文件末尾指定的单元 数开始输出;没有 +或 -,从文件末尾指定的单元 数开始输出。
例如:
tail -n +3 /etc/passwd 从第三行开始显示
tail -n -3 /etc/passwd 显示最后三行
head -n -3 /etc/passwd 不显示最后三行
head -n +3 /etc/passwd 显示前三行
which命令
用于查找可执行文件并显示所在的位置
--------搜索范围由PATH环境变量指定
格式:which 命令或程序名
whereis命令
用途:查找文件的路径、该文件的帮助文件路径,原理和which类似
格式:whereis 命令或程序名
locate命令
格式:locate 文件名
根据每天更新的数据库(/var/lib/mlocate)查找,速度块
不能找到自己新建的文件但会找到已经删除的文件
手动更新数据库updatedb
find命令
用途:用于查找文件或目录
格式:find [查找范围] [查找条件] [动作]
常用查找条件
-name:按文件名称查找
-size: 按文件大小查找
-user: 按文件属主查找
-type: 按文件类型查找
-perm :按文件权限查找
-mtime :按文件更改时间查找
-newer:按比某个文件更新的查找
格式1:find [查找范围] [查找条件] [动作]
特殊查找条件
-
-o :逻辑或,只要所给的条件中有一个满足,寻找条件就算满足
-
-not :逻辑非,在命令中可用“!”表示。该运算符表示查找不满足所给条件的文件
-
-a:逻辑与,系统默认是与,可不加,表示只有当所给的条件都满足时,寻找条件才算满足。
例:
[root@rhel1 ~]# find /boot -size +1024k -o -name “vmlinuz*”
/boot/initramfs-2.6.32-642.el6.x86_64.img
/boot/vmlinuz-2.6.32-642.el6.x86_64
/boot/System.map-2.6.32-642.el6.x86_64
/boot/initrd-2.6.32-642.el6.x86_64kdump.img
格式2:find /usr -mtime +/-数字
数字:数字前有 +(加号),大于数字的天数;数字前有 -(减号),小于数字的天数;没有 +或 -,等于数字的天数。
例如:
find /usr -mtime 4 表示4天前那一天
find /usr -mtime -4 表示4天内
find /usr -mtime +4 表示4天前
格式3:find [查找范围] [查找条件] [动作]
常用动作
-exec:将find查找的结果交给-exec后面的命令执行
-ok:比-exec动作多了一个确认
例:
[root@rhel1 ~]# find /home -user u1 -exec ls -ld {} \;
drwx------. 3 u1 u1 4096 Mar 4 21:14 /home/u1
drwxr-xr-x. 2 u1 u1 4096 Jul 14 2010 /home/u1/.gnome2
-rw-r--r--. 1 u1 u1 176 Dec 22 2015 /home/u1/.bash_profile
-rw-r--r--. 1 u1 u1 124 Dec 22 2015 /home/u1/.bashrc
-rw-r--r--. 1 u1 u1 18 Dec 22 2015 /home/u1/.bash_logout
文件的压缩
1、zip、unzip命令
用途:制作压缩文件、解压缩文件
注意:
(zip+目录时 压缩目录本身,不包括目录里面的内容zip压缩目录使用-r选项)
格式:zip 压缩文件名 文件1 文件2
unzip 【-l】 压缩文件名
unzip 解压到指定的目录 -d 目录
2、gzip、zcat命令
用途:制作压缩文件、解开压缩文件
格式:
-
gzip [-9] 文件名… ---------压缩
-
gzip -d .gz格式的压缩文件 -----------解压缩
常用命令选项
-9:表示高压缩比,取值1-9,默认为6
-d:用于解压缩文件,同gunzip命令
-c:将输出重定向到标准输出
zcat命令
用途:查看压缩文件内容
格式:zcat 压缩文件名
3、 bzip2、bzcat命令
用途:制作压缩文件、解开压缩文件
格式:
gzip [-9] 文件名…
gzip -d .gz格式的压缩文件
常用命令选项
-9:表示高压缩比,取值1-9,默认为6
-d:用于解压缩文件,同gunzip命令
-c:将输出重定向到标准输出
zcat命令
用途:查看压缩文件内容
格式:zcat 压缩文件名
4、tar归档
用途:制作归档文件、释放归档文件
格式:
tar [选项]… 归档文件名 源文件或目录
tar [选项]… 归档文件名 [-C 目标目录]
常用命令选项
-c:创建 .tar 格式的包文件
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件
-t:列表查看包内的文件
-p:保持原文件的原来属性
-P:保持原文件的绝对路径
tar命令注意事项
一定要注意绝对路径和相对路径问题,推荐使用相对路径。
使用z或j压缩的文件,解压缩的时候不需要加上z或j,tar直接可以识别。
tar对目录和文件都可以进行操作,gzip和bzip2只能对文件进行操作。
tar练习:
停在/root目录下把/etc下的passwd、shadow、group三个文件备份到/tmp下的sxkj.tar文件中去,要求查看sxkj.tar里面的内容,要求最后一列只显示文件名,不带路径。
接着将/root目录下.bashrc这个文件追加备份到sxkj.tar中去,然后将sxkj.tar中的group文件恢复到/home目录下;再把/home目录下所有的文件都备份到/tmp下的home.tar.bz2中去,停在/root目录下将home.tar.bz2的内容都恢复到/tmp中去
[root@rhel1 ~]# tar -tvf /tmp/sxkj.tar
-rw-r--r-- root/root 1455 2019-03-20 00:22 passwd
---------- root/root 1060 2019-03-20 00:23 shadow
-rw-r--r-- root/root 689 2019-03-20 00:22 group
[root@rhel1 ~]# tar -rf /tmp/sxkj.tar -C ./ .bashrc
[root@rhel1 ~]# tar -tf /tmp/sxkj.tar
passwd
shadow
group
.bashrc
[root@rhel1 ~]# cd /home
[root@rhel1 home]# tar -xpf /tmp/sxkj.tar group
[root@rhel1 home]# ls
group u1 u2
[root@rhel1 home]# tar -cjf /tmp/home.tar.bz2 *
[root@rhel1 home]# tar -tf /tmp/home.tar.bz2
group
u1/
u1/.gnome2/
u1/.bash_profile
u1/.bashrc
u1/.bash_logout
u2/
u2/.gnome2/
u2/.Xauthority
u2/.bash_profile
u2/.ssh/
u2/.ssh/authorized_keys
u2/.bashrc
u2/.bash_history
u2/.bash_logout