zoukankan      html  css  js  c++  java
  • Linux基础之命令练习Day3-文件管理:cat,tar,gzip,vim,ln

    一. 文件合并

    cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

    1.命令格式:

    cat [选项] [文件]...

    2.命令功能:

    cat主要有三大功能:

    1.一次显示整个文件:cat filename

    2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

    3.将几个文件合并为一个文件:cat file1 file2 > file

    3.命令参数:

    -A, --show-all           等价于 -vET

    -b, --number-nonblank    对非空输出行编号

    -e                       等价于 -vE

    -E, --show-ends          在每行结束处显示 $

    -n, --number     对输出的所有行编号,由1开始对所有输出的行数编号

    -s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行 

    -t                       与 -vT 等价

    -T, --show-tabs          将跳格字符显示为 ^I

    -u                       (被忽略)

    -v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

    二. 文件打包

    tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

    首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

    为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

    linux下最常用的打包程序就是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 显示版本信息

    三. 文件压缩

    gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。

    1.命令格式:

    gzip[参数][文件或者目录]

    2.命令功能:

    gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

    3.命令参数:

    -a或--ascii  使用ASCII文字模式。 

    -c或--stdout或--to-stdout  把压缩后的文件输出到标准输出设备,不去更动原始文件。 

    -d或--decompress或----uncompress  解开压缩文件。 

    -f或--force  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。 

    -h或--help  在线帮助。 

    -l或--list  列出压缩文件的相关信息。 

    -L或--license  显示版本与版权信息。 

    -n或--no-name  压缩文件时,不保存原来的文件名称及时间戳记。 

    -N或--name  压缩文件时,保存原来的文件名称及时间戳记。 

    -q或--quiet  不显示警告信息。 

    -r或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。 

    -S<压缩字尾字符串>或----suffix<压缩字尾字符串>  更改压缩字尾字符串。 

    -t或--test  测试压缩文件是否正确无误。 

    -v或--verbose  显示指令执行过程。 

    -V或--version  显示版本信息。 

    -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。 

    四. Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

    vi/vim 的使用

    基本上 vi/vim 共分为三种模式,分别是一般模式、编辑模式与指令列命令模式。 这三种模式的作用分别是:

    • 一般模式:
      以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
    • 编辑模式:
      在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
    • 指令列命令模式:
      在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!

    简单的说,我们可以将这三个模式想成底下的图标来表示:

     vim 键盘图:

    vim命令合集 不保证准确性,仅供参考,验证。

    五. i节点,软/硬链接

    1. i节点实际上是一个数据结构,它存放了有关一个普通文件、目录或其他文件系统对象的基本信息;

    2. Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

    当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

    语法

     ln [参数][源文件或目录][目标文件或目录]

    其中参数的格式为

    [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]

    [--help] [--version] [--]

    命令功能 :
    Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

    不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

    软链接

    • 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
    • 2.软链接可以 跨文件系统 ,硬链接不可以
    • 3.软链接可以对一个不存在的文件名进行链接
    • 4.软链接可以对目录进行链接

    硬链接

    • 1.硬链接,以文件副本的形式存在。但不占用实际空间。
    • 2.不允许给目录创建硬链接
    • 3.硬链接只有在同一个文件系统中才能创建

    命令参数

    必要参数

    • -b 删除,覆盖以前建立的链接
    • -d 允许超级用户制作目录的硬链接
    • -f 强制执行
    • -i 交互模式,文件存在则提示用户是否覆盖
    • -n 把符号链接视为一般目录
    • -s 软链接(符号链接)
    • -v 显示详细的处理过程

    选择参数

      • -S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
      • -V "-V<备份方式>"或"--version-control=<备份方式>"
      • --help 显示帮助信息
      • --version 显示版本信息

    实例

    给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:

    ln -s log2013.log link2013

    输出:

    [root@localhost test]# ll
    -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
    [root@localhost test]# ln -s log2013.log link2013
    [root@localhost test]# ll
    lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
    -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
    

    给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同

    ln log2013.log ln2013

    输出:

    [root@localhost test]# ll
    lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
    -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
    [root@localhost test]# ln log2013.log ln2013
    [root@localhost test]# ll
    lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
    -rw-r--r-- 2 root bin      61 11-13 06:03 ln2013
    -rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log
    

     

    参考资料

    1. http://www.cnblogs.com/linhaifeng/articles/6045600.html#_label9

    2. http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/default.html?page=1

    3. http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html

    4. http://www.w3cschool.cn/linux/linux-command-manual.html

  • 相关阅读:
    17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication
    17.1.2 Replication Formats
    Setting the Master Configuration on the Slave
    17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment
    17.1.1.8 Setting Up Replication with Existing Data
    17.1.1.7 Setting Up Replication with New Master and Slaves
    17.1.1.6 Creating a Data Snapshot Using Raw Data Files
    列出display的值,并说明它们的作用
    CSS设置DIV居中
    CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?
  • 原文地址:https://www.cnblogs.com/OldJack/p/6561365.html
Copyright © 2011-2022 走看看