免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 948 | 回复: 0
打印 上一主题 下一主题

鸟哥的Linux私房菜学习笔记二 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-30 11:27 |只看该作者 |倒序浏览
Linux 档案与目录管理
1. 目录与路径
    1.1 相对路径与绝对路径
    1.2 目录的相关操作: cd, pwd, mkdir, rmdir
    1.3 关于执行文件路径的变量: $PATH
2. 档案与目录管理
    2.1 档案与目录的检视: ls
    2.2 复制、移动与删除: cp, rm, mv
    2.3 取得路径的文件名称与目录名称
3. 档案内容查阅:
    3.1 直接检视档案内容: cat, tac, nl
    3.2 可翻页检视: more, less
    3.3 资料撷取: head, tail
    3.4 非纯文字文件: od
    3.5 修改档案时间与建置新档: touch
4. 档案与目录的预设权限与隐藏权限
    4.1 档案预设权限:umask
    4.2 档案隐藏属性: chattr, lsattr
    4.4 档案特殊权限:SUID/SGID/Sticky Bit
    4.3 档案类型:file
5. 档案的搜寻:which, whereis, locate, find
目录的相关操作:
.        代表此层目录
..       代表上一层目录
-        代表前一个工作目录
~        代表『目前使用者身份』所在的家目录
~account 代表 account 这个使用者的家目录
• cd:变换目录
• pwd:显示目前的目录     
  [ -P] :显示出确实的路径,而非使用连结 (link) 路径。
• mkdir:建立一个新的目录:
[root@linux ~]# mkdir [-mp] 目录名称
参数:
-m :设定档案的权限喔!直接设定,不需要看预设权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录递归建立起来!
• rmdir:删除一个空的目录
[root@linux ~]# rmdir [-p] 目录名称
参数:
-p :连同上层『空的』目录也一起删除
rm -rf      将所有目录下的东西都删除.
echo $PATH    显示环境变量
example: 将 /root的路径加入 PATH 当中  :#PATH="$PATH":/root
档案与目录的检视: ls
[root@linux ~]# ls [-aAdfFhilRS] 目录名称
[root@linux ~]# ls [--color={none,auto,always}] 目录名称
[root@linux ~]# ls [--full-time] 目录名称
参数:
-a  :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来~
-A  :全部的档案,连同隐藏档,但不包括 . 与 .. 这两个目录,一起列出来~
-d  :仅列出目录本身,而不是列出目录内的档案数据
-f  :直接列出结果,而不进行排序 (ls 预设会以档名排序!)
-F  :根据档案、目录等信息,给予附加数据结构,例如:
            *:代表可执行档; /:代表目录; =:代表 socket 档案; |:代表 FIFO 档案;
-h  :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来;
-i  :列出 inode 位置,而非列出档案属性;
-l  :长数据串行出,包含档案的属性等等数据;
-n  :列出 UID 与 GID 而非使用者与群组的名称 (UID 与 GID 会在账号管理提到!)
-r  :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R  :连同子目录内容一起列出来;
-S  :以档案容量大小排序!
-t  :依时间排序
--color=never  :不要依据档案特性给予颜色显示;
--color=always :显示颜色
--color=auto   :让系统自行依据设定来判断是否给予颜色
--full-time    :以完整时间模式 (包含年、月、日、时、分) 输出
--time={atime,ctime} :输出 access 时间或 改变权限属性时间 (ctime) 而非内容变更时间 (modification time)
复制、移动与删除: cp, rm, mv
cp (复制档案或目录):
[root@linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination)
[root@linux ~]# cp [options] source1 source2 source3 .... directory
参数:
-a  :相当于 -pdr 的意思;
-d  :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f  :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i  :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l  :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p  :连同档案的属性一起复制过去,而非使用预设属性;
-r  :递归持续复制,用于目录的复制行为;
-s  :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u  :若 destination 比 source 旧才更新 destination !
rm (移除档案或目录):
[root@linux ~]# rm [-fir] 档案或目录
参数:
-f  :就是 force 的意思,强制移除;
-i  :互动模式,在删除前会询问使用者是否动作
-r  :递归删除啊!最常用在目录的删除了
mv (移动档案与目录,或更名):
[root@linux ~]# mv [-fiu] source destination
[root@linux ~]# mv [options] source1 source2 source3 .... directory
参数:
-f  :force 强制的意思,强制直接移动而不询问;
-i  :若目标档案 (destination) 已经存在时,就会询问是否覆盖!
-u  :若目标档案已经存在,且 source 比较新,才会更新 (update)
取得路径的文件名称与目录名称:
[root@linux ~]# basename /etc/sysconfig/network
network  
档案内容查阅:
cat  由第一行开始显示档案内容
tac  从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl   显示的时候,顺道输出行号!  
more 一页一页的显示档案内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行:  [root@linux ~]# head [-n number] 档案
tail 只看尾几行:  [root@linux ~]# tail [-n number] 档案
od   以二进制的方式读取档案内容!
•  cat (concatenate)
[root@linux ~]# cat [-AEnTv]
参数:
-A  :相当于 -vET 的整合参数,可列出一些特殊字符~
-E  :将结尾的断行字符 $ 显示出来;
-n  :打印出行号;
-T  :将 [tab] 按键以 ^I 显示出来;
-v  :列出一些看不出来的特殊字符
• nl (添加行号打印)
[root@linux ~]# nl [-bnw] 档案
参数:
-b  :指定行号指定的方式,主要有两种:
      -b a :表示不论是否为空行,也同样列出行号;
      -b t :如果有空行,空的那一行不要列出行号;
-n  :列出行号表示的方法,主要有三种:
      -n ln :行号在屏幕的最左方显示;
      -n rn :行号在自己字段的最右方显示,且不加 0 ;
      -n rz :行号在自己字段的最右方显示,且加 0 ;
-w  :行号字段的占用的位数。
非纯文字文件: od
[root@linux ~]# od [-t TYPE] 档案
参数:
-t  :后面可以接各种『类型 (TYPE)』的输出,例如:
      a       :利用预设的字符来输出;
      c       :使用 ASCII 字符来输出
      d[size] :利用十进制(decimal)来输出数据,每个整数占用 size bytes ;
      f[size] :利用浮点数值(floating)来输出数据,每个数占用 size bytes ;
      o[size] :利用八进位(octal)来输出数据,每个整数占用 size bytes ;
      x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size bytes ;
修改档案时间与建置新档: touch
modification time (mtime):『内容数据』变更时
status time (ctime):『状态 (status)』改变,权限与属性......
access time (atime):『该档案的内容被取用』
[root@linux ~]# touch [-acdmt] 档案
参数:
-a  :仅修订 access time;
-c  :仅修改时间,而不建立档案;
-d :后面可以接日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime ;
-t :后面可以接时间,格式为[YYMMDDhhmm]
档案预设权限:umask    (该默认值需要减掉的权限)
档案隐藏属性:
chattr (设定档案隐藏属性):
[root@linux ~]# chattr [+-=][ASacdistu] 档案或目录名称
参数:
+   :增加某一个特殊参数,其它原本存在参数则不动。
-   :移除某一个特殊参数,其它原本存在参数则不动。
=   :设定一定,且仅有后面接的参数
A  :当设定了 A 这个属性时,这个档案(或目录)的存取时间 atime (access)将不可被修改,可避免例如手提式计算机容易有磁盘 I/O 错误的情况发生!
S  :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!可以有效的避免数据流失!
a  :当设定 a 之后,这个档案将只能增加数据,而不能删除,只有 root才能设定这个属性。
c  :这个属性设定之后,将会自动的将此档案『压缩』,在读取的时候将会自动解压缩,但是在储存的时候,将会先进行压缩后再储存(看来对于大档案似乎蛮有用的!)
d  :当 dump(备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)不具有 dump 功能
i  :这个 i 可就很厉害了!他可以让一个档案『不能被删除、改名、设定连结也无法写入或新增资料!』对于系统安全性有相当大的帮助!
j  :当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在journal 中!但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效!
s  :当档案设定了 s 参数时,他将会被完全的移除出这个硬盘空间。
u  :与 s 相反的,当使用 u 来设定档案时,则数据内容其实还存在磁盘中,可以使用来 undeletion.
•  lsattr (显示档案隐藏属性)
[root@linux ~]# lsattr [-aR] 档案或目录
参数:
-a :将隐藏文件的属性也秀出来;
-R :连同子目录的数据也一并列出来!
档案特殊权限: SUID/SGID/Sticky Bit
• 4 为 SUID
• 2 为 SGID
• 1 为 Sticky bit
档案类型:file
档案的搜寻:
• which (寻找『执行档』):
[root@linux ~]# which [-a] command
参数:
-a :将所有可以找到的指令均列出,而不止第一个被找到的指令名称
whereis (寻找特定档案):||||   locate
[root@linux ~]# whereis [-bmsu] 档案或目录名
参数:
-b    :只找 binary 的档案
-m    :只找在说明文件 manual 路径下的档案
-s    :只找 source 来源档案
-u    :没有说明档的档案!
• find
[root@linux ~]# find [PATH] [option] [action]参数:
1. 与时间有关的参数:
   -atime n :n 为数字,意义为在 n 天之前的『一天之内』被 access 过的档案;
   -ctime n :n 为数字,意义为在 n 天之前的『一天之内』被 change 过状态的档案;
   -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被 modification 过的档案;
   -newer file :file 为一个存在的档案,意思是说,只要档案比 file 还要新,就会被列出来~
2. 与使用者或群组名称有关的参数:
   -uid n :n 为数字,这个数字是使用者的账号 ID,亦即 UID ,这个 UID 是记录在/etc/passwd 里面与账号名称对应的数字。这方面我们会在第四篇介绍。
   -gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在/etc/group,相关的介绍我们会第四篇说明~
   -user name :name 为使用者账号名称喔!例如 dmtsai
   -group name:name 为群组名称喔,例如 users ;
   -nouser    :寻找档案的拥有者不存在 /etc/passwd 的人!
   -nogroup   :寻找档案的拥有群组不存在于 /etc/group 的档案!当您自行安装软件时,很可能该软件的属性当中并没有档案拥有者,这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。
3. 与档案权限及名称有关的参数:
   -name filename:搜寻文件名称为 filename 的档案;
   -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有:
                   c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB还要大的档案,就是『 -size +50k 』
   -type TYPE    :搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案 (f),装置档案 (b, c), 目录 (d), 连结档 (l), socket (s),及 FIFO (p) 等属性。
   -perm mode  :搜寻档案属性『刚好等于』 mode 的档案,这个 mode 为类似 chmod的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !
   -perm -mode :搜寻档案属性『必须要全部囊括 mode 的属性』的档案,举例来说,我们要搜寻 -rwxr--r-- ,亦即 0744 的档案,使用 -perm -0744,当一个档案的属性为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。
   -perm +mode :搜寻档案属性『包含任一 mode 的属性』的档案,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm +755 时,但一个档案属性为 -rw-------也会被列出来,因为他有 -rw.... 的属性存在!
4. 额外可进行的动作:
   -exec command :command 为其它指令,-exec 后面可再接额外的指令来处理搜寻到 的结果。
   -print        :将结果打印到屏幕上,这个动作是预设动作!
dd
[root@linux ~]# dd if="input_file" of="outptu_file" bs="block_size" \
count="number"
参数:
if   :就是 input file 啰~也可以是装置喔!
of   :就是 output file 喔~也可以是装置;
bs   :规划的一个 block 的大小,如果没有设定时,预设是 512 bytes
count:多少个 bs 的意思。
cpio
[root@linux ~]# cpio -covB  > [file|device]
vi 文字处理器
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
寄存器操作
"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
区块选择
    v    字符选择,会将光标经过的地方反白选择!
    V    行选择,会将光标经过的行反白选择!
[Ctrl]+v 区块选择,可以用长方形的方式选择资料
    y    将反白的地方复制起来
    d    将反白的地方删除掉
多档案编辑
  :n   编辑下一个档案
  :N   编辑上一个档案
:files 列出目前这个 vim 的开启的所有档案
多窗口功能
:sp [filename] 开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示)。
[ctrl]+wj      按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j ,则光标可移动到下方的窗口。
[ctrl]+wk      同上,不过光标移动到上面的窗口。
[ctrl]+wq      其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+wj 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+wq 啊!
DOS 与 Linux 的断行字符
[root@linux ~]# dos2unix [-kn] file [newfile]
[root@linux ~]# unix2dos [-kn] file [newfile]
参数:
-k  :保留该档案原本的 mtime 时间格式 (不更新档案上次内容经过修订的时间)
-n  :保留原本的旧档,将转换后的内容输出到新档案,如: dos2unix -n old new




本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93267/showart_1884289.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP