您的位置:首页 > 运维架构 > Shell

《Linux命令行与shell脚本编程大全》 第三章 学习笔记

2012-11-26 12:58 369 查看
第一部分:Linux命令行
《Linux命令行与shell脚本编程大全》 第一章:初识Linux shell
《Linux命令行与shell脚本编程大全》 第二章:走进shell
《Linux命令行与shell脚本编程大全》 第三章:基本的bash shell命令
《Linux命令行与shell脚本编程大全》 第四章:更多的bash shell命令
《Linux命令行与shell脚本编程大全》 第五章:使用Linux环境变量
《Linux命令行与shell脚本编程大全》 第六章:理解Linux文件权限
《Linux命令行与shell脚本编程大全》 第七章:管理文件系统
《Linux命令行与shell脚本编程大全》 第八章:安装软件程序
《Linux命令行与shell脚本编程大全》 第九章:使用编辑器

第二部分:shell脚本编程基础
《Linux命令行与shell脚本编程大全》 第十章:构建基本脚本
《Linux命令行与shell脚本编程大全》 第十一章:使用结构化命令
《Linux命令行与shell脚本编程大全》 第十二章:更多的结构化命令
《Linux命令行与shell脚本编程大全》 第十三章:处理用户输入
《Linux命令行与shell脚本编程大全》 第十四章:呈现数据
《Linux命令行与shell脚本编程大全》 第十五章:控制脚本

第三部分:高级shell编程
《Linux命令行与shell脚本编程大全》 第十六章:创建函数
《Linux命令行与shell脚本编程大全》 第十七章:图形化桌面上的脚本编程
《Linux命令行与shell脚本编程大全》 第十八章:初识sed和gawk
《Linux命令行与shell脚本编程大全》 第十九章:正则表达式
《Linux命令行与shell脚本编程大全》 第二十章:sed进阶
《Linux命令行与shell脚本编程大全》 第二十一章:gawk进阶
《Linux命令行与shell脚本编程大全》 第二十二章:使用其他shell

第四部分:高级shell脚本编程主题
《Linux命令行与shell脚本编程大全》 第二十三章:使用数据库
《Linux命令行与shell脚本编程大全》 第二十四章:使用Web
《Linux命令行与shell脚本编程大全》 第二十五章:使用E-mail
《Linux命令行与shell脚本编程大全》 第二十六章:编写脚本实用工具
《Linux命令行与shell脚本编程大全》 第二十七章:shell脚本编程进阶

第三章:基本的bash shell命令

bash程序使用命令行参数来修改所启动shell的类型
参数描述
-c string从string中读取命令并处理他们
-r启动限制性shell,限制用户在默认目录下活动
-i启动交互性shell,允许用户输入
-s从标准输入读取命令
环境变量PS1、PS2
PS1:控制默认命令行提示符格式
PS2:控制后续命令行提示符格式

bash shell提示符字符串中使用的特殊字符
字符描述
\a报警字符
\d“日 月 年”格式显示的日期
\eASCII转义字符
\h本地主机名
\H完全限定名(FQDN)
\jshell当前管理的任务数
\lshell的终端设备名中的基名
\nASCII换行符
\rASCII回车符
\sshell的名称
\t24小时制HH:MM:SS格式的当前时间
\T12小时制HH:MM:SS格式的当前时间
\@12小时制am/pm格式的当前时间
\u当前用户的用户名
\vbash shell的版本
\Vbash shell的发行版本
\w当前工作目录
\W当前工作目录的基名
\!这个命令在bash shell历史记录中的位置
\#这个命令在当前命令行的位置
\$普通用户下的美元符,root用户下的井号
\nnn与8进制nnn对应的字符
\\反斜线
\[开始一个控制字符序列
\]结束一个控制字符序列
Linux文件系统
Linux PC上安装的第一块硬盘为根驱动器。根驱动器包含了虚拟目录的核心,其他目录都是从那里开始创建的
挂载点(mount point)是虚拟目录中用于分配额外存储设备的目录

ls
(其余参数及例子见#2
单字母全字描述
-A--almost-all不要输出“.”和“..”文件
--author作者
-b--escape输出不可打印字符的8进制值
--block-size=size按size字节大小的块来计算块大小(块数)
-B--ignore-backups不要列出名称中包含波浪线(~)的条目(波浪线用来表示备份的副本)
-F--classify给条目追加文件类型标识符
--file-type只在部分文件类型(非可执行文件)后追加文件类型标识符
--format=word将输出格式化成across(交叉)、commas(逗号)、horizontal(水平)、long(长)、single-column(单列)、verbose(详细)或vertical(垂直)
--group-directories-first在文件之前列出所有目录
-G--no-group长列表输出格式下,不要显示组名(in a long listing, don't print group names)
-h--human-readable打印大小
--si和-h相同,但进制为1000
-i--inode显示每个文件的索引值(inode)(见#1
-L--dereference对于链接文件,显示原文件信息
-n--numeric-uid-gid显示数字类型的userid和groupid以替代名字
-o长列表输出格式下,不要显示组信息(like -l, but do not list group information)
-S--sort=size按文件大小排序输出
-U--sort=none不要将输出排序
-v--sort=version按文本版本排序
-x按行而非列输出条目
-X--sort=extension按文件扩展名排序输出
创建文件(touch) (见#1
复制文件(cp) (见#1
cp命令参数
参数描述
-a归档文件,并保留他们现有的属性
-b创建已存在目标文件的备份,而非覆盖它
-d保留
-f强制覆盖已存在的目标文件,不提示
-i在覆盖目标文件之前提示
-l创建文件链接而非复制文件
-p如果可能,保留文件属性
-r递归复制文件
-R递归复制目录
-s创建一个符号链接而非复制文件
-S覆盖默认的备份文件的后缀(默认为~)
-u仅在源文件比目标文件新的情况下复制
-v详细模式,解释到底发生了什么
-x仅限于当前文件系统的复制
(见#1

链接文件 (见#1
硬链接会创建一个独立的文件,其中包含源文件的信息已经位置。引用硬链接文件等同于引用了源文件

只能在同种存储媒体上的文件之间建立硬链接。不能在不同挂载点下的文件之间创建硬链接,但是可以创建软链接

如果用cp复制一个链接到另一个源文件的文件,那么复制的是源文件的另一个副本,而不是链接文件
可以创建一个指向源文件的新链接,而不用复制链接文件
可以创建指向同一文件的多个链接,但不要创建指向其他符号链接文件的多个符号链接(这样会生成一个链接文件链,容易混淆、断掉)

重命名文件(mv) (见#1#2
删除文件(rm) (见#1
当删除所有此文件的硬链接时,此文件才会被删除
删除软链接指向的文件后,软链接指向无效的文件

创建目录(mkdir) (见#2
删除目录(rmdir) (见#2
查看文件统计信息(stat) (见#1
查看文件类型(file) (见#2
查看整个文件(cat、more、less) (见#16#21
cat -T:制表符用^I代替

more
语法
more [-s ] [file ...]
-s(squeeze,挤压) :将多个空白行压缩成一个
基本命令
h显示帮助信息
<Space>、z前进一屏
q退出程序
高级命令
=显示当前行号
<Return>、s前进一行
d前进(向下)半屏
f前进一屏
b后退一屏
/pattern向前搜索指定模式
/重复上次搜索
!command执行指定的shell命令
v使用当前文件启动vi编辑器
.重复执行前一个命令
n在文件中查找下溢出匹配已指定表达式的内容
'跳到指定表达式匹配到的第一处内容
CTRL+L重绘当前屏
查看部分文件(head、tail) (见#16


1.《Unix & Linux 大学教程》 - 第二十五章 文件操作
2.《Unix & Linux 大学教程》 - 第二十四章 目录操作
3.《Unix & Linux 大学教程》 - 第十六章 过滤器:简介和基本操作
4.《Unix & Linux 大学教程》 - 第二十一章 显示文件


转贴请保留以下链接
本人blog地址
http://su1216.iteye.com/

http://blog.csdn.net/su1216/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: