liunx命令大全(上)

1 文件目录

1.1 路径

绝对路径 : /+名称组合 从根目录开始的路径

相对路径:  不以/开头的路径

显示当前目录的绝对路径    pwd:   /home/jackie_liu/music/zhoujielun/yequ

两个特殊的相对路径:  . 你的当前目录 ;  .. 表示你的父目录

第一次登陆SHELL  进入的是根HOME目录 ,

目前位置:当前工作目录,每个shell都有一个当前的工作目录 

最顶级目录 根目录 用/表示


1.2 目录:


cd 或者cd ~ 命令: 切换到 home 目录 

cd -  切换到以前的目录 

cd /home/jackie_liu/music   直接切换工作目录  


2  列出文件夹:ls

只能从根目录进入:

相对路径:ls music 

绝对路径:ls /home/scott/music 

任意目录切换:

ls ~/music/zhoujielun  (文件夹下有子目录才可以切换,如果没有,只能切换到上一层);ls ~/music/pv  PV下没有子目录 则切换不成功。

ls ~/videos/*.wmv  以XX格式结尾的目录

ls ~/videos/*just*   查询包含这个单词  tiger_woods_just_did_it.wmv 

ls -r 查看子文件夹中的文件列表 

ls -1 以单独一列显示内容   Ctrl+c 取消显示方式

ls -m 用逗号分隔的列表显示内容 

ls -a查看隐藏的文件和文件夹 

ls -F  显示文件的类型  文件后面的“*”(星号)表示该文件 是可执行文件,“/”(斜杠)表示它是一个目录。如果文件名后面没 有任何附加符号,那这个文件就是一个普通的文件

ls -- color 显示颜色 

ls -l 显示权限、所有者等详细信息 

drwxrwxr-x 3 jackie_liu jackie_liu 4096 Nov 15 18:08 arts

分析 最右边文件名+最后一次修改时间+文件大小+文件所有者,所属组+硬链接,文件包含多少内容+d rwx rwx r-x 

一组由第一个字符组成;第二组由第二个到第四个字符组成;第三组 包括第五个到第七个字符组成;第四组,即后一组由第八个到第十 个字符组成

第一组告诉你它是什么类型的文件。前面已经看到-F和--color 选项用不同的方式来展现这一内容,-l也是如此。d表示credentials 是目录,而第一个位置上的–则表示该项是一个文件(即便文件是可 执行的,ls–l仍然只用一个-来表示,所以-F和--color选项可以为你 提供更多的信息)。当然在第一个位置还可能看到其他选项,详细内 容如表2-3所示。 

表2-3 权限字符和文件类型 

字  符 含  义

 - 普通文件 - 可执行文件 d 目录 l 符号链接文件 s 套接字(socket) b 块设备(block device) c 字符设备(character device) p 命名管道(named pipe) 


 接下来的9个字符(组成第二组、第三组、以及第四组)分别代 表对文件的所有者、文件的组,以及系统中所有其他用户的权限


 r表示“允许读取”,w表示“允许改写”(改写意味 着修改和删除), x表示“允许执行”, –则表示“不允许执行这个操作”。 如果原本应该出现r字符的位置,现在出现的是-,则表示“不允许读 取”。这一点对于w和x也同样适用。 

组合使用

 ls -lf

 ls- lf --color

 ls -r 以相反的顺序显示列表内容 

 ls -x 按文件的扩展名排 可以把同一类的文件放在一起展示;

 ls -t 按日期和时间排序 

 ls -s 按文件大小进行排序 

 ls - h  用K、M和 G显示文件大小  如果文件足够大  都能显示出来  1kb = 1024 字节





3  创建

3.1 创建文本

touch +文件名

touch hepingge.text  创建文件

3.2 创建文件夹

mkdir 996  创建文件夹 ,如果存在文件夹 则会提示 由mkdir命令创建的新目录是赋予所有者读 取、改写、以及执行的权限,而组以及其他任何人则只有读 取和执行的权限


mkdir -p 996/work  创建新目录和任何必要的子目录 

  单个:

  mkdir music

  多个:

  mkdir piano arts singing,

创建子文件夹:

进入到父文件夹:再创建 mkdir 

快捷创建方式:

例如创建和平鸽:

mkdir -p arts/picasso/hepingge

查看创建是否成功:

mkdir -vp zhoujielun/yequ   VP可用来创建新目录 子目录 

mkdir -v  music/zhoujielun/yifuzhiming   只能在已有目录下创建  否则报错 

例如:

[jackie_liu@rbtnode1 ~]$ ls

arts  music  piano  singing,

[jackie_liu@rbtnode1 ~]$ mkdir -v  测试/性能

mkdir: cannot create directory ‘测试/性能’: No such file or directory

[jackie_liu@rbtnode1 ~]$ mkdir -vp  测试/性能

mkdir: created directory ‘测试’

mkdir: created directory ‘测试/性能’

[jackie_liu@rbtnode1 ~]$ 

4 复制

cp hepingge.text heping.text  当前目录复制 名字需要修改

cp heping.text  /home/jackie_liu/arts/picasso/hepingge  切换到不同目录 当前目录+要复制的地址绝对路径

cp  /home/jackie_liu/arts/picasso/heping.text .  从别的地方切换到当前目录  当前目录用.表示 

cp  /home/jackie_liu/arts/picasso*.jpg .  通配符 匹配以JPG格式结尾的文件;cp  /home/jackie_liu/arts/picasso[1-3].jpg .  前3张图片

cp -v ~/home/jackie_liu/arts/picasso[1-3].jpg . 复制文件时显示执行过程

cp -i /home/jackie_liu/arts/picasso/heping.text .   防止复制时覆盖重要的文件  输入 y n 进行判断  如果是多个文件 一直提示  ctrl +c 结束

cp -r /home/jackie_liu/arts .   文件夹以及子目录切换 外部路径切换到当前目录    cp -r heping.text arts 当前目录下切换不同文件

cp -a 复制文件目录到其他目录以作为完整的备份  a选项可以确保cp命令不会复制符号链接的内容(否则可能会极大地增加复制量),只保存关键的文件属性(例如拥有者、时间戳),并递归处理子目录。

5 移动

mv heping.text meng/   要移动的目录名后加/ 如果meng 不是目录则移动不成功,防止覆盖 同级别目录移动 ; mv heping.text /home/jackie_liu/music  当前目录移动到别的目录  类似复制的命令

以下这个命令只移动软链接: mv dogs ~/libby;而以下这条命令移动的是软链接所指向的目录: mv dogs/ ~/libby 

6 删除

rm  hepingge.text 当前目录删除 ;rm /home/jackie_liu/arts/picasso/heping.text 绝对路径删除 不需要在 当前目录

rm *text 通配符的使用  删除多个以text结尾的文件    rm * text  加了个空格 会删除所有的文件 所以应该特别注意

rm-v删除文件时显示执行过程

rm-i  防止删除重要文件 会给出提示  Y统一 N 忽略

rmdir picasso  删除空目录

rmdir: failed to remove ‘picasso’: Directory not empty

rm -Rf 删除文件和非空的目录  -r选项告诉rm命令进入到它发现的每个子目录中去删除文件,而-f选项只是告诉rm命令完成任务但不要因为些细节问题(比如文件夹非空)而烦扰用户。

为root登录时,不要输入rm -Rf /*命令。这样你将删除你的系统

rm -Rf libby*和rm -Rf libby *之间有着巨大的差异。前者会删除工作目录中以libby开头的所有东西,后者会删除任何名称恰好是libby的文件或文件夹,然后再删除目录中的所有其他东西

入rm -Rf .*/*删除以点号.作为名称开始的目录,因为这也匹配..,最终将删除当前工作目录的上级目录上的所有东西

删除带有空格的文件 rm +"文件名" ;删除名称以—开始命名的文件 rm -- -abc 

7查找

grep '7745' log.txt  |grep  '保险' 

grep  -i '7745'  log.txt    查询所有符合条件的


 grep -i  '短信提醒服务' log.txt |  grep -E   "1485|6068|0274" log.txt


8 用户

8.1 切换用户

su username  变更其他 用户  “switch user”

who am i  查看当前用户 

su jason_yang  切换用户 +输入密码   实际上并没有获得环境变量  就好像既穿上了超人的衣服, 退出Ctrl+c

su -l  jason_yang  输入密码    获得其工作的环境变量  拥有了超人一跃冲天的超能力

su +su root + su l root  成为root用户

su – 变更成有环境变量的ROOT用户


8.2拥有者和权限:


su   sudo 

切换目录 :

[root@localhost home]# su tian

[tian@localhost home]$ groups



1、内容不同:


su命令:用来切换用户,substitute英文含义“代替”的意思。


sudo命令:sudo为superuser do 的简写,即使用超级用户来执行命令,一般是指root用户。


2、用法不同:


su命令:不加用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变。


sudo命令: 查看当前用户可以用sudo执行的命令都有哪些。


3、环境不同:


su命令:切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。


sudo命令:是当前用户切换到root,然后以root身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。


权限 查看:


drwx------. 2 de      de      62 Dec 17 04:03 de

drwx------. 2 others1 others1 62 Dec 17 03:35 others1

drwx------. 2 others2 others2 62 Dec 17 03:35 others2

drwx------. 2 tian    tian    62 Dec 17 03:27 tian

drwx------. 2 xi      others  62 Dec 17 04:03 xi

drwx------. 2 xiang   xiang   62 Dec 17 03:31 xiang

drwx------. 2 yang    yang    62 Dec 17 03:31 yang

[root@localhost home]# chmod g+x tian

[root@localhost home]# ll

total 0

drwx------. 2 de      de      62 Dec 17 04:03 de

drwx------. 2 others1 others1 62 Dec 17 03:35 others1

drwx------. 2 others2 others2 62 Dec 17 03:35 others2

drwx--x---. 2 tian    tian    62 Dec 17 03:27 tian

drwx------. 2 xi      others  62 Dec 17 04:03 xi

drwx------. 2 xiang   xiang   62 Dec 17 03:31 xiang

drwx------. 2 yang    yang    62 Dec 17 03:31 yang

[root@localhost home]# 


    第一位表示类型,共四个选项(常见的都是前两个):

    - 普通文件

    d 目录

    c 字符设备文件

    b 块设备文件

    s 符号链接文件

    二三四 位代表文件所有者(user)拥有的权限

    五六七 位代表组群(group)拥有的权限

    八九十 位代表其他人(other)拥有的权限

    - 相应权限未被赋予

    r 文件可以被读(read)

    w 文件可以被写(write)

    x 文件可以被执行(可执行文件)


2.权限分配

2.1 指定用户形式


    如:chmod a+x file 表示对于文件file,给a(所有用户)分配x(执行权限)

    u 代表所有者(user)

    g 代表所有者所在的组群(group)

    o 代表其他人(other)

    a 代表全部的人,也就是包括u,g和o

    + 增加权限

    - 删除权限

    = 使之成为唯一权限


2.2 数字形式


    rwx可以用数字来代替:

    -—————— 0

    r—————— 4

    w—————— 2

    x—————— 1

    如 chmod 777 file表示对于file,给所有用户分配所有权限

    因为777对应的权限表示为-rwxrwxrwx

    第一个7代表所有者权限的和,第二个7代表组群权限的和,第三个7代表其他人权限的和


 chmod g+x tian    给用户组添加执行权限


 chmod  a+r others2  给所有的人添加可读权限


chmod o-r a.txt    给其余的人 去掉可读权限 

[root@localhost others2]# chmod o-r a.txt

[root@localhost others2]# ll

total 0

-rw-r-----. 1 root root 0 Dec 19 03:45 a.txt

[root@localhost others2]# 


chmod u+x a.txt  给所有者添加可执行的权限


chgrp  修改文件或目录属于的用户组 别的用户组的人也可以使用此文件


-rwxr-----. 1 root txy 0 Dec 19 03:45 a.txt

-rw-r--r--. 1 root txy 0 Dec 19 05:01 b.txt

[root@localhost others2]# chgrp -v others2  b.txt

changed group of ‘b.txt’ from txy to others2

[root@localhost others2]# ll

total 0

-rwxr-----. 1 root txy     0 Dec 19 03:45 a.txt

-rw-r--r--. 1 root others2 0 Dec 19 05:01 b.txt



chmod -R  修改目录下文件的全部权限   

$ chmod -R 660 *.jpg   修改图像 进行筛选  660 是权限表达的另外一种方式


chmod u[+-]s   设置和清除 suid

[root@localhost bin]# ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 27856 Aug  9 09:39 /usr/bin/passwd


cat /etc/passwd  查看用户信息


-bash: /usr/bin/passwd: Permission denied


 原因1:/usr/bin/passwd 权限异常

正常情况下的权限:


    ls -l /usr/bin/passwd

    -rwsr-xr-x 1 root root 34392 2009-05-22 16:03 /usr/bin/passwd


修复命令:


    chown root:root /usr/bin/passwd

    chmod u=rwx,go=rx,u+s /usr/bin/passwd  

    chmod -v 4711 /usr/bin/passwd修复权限

Linux 是真正意义上的多用户操作系

8.3 用户和用户组

1、用户(user)的概念


              通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他用我所开的用户名去折腾,这从计算机安全角度来说是符合操作规则的;


         当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和ftp 等,我们访问LinuxSir.Org 的网页程序,就是nobody用户;我们匿名访问ftp 时,会用到用户ftp或nobody ;如果您想了解Linux系统的一些帐号,请查看 /etc/passwd ;



2、用户组(group)的概念


        用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;


        举例:我们为了让一些用户有权限查看某一文档,比如是一个时间表,而编写时间表的人要具有读写执行的权限,我们想让一些用户知道这个时间表的内容,而不让他们修改,所以我们可以把这些用户都划到一个组,然后来修改这个文件的权限,让用户组可读,这样用户组下面的每个用户都是可读的;


 一般先 cd /home  进入到根目录再进入到 home目录  (一般用来存放用户)


   groupadd txy  创建用户组 

   groupdel  txy    删除用户组

   groups  显示用户所属的用户组 

   groupmod (包含修改名称,设置密码)

   useradd -G txy tian 添加用户tian(不可中文) 到用户组txy  

   id tian  查看用户所在的组 


   [root@localhost home]# id tian

uid=1000(tian) gid=1000(tian) groups=1000(tian),1001(txy)

[root@localhost home]# id others1

uid=1003(others1) gid=1005(others1) groups=1005(others1),1004(others)

[root@localhost home]# 


为用户设置密码 

[root@localhost home]# passwd tian

Changing password for user tian.

New password: 


New password: 

BAD PASSWORD: The password is a palindrome

Retype new password: 

passwd: all authentication tokens updated successfully.


usermod 示例 – 将一个已有用户增加到一个已有用户组中 ;将用户添加到新用户组中而不必离开原有的其他用户组。

[root@localhost home]# usermod -a -G others xi

[root@localhost home]# id xi

uid=1006(xi) gid=1001(txy) groups=1001(txy),1004(others)  出现2个用户组  主要用户组是txy 


如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项:

[root@localhost home]# usermod -g others xi

[root@localhost home]# id xi

uid=1006(xi) gid=1004(others) groups=1004(others),1001(txy)  主要用户组已经改变 

[root@localhost home]# 



如果要将一个用户从某个组中删除,但是这个时候需要保证 group 不是 user 的主组

[root@localhost home]# gpasswd -d xi  txy

Removing user xi from group txy

[root@localhost home]# id xi 

uid=1006(xi) gid=1004(others) groups=1004(others)

[root@localhost home]# 


9 时间

获取当前时间:date

终端输入命令 date +%D,能够获取当前的年份月份日数

[jackie_liu@rbtnode1 ~]$  date +%D

12/06/19





终端输入命令date +%r, 可以获取当前的时间

[jackie_liu@rbtnode1 ~]$ date +%r

08:35:56 PM


cal -3,可以显示当前本月以及前后两个月的月历

终端输入cal -y ,可以显示整年的月历

uptime,可以查看当前系统运行的时长


[jackie_liu@rbtnode1 ~]$ date +%Y-%m-%d

2019-12-06

[jackie_liu@rbtnode1 ~]$ date +%Y%_m%_d

201912 6


修改时间

上一级目录 直接touch  将文件时间修改为当前时间 


touch -t  修改为任意时间:194508151200 picasso  不需要到秒 

 如果是00~68,则假设年份的前2位数字是20  如果是69~99,则假设年份的前2位数字是19 

 touch -t 9211021200 picasso  92 默认假设19 开头

 touch -t4011021200 picasso  40  默认20 开头 


修改时间  date -s :  "2007-08-03 14:15:00" 


10 解压和压缩

10.1 zip 命令用来压缩文件

参数:

-A:调整可执行的自动解压缩文件;

-b<工作目录>:指定暂时存放文件的目录;

-c:替每个被压缩的文件加上注释;

-d:从压缩文件内删除指定的文件;

-D:压缩文件内不建立目录名称;

-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;

-F:尝试修复已损坏的压缩文件;

-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;

-h:在线帮助;

-i<范本样式>:只压缩符合条件的文件;

-j:只保存文件名称及其内容,而不存放任何目录名称;

-J:删除压缩文件前面不必要的数据;

-k:使用MS-DOS兼容格式的文件名称;

-l:压缩文件时,把LF字符置换成LF+CR字符;

-ll:压缩文件时,把LF+cp字符置换成LF字符;

-L:显示版权信息;

-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;

-n<字尾字符串>:不压缩具有特定字尾字符串的文件;

-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;

-q:不显示指令执行过程;

-r:递归处理,将指定目录下的所有文件和子目录一并处理;

-S:包含系统和隐藏文件;

-t<日期时间>:把压缩文件的日期设成指定的日期;

-T:检查备份文件内的每个文件是否正确无误;

-u:更换较新的文件到压缩文件内;

-v:显示指令执行过程或显示版本信息;

-V:保存VMS操作系统的文件属性;

-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;

-x<范本样式>:压缩时排除符合条件的文件;

-X:不保存额外的文件属性;

-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;

-z:替压缩文件加上注释;

-$:保存第一个被压缩文件所在磁盘的卷册名称;

-<压缩效率>:压缩效率是一个介于1~9的数值。

用法


1.将/home/data 这个目录下的所有文件打包压缩为当前目录下的data.zip

zip -q -r data.zip /home/data


2.如果现在在/home 这个目录下,则如下

zip -q -r data.zip data


3.如果在/home/data 这个目录下,则如下


1

zip -q -r data.zip *



-bash: zip: command not found

是因为liunx服务器上没有安装zip命令,需要安装一下即可

linux安装zip命令:

apt-get install zip 或yum install zip    



压缩单独文件  :zip +创建文件名称 +要压缩的文件  

 zip txt.zip a.txt     


[root@localhost de]# zip txt.zip a.txt 

  adding: a.txt (stored 0%)  ( 显示压缩节省的空间为0%)

[root@localhost de]# ls

a.txt  b.txt  c.txt  rng  txt.zip

[root@localhost de]# 


压缩多个文件就需要 压缩目录 以便解压缩得到目录清晰


zip -9  压缩效果  :0表示“一点也不压缩” 1表示“尽快完成压缩,而不需要压缩太多”,9表示“尽可能压缩文件,不介意会为此等待较长的时间” 默认是6 

目前计算机性能好 一般都是用最大优先级 9


zip -p -e   -p 会在shell历史中看到  -e 则不会

zip -p 123456  直接指定密码


[root@localhost home]# zip -e  tian.zip tian  提示

Enter password: 


10.2 解压

解压到指定目录   unzip tian.zip -d de


把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip

zip -r abc123.zip abc 123.txt


把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面

unzip abc\*.zip


 unzip -l moby.zip  列出将要解压的文件

 [root@localhost home]# unzip -l tian.zip 

Archive:  tian.zip

  Length      Date    Time    Name

---------  ---------- -----   ----

        0  12-27-2019 03:13   tian/

---------                     -------

        0                     1 file

[root@localhost home]# 



 unzip -t moby.zip  测试将要解压的文件是否完整

 [root@localhost home]# unzip -t tian.zip 

Archive:  tian.zip

    testing: tian/                    OK

No errors detected in compressed data of tian.zip.

[root@localhost home]#


gzip  命令

gzip a.txt  原文件不保留  想让gzip保留原始文件,则需要使用-c 但还需要将输出重定向到另一个文件


[root@localhost de]# gunzip -c a.txt.gz > /home/tian/yang (不能到父级目录 tian )

[root@localhost de]# cd ../

[root@localhost home]# ls

1.zip  de  de.zip  others1  others2  tian  tian.zip  xi  xiang  xiang.zip  xi.zip  yang  yan.zip

[root@localhost home]# cd tian 

[root@localhost tian]# ls

a.txt  yang

[root@localhost tian]# 


gzip  只能压缩单文件  先归档到单文件再压缩

[root@localhost home]# gzip yang

gzip: yang is a directory -- ignored

[root@localhost home]# ls

1.zip  de  de.zip  others1  others2  tian  tian.zip  xi  xiang  xiang.zip  xi.zip  yang

[root@localhost home]# cd de 

[root@localhost de]# ls

a.txt  b.txt  c.txt  rng  tian  txt.zip

[root@localhost de]# gzip a.txt

[root@localhost de]# ls

a.txt.gz  b.txt  c.txt  rng  tian  txt.zip

[root@localhost de]# 



 zip主要是压缩单个文件,zip是压缩多个文件,然后zip 压缩文件名 需要压缩的文件,如:将abcd四个文件压缩到一起,压缩文件名为r,命令为:zip r a b c d,


 gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格式),它的设计目标是处理单个的文件。gzip在压缩文件中的数据时使用的就是zlib。为了保存与文件属性有关的信息,gzip需要在压缩文件(.gz)中保存更多的头信息内容,而zlib不用考虑这一点。但gzip只适用于单个文件,所以我们在UNIX/Linux上经常看到的压缩包后缀都是.tar.gz或*.tgz,也就是先用tar把多个文件打包成单个文件,再用gzip压缩的结果。


zip只是一种数据结构,跟rar同类型。zip是适用于压缩多个文件的格式(相应的工具有PkZip和WinZip等),因此,zip文件还要进一步包含文件目录结构的信息,比gzip的头信息更多。但需要注意,zip格式可采用多种压缩算法,我们常见的zip文件大多不是用zlib的算法压缩的,其压缩数据的格式与gzip大不一样。




默认情况下,gzip不遍历压缩子目录的内容。为了让gzip可以压缩子目录,则需要在使用通配符的同时,使用-r(或--recursive)选项。这一次,每个文件(包括子目录中的文件)都会被压缩。不过要注意,每个文件都是单独压缩的。gzip命令并不能像zip命令那样将所有文件组合到一个大文件中。要想将所有文件压缩到一个大文件中,需要引入tar命令,


10.3 用 tar 和 gzip 归档和压缩文件


[root@localhost home]# tar -zcvf de.tar.zip de/

de/

de/.bash_logout

de/.bash_profile

de/.bashrc

de/b.txt

de/c.txt

de/rng/

de/rng/d.txt

de/txt.zip

de/tian/

de/a.txt.gz

de/de.tar

[root@localhost home]# ls

1.zip  de  de.tar.zip  others1  others2  tian  tian.zip  xi  xiang  xiang.zip  xi.zip  yang  yan.zip


inux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。


1.命令格式:


tar[必要参数][选择参数][文件] 


2.命令功能:


用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的 


3.命令参数:


必要参数有如下:


-A 新增压缩文件到已存在的压缩


-B 设置区块大小


-c 建立新的压缩文件


-d 记录文件的差别


-r 添加文件到已经压缩的文件


-u 添加改变了和现有的文件到已经存在的压缩文件


-x 从压缩的文件中提取文件


-t 显示压缩文件的内容


-z 支持gzip解压文件


-j 支持bzip2解压文件


-Z 支持compress解压文件


-v 显示操作过程


-l 文件系统边界设置


-k 保留原有文件不覆盖


-m 保留文件不被覆盖


-W 确认压缩文件的正确性


可选参数如下:


-b 设置区块数目


-C 切换到指定目录


-f 指定压缩文件


--help 显示帮助信息


--version 显示版本信息 


这样就可以知道每个文件的权限、所有者、大小以及创建时间等信息


 测试将要解开和解压的 tarball  -zvtf   要确保-f是最后一个选项,因为在它后面需要指定.tar.gz文件


[root@localhost home]# tar -zvtf de.tar.zip

drwx--x--- de/de             0 2019-12-28 22:33 de/

-rw-r-xr-- de/de            18 2019-08-08 20:06 de/.bash_logout

-rw-r-xr-- de/de           193 2019-08-08 20:06 de/.bash_profile

-rw-r-xr-- de/de           231 2019-08-08 20:06 de/.bashrc

-rw-r-xr-- root/root         0 2019-12-25 19:58 de/b.txt

-rw-r-xr-- root/root         0 2019-12-25 19:58 de/c.txt

drwxr-xr-x root/root         0 2019-12-25 21:01 de/rng/

-rw-r-xr-- root/root         0 2019-12-25 21:01 de/rng/d.txt

-rw-r--r-- root/root       160 2019-12-27 22:58 de/txt.zip

drwx--x--- root/root         0 2019-12-27 03:13 de/tian/

-rw-r-xr-- root/root        26 2019-12-25 19:58 de/a.txt.gz

-rw-r--r-- root/root     10240 2019-12-28 22:33 de/de.tar

[root@localhost home]#  这样就可以知道每个文件的权限、所有者、大小以及创建时间等信息



 解开和解压 tarball   -zxvf 


[root@localhost home]# tar -zxvf de.tar.zip -C /home/others1  到指定目录

de/

de/.bash_logout

de/.bash_profile

de/.bashrc

de/b.txt

de/c.txt

de/rng/

de/rng/d.txt

de/txt.zip

de/tian/

de/a.txt.gz

de/de.tar

[root@localhost home]# cd others1

[root@localhost others1]# ls

de

[root@localhost others1]# cd de 

[root@localhost de]# ls

a.txt.gz  b.txt  c.txt  de.tar  rng  tian  txt.zip

你可能感兴趣的:(liunx命令大全(上))