美文网首页
linux常用shell指令学习笔记总结【更新中...】

linux常用shell指令学习笔记总结【更新中...】

作者: Aliven888 | 来源:发表于2020-09-05 15:40 被阅读0次

    文档声明:
    以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。


    资料仅供学习交流使用。
    作者:Aliven888

    1、简介

    shell
    是一个程序,他在用户和操作系统提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的shell把命令转化成指令代码发送给操作系统。
    Shell提供了很多高级特性,使得用户和操作系统之间的交互变得简单而高效。

    2、shell指令介绍

    2.1、显示当前目录(pwd)

    pwd : 显示当前所在的位置,即当前的工作目录。
    
    格式: 
        pwd
    
    举例:
        pwd : 显示当前的工作目录。
    

    2.2、目录切换(cd)

    cd : 指令表示切换文件夹(跳到指定的文件下)
    
    格式: 
        cd + 空格 + 路径
    
    举例:
        cd ~ : 切换到主目录,比如是user用户,则切到 /user下。   
        cd /test : 切换到目录test下。
        cd test :切换到当前目录下的test目录下。
        cd / : 切换到跟目录。
        cd .. : 切换到当前目录的上一级。
        cd ../.. :切换到当前目录的上二级(上上级)目录。
    
    
    注意:
        在shell中, “..”表示当前目录的上一级,“.”则表示当前目录。而“~”表示用户主目录,这个符号通常在键盘 Esc 按键的下方。
    

    2.3、列出文件(ls, dir, vdir)

    ls : 打印列出当前目录下的所有文件(不包含子文件夹中的内容)
    
    格式:
        ls + 空格 + [option] + [文件参数]
    
    举例:
        ls : 列出当前目录下的所有文件(带后缀)以及文件夹名。
        ls A* : 列出当前目录下以字母 A 开头的所有文件(带后缀)以及文件夹。
        ls -l *.txt : 列出当前目录下后缀名是 txt 的所有文件。
        ls -F : 列出当前目录下所有文件以及文件夹,并在文件夹后面添加 /, 而文件依旧显示文件名(带后缀)。可以用于区分文件与文件夹。
        ls -l : 查看当前目录下的文件以及文件的属性(包含文件的可读写属性,编辑时间,内存大小,编辑用户等信息)。
        ls -a : 显示当前目录下的所有文件(带后缀)以及文件夹,包含隐藏的文件。
    
    注意:
        ls 的指令是可以合并使用的,比如ls –la , ls –aF 等,功能是叠加的。
    
    option可选参数如下:
        -A  列出所有文件,包含隐藏文件
        -l  列表形式,包含文件的绝大部分属性
        -F  显示当前目录下的文件以及文件夹(目录),并在文件夹(目录)后添加 “/”
        -R  递归显示
        --help  此命令的帮助
    

    dir : 列出当前目录下的所有文件(带后缀)以及文件夹。
    
    格式:
        dir
    
    举例:
        dir : 列出当前目录下的所有文件(带后缀)以及文件夹。
    

    vdir : 列出当前目录下所有文件以及文件夹的属性信息,相当于ls -l 。
    
    格式:
        vdir
    
    举例:
        vdir : 列出当前目录下所有文件以及文件夹的属性信息。
    

    2.4、查看文本文件内容(cat, more, less)

    cat : 用于查看文件的内容(通常是一个文本文件);文件的内容会一次性的显示出来,文件内容比较多时,不便于阅读。
    
    格式:
        cat + 空格 + [option] + 文件名(带后缀)
    
    举例:
        cat text.txt : 查看文件text.txt的内容。
        cat -n text.txt : 查看文件text.txt的内容,并在每一行前显示行号。
    

    more : 用于查看文本文件的内容,和cat相比,more会一页一页的显示,并在当前页的最后一行显示百分比,表示当前阅读的进度。 
    
    格式:
        more + 空格 +文件名(带后缀)
    
    按键操作:
        Enter键 :向下滚动一行。
        空格键:向下滚动一页。
        Q键:表示退出more指令。
    
    举例:
        more text.cpp : 用于查看text.cpp文本文件的内容。
    

    less : 用于查看文本文件内容,和more相比功能更强大;在more指令的基础上添加了可编辑功能。
    
    格式:
        less + 空格 + 文件名(带后缀)
    
    按键操作:
        空格键:向下翻页。
        B 键:向上翻页。
        ↑↓←→键 : 光标向上,下,左,右移动。
        Q 键:退出less指令。
    
    举例:
        less text.cpp : 用于查看text.cpp文本文件的内容。
    

    2.5、文件/文件夹操作(mkdir, rmdir, touch, rm)

    mkdir : 在当前目录下创建文件夹,一次可以创建1个或者多个。
    
    格式:
        mkdir + 空格 + 文件夹名 [ + 空格 + 文件夹名 … ]
    
    举例:
        mkdir test1 test2 : 在当前目录下创建test1 和test2文件夹。
        mkdir test/test1 : 在当前目录下的子级目录test下创建test1文件夹(注意 :此时子级目录test必须是存在的,否则该指令执行失败)。
        mkdir -p test/test1 : 在当前目录下的子级目录test下创建test1文件夹(注意 :此时如果子级目录test不存在的,否则该指令会先依次创建子级目录test,然后再创建test1)。
    

    rmdir : 该指令用于删除目录(文件夹)。
    
    格式:
        rmdir + 空格 + [目录(文件夹名)]
    
    举例:
        rmdir test : 删除文件夹test。
    
    注意:
        1、目录(文件夹)为执行该指令会失败,因此使用该指令时,需要先清除该目录下的所有文件以及文件夹。因为rmdir的这一局限性,导致该指令很少被用,反而功能更强大的rm(下面有介绍)很受欢迎。
    

    touch : 在当前目录下创建一个或者多个文件。
    
    格式:
        touch  + 空格 + 文件夹名 [ + 空格 + 文件夹名 … ]
    
    举例:
        touch text1.txt text2.txt :创建文件text1.txt 和 text2.txt。
    

    rm : 用于删除一个或者多个文件(包含目标路径下的全部文件及文件夹,是一种递归删除)。
    
    格式:
        rm  + 空格 + [option] + 空格 + [文件/文件夹名 … ]
    
    举例:
        rm text.txt :  删除当前目录下的text.txt文件。
        rm *.txt : 删除当前目录下以“.txt”为后缀名的全部文件。
        rm -i text.txt : 删除当前目录下的text.txt文件,在删除前,系统会询问用户是否执行删除操作,如果回答“y”表示确认删除;“n”则表示跳过该文件。
        rm -r test/ : 遍历删除当前目录下子级目录test下的全部文件和文件夹。
    
    注意:
        1、通过该指令被删除的文件将永远的从系统中消失,而不会被放在几个被称为“回收站”的临时目录下。
        2、使用rm指令时应该格外小心些,特别是以root权限操作时。因为文件彻底删除的特性,往往会导致一些惨痛的教训。
    

    2.6、编辑文本文件(vi, vim)

    vi/vim : 编辑文本文件。
    
    格式:
        vi/vim + 空格 + 文件
    
    编辑操作:
        I 键 : 表示进入编辑模式。
        Page Up & Page Down : 键可以上下翻页,
        Esc键 : 退出编辑模式。
        :x :  删除当前字符;
        :dd :  删除当前行;
        :u : 恢复前一步操作;
        :p : 复制之前删除的行。
        :wq: 退出当前编辑并保存。
        :q!: 退出当前编辑,不保存本次编辑内容。
    
    举例:
        vi/vim file.txt :  编辑当前路径下file.txt文件。
        vi/vim /bin/file.txt :  编辑当前自己下路径下file.txt文件。
    

    2.7、查找文本文件内容(grep)

    grep  : 有时候我们并不需要查文件的全内容,此时就可以根据该指令包含查询信息的一行或者多行。
    
    格式:
        grep + 空格 + [option] + 空格 + 查询信息(条件) + 文件
    
    举例:
        grep 1111 text.txt : 在文件中查询包含“1111”文本的一行或者多行。
    

    2.8、移动文件/文件夹(mv)

    mv : 用于移动文件或者文件夹。重名时将会覆盖目标路径下的原有文件。
    
    格式:
        mv + 空格 + 文件/文件夹 + 空格 + 目录
    
    举例:
        mv file.txt bin/ : 将当前目录下的file.txt文件移动到bin目录下。   
        mv test/ bin/ : 将当前目录下的test文件夹移动到bin目录下。 
    
    
    注意:
        1、  如果目标目录下有同名的文件或者文件夹,将会被迁移进来的文件或者文件夹覆盖。
    

    2.9、拷贝复制文件/文件夹(cp)

    cp : 用来赋值文件或者文件夹。默认情况下cp命令会跳过文件夹(目录),此时就可以使用-r指令实现递归拷贝,将文件夹以及其目录下的内容一起拷贝到目标路径下。
    
    格式:
        cp + 空格 + [option] + 空格 + 文件/文件夹 + 空格 + 目录
    
    option 可选参数如下:
        -a : 是指archive的意思,也说是指复制所有的目录
        -d : 若源文件为连接文件(link file),则复制连接文件属性而非文件本身
        -f : 强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
        -i : 若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
        -l : 建立硬连接(hard link)的连接文件,而非复制文件本身
        -p : 与文件的属性一起复制,而非使用默认属性
        -r : 递归复制,用于目录的复制操作
        -s : 复制成符号连接文件(symbolic link),即“快捷方式”文件
        -u : 若目标文件比源文件旧,更新目标文件
    
    
    举例:
        //普通拷贝复制
        cp file.txt bin/ : 拷贝复制文件file.txt到目录bin下。      
        cp -i file.txt bin/ :  考本文件file.txt到目录bin下,在真正执行拷贝前,系统会先询问,“y”表示覆盖,“n”表示跳过该文件。    
        cp -r test/ bin/ : 递归拷贝test文件夹下的内容到bin目录下。
        cp * /home : 把当前目录下的所有为隐藏文件都拷贝到home目录下。
        cp -rf /usr /root :将 /usr 文件夹复制到 /root 文件夹下(会形成: /root/usr 文件夹)。
        cp -rf /usr/** /root :将 /usr 文件夹下的全部文件复制到 /root文件夹下。 (会形成: /root/usr文件夹下的内容)
    
    
        //强制拷贝覆盖、替换文件(如果目标路径有重名的,强制覆盖)
        \cp src dest : 前面增加 反斜杠“\” , 表示强制覆盖文件。
        \cp Hello.java World.java : 将 Hello.java 文件强制替换到 World.java下。 (相当于: World.java 删除,Hello.java 文件复制过来,改名 World.java)
        \cp -rf /usr /root : 将 /usr 文件夹复制到 /root 文件夹下,遇到相同,会强制覆盖掉!
        \cp -rf /usr/** /root :将 /usr 文件夹下的全部文件复制到 /root 文件夹下,遇到相同,会强制覆盖掉!
    
    

    2.10、文件/文件夹权(chmod)

    chmod : 用于改变一个文件的权限,该指令使用“用户组+/-权限”的表达方式来增加或者删除对应的权限。
    
    格式:
        chmod + 空格 + 用户组+/-权限 + 空格 + 文件
    
    用户组:
        u : 文件属主
        g : 文件属组
        o : 其他人
        a : 所有人
    
    权限:
        r : 读取
        w : 写入
        x : 执行
        
    注意事项:
        1、用户还可以通过“用户组=权限”的规则直接设置文件的权限。例如:chmod ug=rw, a=r file.txt 表示赋予属主(u)和数组(g)的读写权限和所有人(a)的读取权限。
    
    举例:
        chmod u+x file.txt : 增加了属主对文件file.txt的执行权限。
        chmod o=u file.txt : 直接将属主的权限赋值给其他人,赋值后,两者的权限相同。
    

    2.11、其他基础常用操作*

    su root : 切换用户到root。
    svn checkout svn路径 : 下载svn中的代码到当前路(目录)径下(该过程需要录入svn代码)。
    df : 查看磁盘使用情况(详细参见:截图1:df 指令)。df 命令会收集当前已经挂载的全部文件系统的一些重要的统计数据。显示的信息有 : 文件系统名、1K-blocks、已用、可用、已用%、挂载点等信息。
    

    截图1:df 指令:

    image.png

    相关文章

      网友评论

          本文标题:linux常用shell指令学习笔记总结【更新中...】

          本文链接:https://www.haomeiwen.com/subject/lbkfektx.html