zoukankan      html  css  js  c++  java
  • Linux零基础入门第四课

    根据直播讲义整理的内容,从第四课开始。前三课的内容若后面有精力会一并整理进来。

    文件的基本操作(上)

    1. 创建、删除、复制、移动和重命名

    touch命令创建文件
    语法
    >$ touch file0 [file1 file2 ...]
    >$ touch file{0..9}.txt
    

    touch命令可以创建空文件,将文件名作为参数即可。传递多个文件名可同时创建多个文件。
    若使用 file{0..9} 作为参数,将自动创建10个空文件,名字分别为file0.txtfile1.txt、...、file9.txt
    若传递给touch的文件已存在于磁盘上,则不会创建此文件,但会更新该文件的时间戳。


    mkdir命令创建目录
    语法
    >$ mkdir [-p] dir1 [dir2 dir3 ...]
    >$ mkdir [-p] dir1{0..9}
    

    mkdir命令可以创建目录,将目录名作为参数即可。
    传递多个目录名可同时创建多个目录。
    若想同时创建子目录,则需要使用-p参数,否则只能创建空目录。

    示例
    # 在当面目录下创建名为 dir1 的空目录。
    >$ mkdir dir1
    # 在当前目录的子目录 dir1 内创建子目录 dir2。
    >$ mkdir dir1/dir2
    # 错误:dir3 不存在,创建多级子目录应使用 -p 参数。
    >$ mkdir dir3/dir4
    # 同时创建 dir3 目录及其子目录 dir4。
    >$ mkdir -p dir3/dir4
    # 创建 3 个目录,名字分为为 dir5、dir6、dir7。
    >$ mkdir dir{1..3}
    

    rm命令删除文件或目录
    语法
    >$ rm [-rf] dir1/file1 [dir2/file2 ...]
    

    rm 命令可以删除文件或目录。
    -r参数表示要删除一个目录。
    -f参数表示强制删除,且静默删除,不会询问用户,被删除的文件不存在也不会报错。
    注意:此命令较危险,被删除的文件几乎无法恢复,使用时需谨慎。


    cp命令复制目录或文件
    语法
    >$ cp [-rfv] src dest
    

    cp命令将src参数所指定的文件或目录复制到dest参数所指定的位置。
    -r参数用于递归复制目录中的文件,若复制目录时未使用此参数,则仅复制目录本身,目录中的文件及子目录不会被复制。
    -f参数表示强制复制。
    -v参数表示打印复制的过程。


    mv命令移动或重命名文件及目录
    语法
    >$ mv [-fv] src dest
    

    mv命令有两个作用,当src参数所指定的文件或目录与dest参数所指定的路径为同一个目录时,相当于做重命名,否则相当于将src移动到dest
    -f参数表示强制移动或重命名。
    -v参数表示打印移动的过程。

    示例
    # 当前目录 dir 与文件 file1 在相同的目录中。
    >$ tree
    .
    ├── dir
    └── file1
    
    1 directory, 1 file
    
    # 将 file1 重命名为 file2。
    >$ mv file1 file2
    >$ tree
    .
    ├── dir
    └── file2
    
    1 directory, 1 file
    
    # 将 file2 移动到 dir 目录下。
    >$ mv file2 dir
    >$ tree
    .
    └── dir
        └── file2
    
    1 directory, 1 file
    

    1. 文件读写

    echo命令输出字符串
    语法
    echo [-n] "string"
    

    使用echo命令可以将string参数的字符串打印到控制台上。
    -n参数表示不要输出换行符

    实际上echo命令是将string参数的字符串写入到其标准输出流stdout中了,但由于默认的情况下stdout就是控制台,所以看上去echo命令就是向控制台打印了字符串。

    Shell重定向运算符>>>

    通过Shell的重定向运算符>>>可以将标准输出流(stdout)本来应该打印到控制台的内容写入(重定向)到文件中去。

    语法
    >$ echo "abc" > file1.txt
    >$ echo "def" >> file1.txt
    

    >重定向运算符将echo命令向标准输出流(stdout)打印的字符串abc写入到文件file1.txt中,此处file1.txt的内容为abc
    其中 Linux系统的换行符。
    file1.txt不存在则由重定向运算符自动创建。

    >>重定向运算符将echo命令向标准输出流(stdout)打印的字符串def追加写入到文件file1.txt的末尾,此处file1.txt的内容为abc def


    cat命令查看文件全部内容
    语法
    >$ cat [-n] file1 [file2 ...]
    

    cat命令将文件fileN的内容从头至尾读取出来,并打印到控制台(实际上是打印到标准输出stdout中)。
    -n参数表示打印行号。

    示例
    >$ cat file1.txt
    abc
    def
    

    file1.txt为空文件,则cat命令无任何输出。

    head查看文件开头部分
    语法
    >$ head [-n N] file
    

    head命令会从文件file的第1行开始读取数据,共读取10行,打印到控制台。
    -n参数可以要求head命令读取N行数据,N默认为10。


    tail查看文件末尾部分
    语法
    >$ tail [-n N] [-f] file.log
    

    tail命令与head命令恰恰相反,从文件的末尾第N行开始读取数据,并打印到控制台,N默认为10行,同样可以通过-n参数来指定。
    -f参数非常有用,若file.log文件中不断有内容写入,则tail命令可以监听到这种变化,并不断的将最新的内容打印到控制台上。通常查看日志的时候会用到此参数。


    more命令按页查看文件
    语法
    >$ more file.txt
    

    当要查看的文件file.txt的内容特别长的时候,使用cat命令查看并不方便,而more命令刚好可以满足这种需求。
    more命令会从头读取file.txt文件的内容,刚好读满整个屏幕的数据作为一页显示。当我们按下回车键(Enter)时,滚动显示下一行的内容;当我们按下空格键(Space)时,滚动显示下一页的内容。直到到达文件file.txt的末尾时more命令才会退出。
    more命令适合浏览长文件时使用或在纯Shell(非模拟终端)场景使用。


    less命令更灵活的按页查看文件
    语法
    >$ less file.txt
    

    less命令与more命令非常相似,可以看做是加强版的more命令。
    less命令不仅支持与more命令相同的分页显示、回车键空格键向后读取文件,还支持使用光标控制键(上下箭头)vim光标控制键(j、k)Emacs光标控制键(C-n、C-p)向后向前读取文件。使用户可以用更加灵活的方式查看文件。

  • 相关阅读:
    各种素材类精品网站
    Java如何设置代理ip
    Spring事务的实现方式和原理以及隔离级别?
    Spring 是什么?
    线程池中阻塞队列的作用?为什么是先添加队列而不是先创建最大线程?
    为什么用线程池?解释下线程池参数
    并发三大特性
    ThreadLocal的原理和使用场景。
    谈谈对线程安全的理解
    sleep,wait,join,yield
  • 原文地址:https://www.cnblogs.com/0xcafebabe/p/8948296.html
Copyright © 2011-2022 走看看