一、使用tar命令对文件进行打包压缩与解压缩
1.使用gzip方式对文件进行压缩,并指定压缩名为 tar_gzip.tar.gz
tar -zcvf tar_gzip.tar.gz args.txt
2. 使用bzip2方式对文件夹进行压缩,并指定压缩名为 tar_bzip2.tar.bz2
tar -jcvf tar_bzip2.tar.bz2 *.txt
3.使用xz方式对文件进行压缩,并指定压缩名为 tar_xz.tar.xz
tar -Jcvf tar_xz.tar.xz num.txt
4.新建文件file1.txt,file2.txt,file3.txt
touch file1.txt file2.txt file3.txt
5.对文件file1.txt和file2.txt,进行压缩(使用gzip方式),排除file3.txt(即不对file3进行压缩)并指定压缩名为tar_file.tar.gz
tar --exclude file3.txt -zcvf tar_file.tar.gz file*
6.新建文件file4.txt,将file4.txt添加到tar_file.tar中
tar -rvf tar_file.tar file4.txt
7.查看压缩包tar_file.tar.gz有哪些文件及目录(不解压,只查看)
8.解压tar_gzip.tar.gz到指定目录tar_test(没有这个目录就创建)
# mkdir tar_test
# tar -xzf tar_gzip.tar.gz -C /root/tar_test/
9.解压tar_xz.tar.xz
tar -xf tar_xz.tar.xz
Tar(Tape ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)是类 Unix 系统中使用最广泛的命令,用于归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用 gzip 或者 bzip2 等技术进行压缩。换言之,tar 命令也可以用于备份:先是归档多个文件和目录到一个单独的 tar 文件或归档文件,然后在需要之时将 tar 文件中的文件和目录释放出来。
本文将介绍 tar 的 17 个实用示例。
tar 命令语法如下:
# tar <选项> <文件>
下面列举 tar 命令中一些常用的选项:
--delete : 从归档文件 (而非磁带) 中删除
-r, --append : 将文件追加到归档文件中
-t, --list : 列出归档文件中包含的内容
--test-label : 测试归档文件卷标并退出
-u, --update : 将已更新的文件追加到归档文件中
-x, --extract, --get : 释放归档文件中文件及目录
-C, --directory=DIR : 执行归档动作前变更工作目录到 DIR
-f, --file=ARCHIVE : 指定 (将要创建或已存在的) 归档文件名
-j, --bip2 : 对归档文件使用 bzip2 压缩
-J, --xz : 对归档文件使用 xz 压缩
-p, --preserve-permissions : 保留原文件的访问权限
-v, --verbose : 显示命令整个执行过程
-z, gzip : 对归档文件使用 gzip 压缩
注 : 在 tar 命令选项中的连接符 - 是可选的(LCTT 译注:不用 - 也没事。这在 GNU 软件里面很罕见,大概是由于 tar 命令更多受到古老的 UNIX 风格影响)。
示例 1:创建一个 tar 归档文件
现在来创建一个 tar 文件,将 /etc/ 目录和 /root/anaconda-ks.cfg 文件打包进去。
[root@linuxtechi ~]# tar -cvf myarchive.tar /etc /root/anaconda-ks.cfg
以上命令会在当前目录创建一个名为 “myarchive” 的 tar 文件,内含 /etc/ 目录和 /root/anaconda-ks.cfg 文件。
其中,-c 选项表示要创建 tar 文件,-v 选项用于输出 tar 的详细过程到屏幕上,-f 选项则是指定归档文件名称。
[root@linuxtechi ~]# ls -l myarchive.tar
-rw-r--r--. 1 root root 22947840 Sep 7 00:24 myarchive.tar
[root@linuxtechi ~]#
示例 2:列出归档文件中的内容
在 tar 命令中使用 –t 选项可以不用释放其中的文件就可以快速列出文件中包含的内容。
[root@linuxtechi ~]# tar -tvf myarchive.tar
列出 tar 文件中的指定的文件和目录。下列命令尝试查看 anaconda-ks.cfg 文件是否存在于 tar 文件中。
示例 3:追加文件到归档(tar)文件中
-r 选项用于向已有的 tar 文件中追加文件。下面来将 /etc/fstab 添加到 data.tar 中。
[root@linuxtechi ~]# tar -rvf data.tar /etc/fstab
注:在压缩过的 tar 文件中无法进行追加文件操作。
示例 4:从 tar 文件中释放文件以及目录
-x 选项用于释放出 tar 文件中的文件和目录。下面来释放上边创建的 tar 文件中的内容。
[root@linuxtechi ~]# tar -xvf myarchive.tar
这个命令会在当前目录中释放出 myarchive.tar 文件中的内容。
二.在Linux上的/root目录创建一个Linux.txt,在windows上创建windows.txt
1.通过sftp的 get和put命令,将windows上的windows.txt推送到linux上
sftp> put C:\Users\jameth\Desktop\Windows.txt /root/
Uploading C:/Users/jameth/Desktop/Windows.txt to /root/Windows.txt
C:/Users/jameth/Desktop/Windows.txt 100% 0 0.0KB/s 00:00
sftp>
2.通过sftp的 get和put命令,将linux上的linux.txt推送到windows上
sftp> get /root/Linux.txt C:\Users\jameth\Desktop\
Fetching /root/Linux.txt to C:/Users/jameth/Desktop/Linux.txt
sftp>
三.创建普通变量local_data=1并访问
1.创建普通变量local_data=1并访问
[root@server ~]# export local_data=1
[root@server ~]# echo $local_data
1
2.创建环境变量ROOT_DATA=root, 只有root用户可以访问到
[root@server ~]# vi /root/.bashrc
[root@server ~]# source /root/.bashrc
[root@server ~]# echo $ROOT_DATA
root
3.创建环境变量USER_DATA=user, 只有普通用户可以访问到
[root@server ~]# export USER_DATA=user
[root@server ~]# echo $USER_DATA
user
4.创建环境变量DATA=all, root用户和普通用户都可以访问到
[root@server ~]# vi /etc/profile
[root@server ~]# source /etc/profile
[root@server ~]# echo $DATA
all
四.创建文件
1.创建3个文件test1.txt, test2.txt, test3.txt
1)使用find查找test1.txt,test2.txt, test3.txt
2)使用别名: 将上边命令命名为myfind
3)取消别名
[root@server ~]# touch test1.txt
[root@server ~]# touch test2.txt
[root@server ~]# touch test3.txt
[root@server ~]# find test[1-3].txt
test1.txt
test2.txt
test3.txt
[root@server ~]# alias myfind=find
[root@server ~]# myfind test[1-3].txt
test1.txt
test2.txt
test3.txt
[root@server ~]# unalias myfind
[root@server ~]# myfind test[1-3].txt
bash: myfind: command not found...
[root@server ~]#
五.查看最近使用的10条历史命令
[root@server ~]# history 10
122 find test[1-3].txt
123 touch test1.txt
124 touch test2.txt
125 touch test3.txt
126 find test[1-3].txt
127 alias myfind=find
128 myfind test[1-3].txt
129 unalias myfind
130 myfind test[1-3].txt
131 history 10
六.在一行上执行两个命令,打印123和从root切换到普通用户
[root@server ~]# printf 123 ; su rhcsa
123[rhcsa@server root]$