日期:2014-05-16  浏览次数:20716 次

Linux学习笔记补充

三种更改shell类型的方式:
(1)为以后登录的所有会话更改默认的shell
(2)创建一个运行在默认shell之上的shell,或者和默认shell并行的shell
(3)只改变当前登录会话的shell
前提是当前系统已经包含了想要使用的新shell。登陆后,输入chsh可以更改默认的shell。
以$开头的是Bourne Again shell(Bash) ;以%开头的是TC shell

Linux系统的启动文件:/etc/profile 主要配置环境变量
对于某些shell还有点文件,运行相应shell时,会执行。这些文件称为shell启动文件。
放于主目录(用~表示),

pico编辑器
ctrl+o:写入? ctrl+X:保存并离开
Ctrl+F:向前一个字符? Ctrl+B:向后一个字符 Ctrl+P:向前一行 Ctrl+N:向前一行
Ctrl+E:当前行尾 Ctrl+U:保存


邮件阅读时命令:
r:回复? d:删除? t:显示 n:下一封? p:显示? q:退出? s:保存

-r 文件名:作为附件发送

创建邮件地址别名:alias 别名 全名
方法2:将这些命令加入到.mailrc文件中。以后每次运行mail命令均适用这些别名

全屏邮件系统VS行邮件系统? Kmail图形化电子邮件系统

Linux支持5中文件类型:普通文件、目录、符号链接、特殊文件(设备)、管道文件(FIFO)

在命令行中所有的~呗认为是主目录

目录文件由目录项组成
根目录,位于分层文件系统的顶层,用斜线表示"/",包含一些标准文件和目录

/etc目录:不包含任何二进制文件 主要有管理员使用 普通用户只有读权限

echo [选项][String]-E:不解析转义字符 -e:解析转移字符
常用的转义字符 \c:回车后不换行? \t:制表符? \\反斜线 \n:不输出行尾的换行符
不加参数打印空行

ls -F:显示的目录后加/,可执行文件后加*,符号链接后加@
?? -i:显示icode号码
?? -a:显示所有文件 包含隐藏文件
?? -l:显示详细信息,如访问权限,连接数,所有者,组,文件大小,修改时间
???? 第一字段的第一字母:b_块特殊文件 c_字符特殊文件 d_目录
???????????????????????? l_连接 p_命名管道FIFO
???? 第一字段的其他字母:所有者 组 其他访问者的权限
????? 第二字段:连接数(硬链接)? 第三字段:登陆者的名字
???? 第四字段:所有者的组名? 第五字段:文件大小 字节单位
???? 第6-8字段:最近修改日期和时间
???? 第9字段:文件名

ls -al:显示所有详细信息

隐藏文件的用途:
.addressbook:邮件客户端程序pine的地址薄
.bash_history:保存bash的会话历史记录
.bashrc:Bash shell的设置
.cshrc:Cshell的设置
.exrc:vi的设置
.login:shell的设置 如果是Cshell 则登陆时执行
.mailrc:mail和mailx的设置和地址薄
.profile:shell的设置,如果是Bourne或Korn shell,则登录时执行

echo ~用户名:显示用户主目录

dirs :显示当前的目录堆栈
??? -v:显示目录项和索引号 第一个是栈顶为当前目录 编号0
??? +N:从栈顶算起第N项开始
??? -N:从栈低算起第N项开始
??? -c:堆栈中只保存当前目录
?? -l:显示目录的绝对目录名
?? -v:显示堆栈项,每行一个带索引号

命令pushd:将一目录的绝对路径压入目录堆栈的栈顶,如果不带参数则交换栈顶的两个目录项
? +N:循环移动堆栈项,把从栈顶算起滴N项移到栈顶
? -N:循环移动堆栈项,把从栈低算起滴N项移到栈顶
? -n:不让新压入的成为栈顶项。

命令popd删除,不带参数删除栈顶目录
? -N:从目录堆栈中删除第N项? 同 +N:
?-n:不改变当前目录

Linux不支持普通文件的类型和拓展名类型,因此不能根据文件名确定文件内容
可以用file命令来确定

文件的属性信息存储在inode的数据结构。当创建文件时,系统在磁盘上的inode列表中为文件分配
一个唯一的inode,inode列表又成i-list。linux内核在内存中为所有打开的文件保存一张inode表,
打开一个文件时,系统在inode表为该文件分配一个inode。i-list和inode根据文件的inode进行索引。
inode号可以用于索引inode列表,访问被打开文件的属性,当文件属性改变时,内存中文件对于的inode会
立即更新,磁盘的inode定时更新。

字段link count:系统中这个文件有多少个不同的名称
字段file mode:文件以何种方式打开
字段access permissions:不同用户的不同操作权限
字段file's location on disk:指向磁盘块的直接或间接指针 保存文件的内容

Linux根据文件描述符执行文件操作。内核根据文件描述符查找文件描述符列表,获得指向文件表的指针。
文件表包含了指向inode表中的这个文件的inode指针。访问文件inode接下来通过直接指针和间接指针
访问保存文件内容的磁盘块,完成对文件的操作。

Linux系统允许改变标准文件从而改变单个命令,含shell脚本的执行所操作的文件。
改变标准文件来改变命令所操作的文件的方法叫输入、输出、错误重定向。

保护文件三种策略:每个用户一个登录名和密码;加密;设置访问权限只允许被特定用户访问
密码以明文形式保存在/etc/passwd.这种机制依赖于密码的保密性
加密:命令crypt加密解密
设置权限方式建立在用户分类、访问权限分类、访问操作分类基础上。用户组信息在/etc/group
执行(X)权限不能读写,只能搜索,用ls方式

文件的用户可以有8种权限,用8进制0-7表示,0无任何权限 7所有权限
总共用9位来表示3种用户(User、Group、Others)对应的权限,8进制000-777
第一位表示:文件拥有者对文件拥有的权限
第二位:组对文件拥有的权限
第三位:其他用户对文件的权限
0用-表示,1用r w x表示

chmod 中的symbolic-mode模式控制字,格式<who><operator><privilege>
<who>:u用户 g组 o其他 a全部 ugo全部
<operator>+增加权限 -删除权限 =设置权限
<privilege> r w x u:用户当前权限

0:无权限 1:执行权限 2:写权限 3:写和执行 4:读权限? 5:读和执行
6:读写权限? 7:读写执行

3个最重要的位:
? set-user-ID位:? 允许用户更改自己的有效用户标识使自己拥有运行该命令的用户所没有的一些特权。
????????????????? 每个linux文件都有一个附加保护位,SUID位。
????????????????? 通过chmod 4XXX file-list;4XXX每位均8进制,4表示SUID=1
????????????????? 或chmod u+x file-list
? set-group-ID位:使进程拥有组的访问权限。chmod 2XXX file-list或 chmod g+s file-list
? sticky位:保证未被授权的用户不能删除或重命名某个目录下其他用户的文件。
??????????? chmod 1XXX file-list或chmod +t file-list

zdiff 和zcmp用于比较压缩文件 zdiff 先解压文件再把他们联通命令选项传递给diff命令
zcmp先解压文件再把他们联通命令选项传递给cmp命令

unip删除文件中所有连续的重复行,并输出到output-file文件,输入文件不变
uniq [选项] [+N] [input-file][output-file]

文件打印和文件显示相似都是把文件内容送到输出设备,一个是显示器一个是打印机。
区别:linux系统下每个用户一个独立的显示器