设为首页 收藏本站
查看: 336|回复: 0

[经验分享] 《Unix & Linux 大学教程》

[复制链接]

尚未签到

发表于 2016-3-8 08:42:41 | 显示全部楼层 |阅读模式
 

  
学习笔记,内容基础,适合初学者。

  
阅读之前,请务必花30秒查看前言说明(在第一、二章前面部分)
《Unix & Linux 大学教程》 - 第一、二章 学习笔记    Unix简介 & 什么是Linux?什么是Unix
《Unix & Linux 大学教程》 - 第三、四章 学习笔记    Unix连接 & 开始使用Unix

《Unix & Linux 大学教程》 - 第五、六章 学习笔记    GUI:图形用户界面 & Unix工作环境

《Unix & Linux 大学教程》 - 第七、八章 学习笔记    Unix键盘使用 & 能够立即使用的程序

《Unix & Linux 大学教程》 - 第九、十章 学习笔记    文档资料:Unix手册与Info & 命令语法

《Unix & Linux 大学教程》 - 第十一、十二章 学习笔记    shell & 使用shell:变量和选项

《Unix & Linux 大学教程》 - 第十三章 学习笔记    使用shell:命令和定制

《Unix & Linux 大学教程》 - 第十四、十五章 学习笔记     使用shell:初始化文件

《Unix & Linux 大学教程》 - 第十六、十七章 学习笔记 过滤器:简介和基本操作

《Unix & Linux 大学教程》 - 第十八章 学习笔记    过滤器:统计和格式化
《Unix & Linux 大学教程》 - 第十九章(一) 学习笔记    过滤器:选取、排序、组合及变换
《Unix & Linux 大学教程》 - 第十九章(二)、第二十章 学习笔记  过滤器:选取、排序、组合及变换 正则表达式
  《Unix & Linux 大学教程》 - 第二十一章 学习笔记  显示文件
  《Unix & Linux 大学教程》 - 第二十二章(一) 学习笔记  vi文本编辑器(一)
  《Unix & Linux 大学教程》 - 第二十二章(二) 学习笔记  vi文本编辑器 (二)
  《Unix & Linux 大学教程》 - 第二十二章(三) 学习笔记  vi文本编辑器 (三)
《Unix & Linux 大学教程》 - 第二十三章 学习笔记  Unix文件系统
  《Unix & Linux 大学教程》 - 第二十四章 学习笔记  目录操作
  《Unix & Linux 大学教程》 - 第二十五章 学习笔记  文件操作
  《Unix & Linux 大学教程》 - 第二十六章(一) 学习笔记  进程和作业控制
  《Unix & Linux 大学教程》 - 第二十六章(二) 学习笔记  进程和作业控制
  《Unix & Linux 大学教程》 - 附录F 时区与24小时制时间
  
  
  
  第二十四章:目录操作
  ls ~用户名:列出此用户的home目录下的文件
  pwd(print working directory):显示工作目录
  
  
  cd(change directory,改变目录)
  语法:
  cd [-LP] [directory | -]
  选项LP与符号链接相关,下一章中说明
  cd - :返回到之前目录中
  
  
  mkdir(创建目录)
  语法:
  mkdir [-pdirectory...
  注意:不能创建两个相同的文件夹;子目录不能在父目录之前创建
  -p(make parent,创建父目录):自动创建所需的父目录
  
  
  
  rmdir(删除目录)
  语法:
  rmdir [-pdirectory...
  注意:只有空目录才能被删除;不能删除工作目录和根目录之间的任何目录
  -p(delete parent,删除父目录):自动移除所有需要移除的父目录
  比如:当前文件夹下有一下目录结构
  1/2/3/4/5
  并且所有文件夹中都没有文件,如果想一次全部移除,使用rmdir 1/是不行的,因为文件夹不为空,使用rmdir 1/2/3/4/5也只会删除一层目录
  这时可以使用rmdir -p 1/2/3/4/5
  
  
  
  mv(移动或重命名目录)
  语法:
  mv directory target
  当directorytarget相同时,将重命名directorytarget
  mv也可以对文件进行操作(25章)
  
  
  
  目录栈
  pushd、popd、dirs(shell内部命令,Korn Shell中不可用)
命令动作
dirs显示名称:home目录显示为~
dirs -l显示名称:home目录显示为完整路径
dirs -v显示名称,每行一个,并且有数字标识
pushd directory改变工作目录,将directory压入到栈中
pushd +n改变工作目录:将目录#n移到栈顶
popd改变工作目录:弹出栈顶
popd +n从栈中移除目录#n
dirs -c出当前工作目录外,移除栈中的全部目录
  注意:dirs使用选项时必须单独指定,不能连在一起
  (从此以后,切换目录就方便多了。。。)
  
  
  ls
  语法:
  ls [-aCdFglrRs1] [name...]
  ls默认按字母表顺序显示目录中文件名,关于环境变量LC_COLLATE说明参考第19章
  export LC_COLLATE=C
  -C:强制以列的形式显示
  -1:每个文件名占一行的方式显示
  -r:反序显示
  -R:递归显示
  -h(human-readable):更适合人类阅读,以合适的单位显示
  -a:查看隐藏文件和隐藏文件夹
  shell和vi/Vim使用的隐藏文件
文件名应用
.bash_login登录文件:Bash
.bash_logout注销文件:Bash
.bash_profile登录文件:Bash
.bashrc环境文件:Bash
.cshrc环境文件:C-Shell、Tcsh
.exrc初始化文件:vi、Vim
.history历史文件:Bash、Korn Shell、C-Shell、Tcsh
.login登录文件:C-Shell、Tcsh
.logout注销文件:C-Shell、Tcsh
.profile登录文件:Bash、Korn Shell、Bourne Shell
.tcshrc环境文件:Tcsh
.vimrc初始化文件:Vim
  
  -F:检查文件类型
标志含义
普通文件:非执行文件
*普通文件:可执行文件
/目录
@符号链接(见第25章)
|命名管道/FIFO(见第25章)
  
  使用颜色表示不同类型的文件
  ls --color[=always|=auto|=never] [name...]
  下面3条命令等价
  ls --color=always
  ls --color=yes
  ls --color=force
  如果使用ls --color=yes | less,那么会看到一些用于生成颜色的”乱码
  
  不使用颜色,下面3条命令等价
  ls --color=never
  ls --color=no
  ls --color=none
  
  仅当输出要在终端上显示时使用颜色,下面3条命令等价
  ls --color=auto
  ls --color=tty
  ls --color=if-tty
  
  
  file [name...]
  检查文件类型,给出更大量的技术信息
  来看看android4.0原生email下的文件
  
  file *
  Android.mk:                 ASCII English text
  AndroidManifest.xml:        XML  document text
  CleanSpec.mk:               ASCII English text
  MODULE_LICENSE_APACHE2:     empty
  NOTICE:                     ASCII English text
  assets:                     directory
  bin:                        directory
  emailcommon:                directory
  gen:                        directory
  proguard.flags:             ASCII C++ program text
  remove-exchange-support.sh: Bourne-Again shell script text executable
  res:                        directory
  src:                        directory
  tests:                      directory
 
再来看看less程序文件的信息
file /bin/less
/bin/less: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

  
  
  磁盘空间使用情况
  ls -hs
  -s(size):每个文件以KB为单位列出文件的大小,可以列出目录大小
  -h(human-readable):更适合人类阅读,以合适的单位显示
  
  du [-achks] [name...]
  默认只统计文件夹,不显示文件大小信息
  -h(human-readable):更适合人类阅读,以合适的单位显示
  -k:强制du以1KB作为单位
  -s(sum,总和):只显示总和
  -a(all,全部):显示文件信息(否则只显示文件夹信息)
  -c(count,统计):在末尾显示总量
  
  df(disk free-space,磁盘可用空间)
  -h(human-readable):更适合人类阅读,以合适的单位显示
  
  df -h
  Filesystem            Size  Used Avail Use% Mounted on
  /dev/sda1              47G  5.0G   40G  12% /
  none                  1.9G  240K  1.9G   1% /dev
  none                  1.9G  1.4M  1.9G   1% /dev/shm
  none                  1.9G  340K  1.9G   1% /var/run
  none                  1.9G     0  1.9G   0% /var/lock
  /dev/sda7             197G  165G   23G  89% /home
能看到分区情况
  
  看看我的手机空间使用情况(这里无法使用-h选项,默认就是-h,即使执行了\df也是如此,没有起过别名)
  df
  Filesystem             Size   Used   Free   Blksize
  /dev                   291M    64K   291M   4096
  /system                787M   657M   129M   4096
  /data                    1G   762M   371M   4096
  /cache                 118M     4M   114M   4096
  /devlog                 19M    13M     5M   4096
  /vendor/firmware/misc   199M    21M   178M   4096
  /vendor/firmware/adsp   199M     5M   194M   4096
  /mnt/asec              291M     0K   291M   4096
  /mnt/obb               291M     0K   291M   4096
  /app-cache               8M     0K     8M   4096
  /data/secure/data      291M     0K   291M   4096
  /data/DxDrm/fuse: Permission denied
  /mnt/sdcard              7G     6G     1G   16384
  /mnt/secure/asec         7G     6G     1G   16384
  /mnt/asec/com.skyjetinter.chaoslite-1    50M    48M     2M   4096
  /mnt/asec/cn.buding.moviecoupon-1     4M     2M     1M   4096
  /mnt/asec/com.revo.sog-1    15M    12M     3M   4096
 
  quota -v
  如果在共享系统上,可以使用此命令查看使用及限制情况
  -v(verbose,详细):详细信息
  
  注意:ls -s、du、df、quota几个程序以不同的方式估计存储空间的使用情况,所以结果可能会有些不同
  
  
  文件系统中,空间以固定大小的组块进行分配
  固定大小的组块称为块(block)
  根据系统的不同,块的大小有512字节、1KB、2KB、4KB等几种
  为文件所分配的最小磁盘空间数量就是一个块
   
  磁盘存储空间也以固定大小的组块分配,称之为分配单元(allocation unit)或簇(cluster)
  分配单元的大小取决于文件系统和存储设备。块大小为1K,分配单元为8K,只有一个字节的文件实际需要占用8K的磁盘空间
  
  超块(superblock):特殊区域,存放与文件系统本身有关的关键信息
  
  查看块大小方法
  Linux:dumpe2fs
  Solaris:fstyp -v
  FreeBSD:dumpfs
  
  df -h
  Filesystem            Size  Used Avail Use% Mounted on
  /dev/sda1              47G  5.0G   40G  12% /
  none                  1.9G  232K  1.9G   1% /dev
  none                  1.9G  1.4M  1.9G   1% /dev/shm
  none                  1.9G  340K  1.9G   1% /var/run
  none                  1.9G     0  1.9G   0% /var/lock
  /dev/sda7             197G  165G   23G  89% /home
  
比如我想查看/dev/sda1的情况
  sudo dumpe2fs /dev/sda1 | grep "Block size"
  dumpe2fs 1.41.12 (17-May-2010)
  Block size:               4096
 
  通配符(wildcard)
  注意与正则区别开,他们比正则简单
符号含义
*匹配任何0个或多个字符构成的序列
?匹配任何单个字符

    匹配list中任何字符
    [^list]匹配不在list中的任何字符
    {string1|string2...}匹配其中一个指定的字符串
      
    预定义类和第20章说的一样

    含义类似于
    [:lower:]小写字母a-z
    [:upper:]大写字母A-Z
    [:alpha:]大小写字母a-zA-Z
    [:alnum:]大小写字母、数字a-zA-Z0-9
    [:digit:]数字0-9
      
      在android源码中查看packages和frameworks下的文件
      
      ls {packages,frameworks}
      frameworks:
      base  compile  ex  media  opt  support
      
      packages:
      apps  experimental  inputmethods  providers  wallpapers
     
      
      ls -dltu
      -l(long listing,长列表):长列表
      
      -u:显示文件的访问时间(默认显示为最后修改时间)
      -t:按时间顺序排序(最近到最远)
      -r:按时间顺序排序(最远到最近)(与-t一起使用)
      -d:显示目录本身信息,而不是目录里面的内容信息
      
      ls -ltr
      total 76
      drwxr-xr-x   3 suzhaoqiang suzhaoqiang 4096 2012-07-24 12:31 abi
      drwxr-xr-x   9 suzhaoqiang suzhaoqiang 4096 2012-07-24 12:32 bionic
      drwxr-xr-x   5 suzhaoqiang suzhaoqiang 4096 2012-07-24 12:32 bootable
      drwxr-xr-x   7 suzhaoqiang suzhaoqiang 4096 2012-07-24 12:32 build
      -r--r--r--   1 suzhaoqiang suzhaoqiang   87 2012-07-24 12:32 Makefile
      drwxr-xr-x   8 suzhaoqiang suzhaoqiang 4096 2012-07-24 12:32 cts
      第一行结果为被列举文件所使用的文件系统块总数量
    结果最左边的字符为文件指示符,含义如下
      文件指示符
    指示符含义
    -普通文件
    d目录
    l符号连接
    b特殊文件(块设备)
    c特殊文件(字符设备)
    p命名管道/FIFO
    ssocket
      涉及特殊文件时,Unix区分两种类型的设备
      每次处理一个字节数据的设备(如终端)称为字符设备
      每次处理固定数量字节数据的设备(如磁盘)称为块设备
      
      
      tree(显示目录树)
      语法:
      tree [-adfFilrst] [-L level] [directory...]
      下面5个选项与ls的选项作用相同
      
      -r:反序显示
      -a:查看隐藏文件和隐藏文件夹
      
      -t:按时间顺序排序(最近到最远)
      -F:检查文件类型
      -s(size):每个文件以KB为单位列出文件的大小,可以列出目录大小
      
      -d:只显示目录(也与ls的选项类似)
      -f:显示完整路径名
      -i:选项省略缩进
      -L:指定深度
      -l:跟随所有的符号连接
      
      看看原生4.0下面的emailcommon目录结构,效果如下
      packages/apps/Email/emailcommon$ tree -Fds
      .
      └── [       4096]  src
      ├── [       4096]  com
      │   └── [       4096]  android
      │       └── [       4096]  emailcommon
      │           ├── [       4096]  internet
      │           ├── [       4096]  mail
      │           ├── [       4096]  provider
      │           ├── [       4096]  service
      │           └── [       4096]  utility
      └── [       4096]  org
      └── [       4096]  apache
      ├── [       4096]  commons
      │   └── [       4096]  io
      │       ├── [       4096]  comparator
      │       ├── [       4096]  filefilter
      │       ├── [       4096]  input
      │       └── [       4096]  output
      └── [       4096]  james
      └── [       4096]  mime4j
      ├── [       4096]  codec
      ├── [       4096]  decoder
      ├── [       4096]  field
      │   ├── [       4096]  address
      │   │   └── [       4096]  parser
      │   ├── [       4096]  contenttype
      │   │   └── [       4096]  parser
      │   └── [       4096]  datetime
      │       └── [       4096]  parser
      ├── [       4096]  message
      └── [       4096]  util
      
      30 directories
     
      一些图形文件管理器,大家可自行尝试
      File Runner
      Gentoo
      Nautilus(Gnome提供)
      Konqueror(KDE提供)
      XFE[X File Explorer]
      基于文本的文件管理器
      FDclone(日本版的FD,一种DOS文件管理器)
      Midnight Commander(经典Norton Commander的兼容产品)
      Vim(基于vi命令的文件管理器)
      
      
      
    转贴请保留以下链接

    本人blog地址

    http://su1216.iyunv.com/

    http://blog.csdn.net/su1216/

    运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-187831-1-1.html 上篇帖子: 《Unix & Linux 大学教程》 下篇帖子: Linux下高并发socket最大连接数
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表