zoukankan      html  css  js  c++  java
  • 终端:文件操作

    1 文件操作

      linux的命令是在终端窗口中执行的,这些在终端中执行的命令被称之为shell命令,将多个shell命令按照一定的格式放入文本中被称之为shell脚本;

      1.1 查看当前目录的文件:ls

    # 格式:ls -[参数]
    # 作用:list,列出当前目录的所有文件,按照参数的格式;
    ls -l        #-list:附带文件的详细信息;      
    ls -t        #-time:按照时间顺序列出,但是不会显示时间;
    ls -i        #-inode:列出当前文件的节点信息;
    ls -R        #-recursion:递归列出当前目录的所有文件;
    ls -a        #-all:包括以“.”开头的隐藏文件;   

        1.1.1 文件信息的详细说明

    d rwx r-x r-x 2 cae cae 4096 3月19 14:16 桌面
    
    #d:表示"桌面"的文件类型为目录文件;
    #rwx:表示文件用户的权限;read write execute;进制表示为0b111,即0x7;
    #r-x:表示所在用户组其他用户的权限;read - execute;进制表示为0b101,0x6;
    #r-x:表示其他用户组用户的权限;read - execute;进制表示为0b101,0x6;
    #cae:表示文件用户;
    #cae:表示所在用户组;
    
    # x: 可执行权限,可以看做一个软件

        1.1.2 文件类型的说明

    ls -l #返回列表的第一个字符表示文件类型;
    
    #- :普通文件,一些应用程序创建的,比如文档、图片、音乐等;
    #d : directory 目录文件
    #c : char device字符设备文件
    #b : block device块设备文件
    #l : link 符号连接文件,相当于 Windwos 下的快捷方式
    #s : 套接字文件
    #p : pipe 管道文件,主要指 FIFO 文件

        1.1.3 查看文件属性

    file filename        #显示文件filename的文件属性;

      1.2 更改当前目录

    # 格式:cd [路径]
    # 作用:change directory,改变当前目录;
    cd ..        #改变目录为父目录;
    cd ~         #改变目录为当前用户目录;
    cd /usr      #改变目录为/usr目录;
    pwd             #print work directory,打印当前工作目录的绝对路径;

      1.3 查找文件    

    find -name vim*          #查找当前目录下以vim开头的文件
    find -name vim*  /etc/   #查找/etc/目录下以vim开头的文件
    grep -r "ubuntu"  /usr   #递归查找/usr目录下文本内容包含"ubuntu"的文件;global regular expresstion print;

      1.4 创建文件

    touch test        #创建文本文件test
    mkdir dirtest     #创建文件夹dirtest

      1.5 打开文件

    # 格式:cat -[参数] [路径]
    # 作用:catenate,打开路径位置所在的文本文档
    cat -n test      #打开当前目录下的test文本,并对文本行数进行标号

      1.6 复制文件(copy from...to...)

    cp test1.c  test2.c        #复制test1.c的内容到test2.c中;
    cp *.c   ../dirtest        #复制当前目录下的所有.c文件到../dirtest文件夹下;

      1.7 移动文件(move from...to...)

    mv test1.c      test2.c        #将test1.c移动到test2.c,相当于重命名成test2.c;
    mv test.c    ../dirtest        #将test.c移动到../dirtest文件夹下;

      1.8 删除文件

    rm test           #删除文本文件test
    rm -r dirtest     #递归删除文本文件test 
    rmdir dirtest     #删除文件夹dirtest

      1.9 修改文件权限

    #格式: sudo chown  [用户名.组名]   [文件]
    #作用:change owner 修改文件的所属用户,所属用户组;
    sudo chown root.root  hello     #修改hello文件的用户为root,用户组为root;
    #格式:sudo chmod  [权限]  [文件]
    #作用:change mode;修改文件的创建用户、所在用户组的用户、其他用户组的用户、的权限;
    sudo chmod 666 test        #修改当前路径的test文件的权限为所有用户都可读写;
    #格式:sudo [shell命令]
    #作用:super user do,以root用户的权限来执行命名;
    sudo adduser usertest        #以root用户的权限来创建新的用户usertest;
    sudo su cae    #super user do switch user ,切换root用户为cae用户;
    sudo -l        #list , 列出当前用户可执行与不可执行的命令;
    sudo -h        #help ,显示帮助信息;
    #创建新用户时,linux会默认为新用户在/home/下创建一个用户目录,该用户只拥有当前目录的所有权限;

       1.10 开关机

    man cd        #查看终端命令手册man,关于cd的用法部分;man [命令]:查看[命令]的使用说明
    poweroff      #关闭系统
    reboot        #重启系统
    uname -rso    #查看当前系统的内核信息;

      1.11 连接文件:(link from...to...)

        1.11.1 硬连接:hard link,具有相同inode的多个文件互为硬连接文件;文件类型不是连接文件;

    #格式:ln [原文件]  [硬连接文件]
    #作用:硬连接修改后将会同步到其他硬连接文件中,可用来作为备份文件;
    #特点:硬连接文件不能连接到目录,也不能连接到ubuntu之外的设备上;
    ln hello hello1  #为可执行文件创建一个硬连接hello1;

        1.11.2 软连接:symbolic link,类似于快捷方式的连接文件,文件类型是连接文件;

    #格式: ln -s [被连接文件的绝对路径]  [软连接文件]
    #作用:创建一个快捷方式,连接到原文件;
    #特点:如果原文件不使用绝对路径,那么拷贝连接文件到其他目录下,连接文件会链接不到原文件;
    ln -s /home/cae/Program/hello  hellolink    #为hello文件创建了一个快捷方式hellolink;
    cp -d hellolink /home/cae/dirtest           #如果不用-d拷贝link文件,则拷贝的将不是link文件,而是hellolink的硬连接;

      1.12 退出

    #  ctrl+z    表示退出当前命令
    #  ctrl+d    表示退出git账户

    2 shell脚本

      将shell命令依次执行的文本文档称之为shell脚本,后缀名为.sh

    #!/bin/bash
    #shell脚本的第一行固定如上所示,#!是固定的用法
    echo "please enter one fruit : "          #echo用来输出"..."字符串
    read fruit                                #read将键盘端输入的字符串读取至后面的变量名内
    echo "the fruit you enter is $fruit "     #$变量名,用来输出$后面变量名的值;

     ps 零散补充

      绝对路径:从盘符开始直到所需文件目录的路径;

  • 相关阅读:
    学习笔记:字符串-Hash
    模板:高精度
    关于我自己
    学习笔记:数学-GCD与LCM-素数筛法
    学习笔记:数学-GCD与LCM-唯一分解定理(质因数分解)
    学习笔记:数学-GCD与LCM-整除的基础概念
    题解 洛谷P1990 覆盖墙壁
    学习笔记:平衡树-splay
    npm发布myself的插件
    javascript API文档
  • 原文地址:https://www.cnblogs.com/caesura-k/p/12519521.html
Copyright © 2011-2022 走看看