zoukankan      html  css  js  c++  java
  • Linux文件系统

    1. Linux系统主要目录及内容:
     
    目录 内容
    /bin           构建最小系统所需要的命令(最常用的命令)
    /boot 内核与启动文件
    /dev 各种设备文件
    /etc 系统软件的启动和配置文件
    /home
    用户的主目录
    /lib
    C编译器的库
    /media
    可移动介质的安装点
    /opt
    可选的应用软件包(很少使用)
    /proc
    进程的映像
    /root
    超级用户root的主目录
    /sbin
    和系统操作有关的命令
    /tmp
    临时文件存放点
    /usr
    非系统的程序和命令
    /var
    系统专用的数据和配置文件
       
     
    2.查看目录和文件:
     
    ls  的用法
             ls  -F:  会在每个目录后加上/,在可执行文件后加*,在链接文件后加上@,在无法显示颜色的终端上有用:
             ls  -a:  显示所有的文件,包括隐藏文件如".adobe";
             ls  -l:  查看文件的各种属性。
                   “-rwxr-xr-x  1  root  root  38096  2008-11-13  14:54  /bin/login”:
                             第1个字段的第1个字符表示文件类型;
                             然后3组位权限:属主,属组和其他人的权限
                             权限后的数字,表示链接数
                             root和root分别是属主和属组
                             最后4个分别表示文件大小、最后修改日期和时间、文件的完整路径
                   
    文件类型
    符号
    文件类型
    符号
    普通文件
    -
    本地域套接字
    s
    目录
    d
    有名管道
    p
    字符设备文件
    c
    符号链接
    l
    块设备文件
    b
     
     
     
    查看文本文件 cat(一次显示所有的内容)和more(一页一页的显示)和less(优先选)
             cat  文本文件名(可以加多个文件名)
             cat  -n (显示行号)  文本文件名 (可以加多个文件名)
         对于more的详细说明:      
             例子:  
                   # more -dc/etc/profile    注:显示提示,并从终端或控制台顶部显示;
                   # more +4/etc/profile      注:从profile的第4行开始显示;
                   # more -4/etc/profile      注:每屏显示4行;
                   # ls  -l/etc  | more           注:查看一个目录下的文件时,可以和管道“|”结合起来
             more [参数选项] [文件]  
                    +num           从第num行开始显示;
                    -num            定义屏幕大小,为num行;
                    +/pattern      从pattern 前两行开始显示;
                    -c                  从顶部清屏然后显示;
                    -d                  提示Pressspace to continue, 'q' to quit.(按空 键继续,按q键退出),禁用响铃功能; 
                    -l                   忽略Ctrl+l(换页)字符;
                    -p                  通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似;  
                    -s                   把连续的多个空行显示为一行;
                    -u                   把文件内容中的下划线去掉
              more 的动作指令:
                   Enter                            向下n行,需要定义,默认为1行;
                   Ctrl+f(或空格)           向下滚动一屏;
                   Ctrl+b                          返回上一屏;
                   =                                  输出当前行号
                   q                                   退出more(退出后,不返回刚才more的位置,回到显示文档后面)
         对less的详细说明:           
              less [参数] 文件
                    -c    从顶部(从上到下)刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新;
                   -f      强制打开文件,二进制文件显示时,不提示警告;
                   -i      搜索时忽略大小写;除非搜索串中包含大写字母;
                   -I      搜索时忽略大小写,除非搜索串中包含小写字母;
         -m    显示读取文件的百分比;
                   -M    显法读取文件的百分比、行号及总行数;
                   -N    在每行前输出行号;
                   -p     pattern搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL/etc/profile
                   -s      把连续多个空白行作为一个空白行显示;
                   -Q     在终端下不响铃;                     
              动作指令:
                   回车键      向下移动一行;
                   y           向上移动一行;
                   空格键      向下滚动一屏;
                   b           向上滚动一屏;
                   d           向下滚动半屏;
                   h           less的帮助;
                   u           向上洋动半屏;
                   w           可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;
                   g           跳到第一行;
                   G           跳到最后一行;
                   p n%(貌似不能用)      跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
                   /pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;
                   v           调用vi编辑器;
                   q           退出less
                   !command 调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件;  
     
    12. 显示一个命令的帮助:
             命令  --help(或--h)
     
    13. 阅读文件的开头和结尾
             head  -n  2(指定显示行数)  文件名(可多个)
             tail(用法同head)
     
    14. 查找文件内容
             grep  un  day(为了在文件day中查找包含un的行)
     
    15. 在指定目录下查找东西
             find  目录  -name  *.zip  -print(打印出绝对路径)
     
    16.更快速的定位文件:locate
              locate  *.doc          ##locate用于搜索大批量的文件,不需要知道放在了哪个盘
     
    17.通配符
              ”*“   用于匹配文件名中任意长度的字符串;
              ”“ 只匹配一个字符;
              ”[ ]“ 用于匹配所有出现在方括号内的字符;例:ls text [1A]  ##列出以text开头而仅以1或A结束的文件名;
              ”-“   指定一个字符集范围;例:ls text [1-3];
     
    18.命令行补全:
              一次table键,或连续两次table键
     
    3.修改文件和目录         
    1. 新建目录:mkdir
                  mkdir  -v  【文件夹名】          ##-v会显示最后结果
                  mkdir  document  picture       ##新建两个目录
                  mkdir  ~/picture/remp             ##在主目录下新建名为temp的目录(不能在一个没有的文件中创建文件)
                  mkdir  -p  ~/tempx/job          ##可以完整的创建一个子目录
     
    1. 删除目录和文件:rmdir 和 rm
                   rmdir  test               ## rmdir 只能删除空目录
                   rm  test/*.pnp          ## rm可以一次删除一个或几个文件
                   rm  -i  test/hello          ##删除文件前会提示,并等用户通知(对于有写保护的普通文件,不加“-i”也会提示)
                   rm  -f  hello_bak          ##“-f”避免交互,自动对这些问题回答y
                   rm  -r  Photos/          ##递归的删除目录下的所有文件和子目录,最后删除Photos目录            
     
    1. 新建空文件: touch
                   touch hello               ##新建一个hello的空文件
                   touch hello.php         ##修改文件的建立日期      
     
    1. 移动和重命名:mv 
                   mv hello bin/          ##复制文件
                   mv Photos/ 桌面/     ##复制目录
                   mv  -i  hello  test/         ##如果已有文件,显示:mv:是否覆盖“test/hello?"
                   mv  -b  hello  test/          ##在移动文件之前,首先在同名文件的文件名后加一个”~“
     
    1. 改变文件所有权:chown和chgrp
                   sudo chown  lewis:root  days            ##修改days的所有权
                   sudo chown  guest  days                  ##只修改文件属主
                   sudo chown  :root  days                    ##只修改文件的属组
                   sudo chown  -R  lewis  iso/               ## "-R" 表示改变一个目录及其下所有文件(和子目录)的所有权
                   sudo chgrp  nogroup  days              ##改变文件的属组
                   sudo chgrp  nogroup  ios/              ##改变目录的属组
     
    1. 改变文件的权限:chmod
                   chmod  u+rwx  days          ## "用户组+(增加)/-(撤销)权限",用户组包括了文件属主(u), 文件属组(g),其他人(o),和所有人(a)
                                                              ##不写该字段默认改变所有人的权限
                                                              ## 权限包括了读取(r)、写入(w)、执行(x)
                   chomd  ug=rw,o=r  days     ## "用户组=权限" 
                   chmod  o=u  days               ## "用户组1=用户组2",将用户组1的权限和用户组2的权限设为完全相同。
                   八进制表示文件权限“rwx”二进制(111)=八进制(4+2+1)=7
     
    1. 建立链接:ln
                   “符号链接”(软链接)需要使用带 -s 参数的 ln 命令,只是取了一个别名,删除链接的名字,不会影响源文件
                   ln  -s  days  my_days          ##文件建立一个名为my_days的符号链接指向文本文件days(起别名)
                   ln  -s  /usr/local/share/  local_share          ## 目录建立符号链接
                   “硬链接”,不带参数,将两个独立的文件联系在一起,和符号链接的区别:硬链接是直接引用,符号链接是名称引用
                   ln  days  hard_days
     
    1. 输出重定向:“>”“>>”"<<"
                   标准输出总是指向显示器
                   ls  >  ~/ls_out                    ##如果ls_out文件不存在,那么“>”会试图建立这个文件,
                                                             ##如果已经存在,则“>“会删除文件中原有的内容,然后用新内容替代
                   echo  "Hello"  > hello         ##将Hello字符串输入到hello文件中
                   echo  "www"  >> hello      ##将字符串 追加 到文本的后面
                   uname  -r  >> hello          ##将uname产生的版本信息 追加 到hello中   
                   date  >>  hello                  ##将date命令产生的当前日期时间追加到hello中
                  例子: “立即文档”
                   cat  <<  EOF                    ##cat命令从键盘接收两行输入,并送往标准输出
                        >hello
                        >bye
                        >EOF
                   cat  << END > hello          ##首先让cat命令以立即文档的方式获取输入,然后再把cat的输出重定向到hello文件中
                        >hello world
                        >bye
                        >END
    1. 管道“|”          
                例子:ls 首先列出当前目录下的所有文件名,管道“|”接收到这些输出,并把它们发送给grep命令作为输入。最后grep在这堆文件列表中查找              
               包含字符串ay的文件名,并在标准输出(也就是显示器)中显示。
               ls  |  grep  ay
               days
               hard_days
               mplayer
               mplayer~
               my_days
     
    1. 打开文本文件:vi、vim、sudo gedit  文件路径(可绝对可相对,在gedit中打开) 
              sudo gedit 文件路径          ##如果没有该文件,系统会自动创建
     
    1. 压缩工具:gzip和bzip2
              gzip(或gunzip)支持的扩展名有 . gz、. Z、-gz、. z、-z 和 z
              gzip  test.tar               ##压缩 ,会被压缩成test.tar.gz(替换)
              gunzip test.tar.gz       ##解压缩,方法1
              gzip  -d  test.tar.gz     ##解压缩,方法2
              gzip  -l  test.tar.gz      ##查看压缩效果,文件大小以字节为单位
              gzip  -tv  test.tar.gz    ##-t选项用来测试压缩文件的完整性,-v 显示测试结果
           
              bzip2可以识别压缩文件的格式包括.bz2、.bz、.tbz2、.tbz和bzip2,与gzip用法基本一致,有更高的压缩率,但是以压缩速度为代价
              bzip2  test.tar             ##压缩,会被压缩成test.tar.bz2(替换)
              bunzip2 test.tar.bz2    ##解压缩,方法1
              bzip2 -d test.tar.bz2    ##解压缩,方法2
     
    1. 存档工具:tar、dd
              文件打包:tar(和gzip不同的是,tar不会删除原来的文件
                   tar  -cvf  test.tar  test/          ##将Shell目录连同其下的文件一同打包成文件test.tar
                        -c 指导tar创建归档文件,
                        -v 用于显示命令的执行过程,
                        -f 则用于指定归档文件的文件名                  
                   tar  -xvf  test.tar                    ##解开归档文件
                        -x 用于解开归档文件
                   tar  -cvwf  test.tar  test/          ##压缩征求用户意见
                   tar  -xvwf  test.tar                    ##抽出时征求用户意见
                        -w 用于每次将单个文件加入(或者抽出)归档文件时征求用户的意见,y/n
                   tar  -czvf  shell.tar.gz  shell/     ##直接将文件压缩成shell.tar.gz格式
                        -z 先调用tar命令,再调用gzip命令,等同于两条指令                   
                   tar  -xzf shell.tar.gz                   ##直接解压成shell
                        -z 先调用gunzip指令,再调用tar指令
              转移文件:dd
                   dd  if=/dev/cdrom  of=CD.iso          ##dd命令使用 if 选项指定输入端的文件系统,而 of选项则指定其输出端。
                                                                           ##这条命令将一张CD完整的转储为iso镜像文件
     
     
     
     ————————参考《Linux从入门到精通》刘忆智
  • 相关阅读:
    window 10 node.js 安装 2502 2503错误解决方法
    高清方案在手机微信上的一个奇葩问题,当字数变多,会莫名其妙的变大
    非node环境 vue-rouder 学习笔录4 命名视图
    非node环境 vue-rouder 学习笔录3 嵌套路由
    非node环境 vue-rouder 学习笔录2 路由监听和动态路由匹配
    非node环境 vue-rouder 学习笔录1
    VUE入门实例,模版组件用法
    用swiper可隐藏滑动导航和内容滑动联动
    在一次引入vue的时候使用swiper出现swiper无效情况
    [BZOJ 3230]相似子串
  • 原文地址:https://www.cnblogs.com/chinawjb/p/5240861.html
Copyright © 2011-2022 走看看