学习笔记,内容基础,适合初学者。
阅读之前,请务必花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 大学教程》 - 第二十二章(一) 学习笔记 vi文本编辑器(一)
《Unix & Linux 大学教程》 - 第二十二章(二) 学习笔记 vi文本编辑器 (二)
《Unix & Linux 大学教程》 - 第二十二章(三) 学习笔记 vi文本编辑器 (三)
《Unix & Linux 大学教程》 - 第二十四章 学习笔记 目录操作
《Unix & Linux 大学教程》 - 第二十五章 学习笔记 文件操作
《Unix & Linux 大学教程》 - 第二十六章(一) 学习笔记 进程和作业控制
《Unix & Linux 大学教程》 - 第二十六章(二) 学习笔记 进程和作业控制
《Unix & Linux 大学教程》 - 附录F 时区与24小时制时间
第二十四章:目录操作
ls ~用户名:列出此用户的home目录下的文件
pwd(print working directory):显示工作目录
cd(change directory,改变目录)
语法:
cd [-LP] [directory | -]
选项L和P与符号链接相关,下一章中说明
cd - :返回到之前目录中
mkdir(创建目录)
语法:
mkdir [-p] directory...
注意:不能创建两个相同的文件夹;子目录不能在父目录之前创建
-p(make parent,创建父目录):自动创建所需的父目录
rmdir(删除目录)
语法:
rmdir [-p] directory...
注意:只有空目录才能被删除;不能删除工作目录和根目录之间的任何目录
-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
当directory与target相同时,将重命名directory为target
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
磁盘空间使用情况
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
sudo dumpe2fs /dev/sda1 | grep "Block size"
dumpe2fs 1.41.12 (17-May-2010)
Block size: 4096
通配符(wildcard)
注意与正则区别开,他们比正则简单
符号 | 含义 |
* | 匹配任何0个或多个字符构成的序列 |
? | 匹配任何单个字符 |
[list] | 匹配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 |
s | socket |
涉及特殊文件时,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地址
相关推荐
#### 第二章 Linux是什么 **1. Linux历史** - **起源**: 1991年,Linus Torvalds基于GNU工具和Minix设计灵感开发出Linux内核。 - **重要事件**: - 1969年: Ken Thompson开发Unix原型。 - 1973年: C语言用于重写...
本资料“Linux学习笔记.pdf”将带你深入理解Linux的基础知识和高级应用。 一、Linux系统概述 1. Linux的起源:Linux的诞生源于托瓦兹对Minix系统的不满,他决定创建一个符合个人需求的、免费的Unix-like操作系统...
### Linux系统学习笔记 #### 一、Linux系统Shell介绍 1. **Linux系统Shell类型**:Linux系统提供了多种Shell供用户选择,常见的包括Bourne shell (`sh`), C shell (`csh`), Korn shell (`ksh`)等。其中,`sh`是Unix...
集合了 所有的 Unix命令大全 登陆服务器时输入 公帐号 openlab-open123 telnet 192.168.0.23 自己帐号 sd08077-you0 ftp工具 192.168.0.202 tools-toolss 老师测评网址 http://172.16.0.198:8080/poll/ 各个 ...
- 第一部分的第二个至第十个字符分为三个三元组(triplet),分别表示文件属主、组用户和其他用户的权限。 - 第二部分表示文件的硬链接数目。 - 第三部分表示文件属主。 - 第四部分表示文件属主所在的默认组。 - 第...
【华为数通Redhat Linux ICT全栈新手学习笔记】 在IT行业中,Linux系统因其稳定性、安全性及开源特性,被广泛应用于服务器操作系统。华为数通在众多Linux发行版中选择了Redhat Linux作为其ICT(Information and ...
#### 第二章 Unix标准化及实现 - **主要标准**:介绍POSIX标准、IEEE Std 1003.1以及其他相关标准。 - **主要Unix系统实现简介**:列举不同的Unix变种(如Solaris、AIX、HP-UX等),并简要说明其特点。 - **系统...
以下是对"第11章 Linux操作系统基础"的主要知识点的详细阐述。 一、Linux操作系统简介 Linux是基于Unix的操作系统,由林纳斯·托瓦兹于1991年创建。它的内核是开源的,允许全球开发者对其进行修改和优化。Linux系统...
通过“嵌入式Linux入门笔记”,学习者将能了解嵌入式系统的基础概念,熟悉Linux内核、设备驱动、Bootloader的工作原理,掌握构建和调试嵌入式系统的技能,为成为一名合格的嵌入式Linux开发者打下坚实基础。
IPv4由32位二进制组成,通常以四段十进制表示,如192.168.78.22;IPv6则为128位二进制,以十六进制表示,如fe80::bc92:8。随着IPv4地址的枯竭,IPv6正在逐渐普及。 总的来说,这个PDF教程旨在帮助读者掌握Linux环境...
### Shell脚本编程知识点概述 #### 一、预备知识与基本概念 在开始Shell脚本文档的学习之前,首先需要理解Shell...以上就是文档《总结搜集的shell脚本学习笔记(完结篇)》中所涵盖的主要知识点,希望对你有所帮助。
Linux 101考试模块化培训笔记是为Linux专业人士协会(LPI)的LPI 101考试准备的,尤其针对考试的第2版目标。这本培训笔记由Andrew McGill编写,属于Leading Edge Business Solutions公司的Linux培训计划的一部分。该...
### Perl24学时详细笔记知识点总结 #### 第一学时:Perl简介与注释 - **Perl语言介绍**:Perl是一种高级编程语言,广泛应用于系统管理、Web开发及文本处理等领域。它拥有强大的字符串处理功能,使得在处理文本文件...
C ++入门手册第五版笔记与知识点整合 一.C ++基础知识 二。函数 三。类 四.IO库 ##五。顺序容器 六。泛型编程 七。关联容器 八。动态内存 九。拷贝控制 十。重载运算与类型转换 十一。面向对象程序设计 十二。模板...
2. 第二范式(2NF):非主键属性完全依赖于主键。 3. 第三范式(3NF):消除传递依赖。 七、数据库安全性 1. 用户权限管理:GRANT和REVOKE命令分配和撤销用户权限。 2. 视图(View):提供安全访问,只允许用户看到...