1.Linux系统架构
内核(kernel)
内存管理(mm)
Linux内存特性无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能
进程管理(sched)
Linux使用了比较简单的基于优先级的进程调度算法选择新的进程
Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等
设备驱动程序(drivers)
设备驱动程序运行在高特权级的处理器环境中
文件系统和网络管理等(fs,net)
略
shell
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器
BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell
文件系统
挂载(mount)
Linux 中最普遍使用的文件系统是 Ext2,它也是 Linux 土生土长的文件系统。但 Linux 也能够支持 FAT、VFAT、FAT32、MINIX 等不同类型的文件系统
应用程序
略
2.Linux基本命令
man
man <COMMAND NAME> //查看指令的用户手册
ls
ls [OPTION] [FILE] //以当前目录开始,向下列出所有文件
-a :全部的档案,连同隐藏档案( 开头为 . 的档案) 一起列出来 -d :仅列出目录本身,而不是列出目录内的档案数据 -f :直接列出结果,而不进行排序 (ls 预设会以档名排序) -F :根据档案、目录等信息,给予附加数据结构,例如: *:代表可执行档; /:代表目录; =:代表 socket 档案; |:代表 FIFO 档案; -h :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来; -i :列出 inode 位置,而非列出档案属性; -l :长数据串行出,包含档案的属性等等数据(类似于windows详细信息); -r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小; -R :连同子目录内容一起列出来; -S :以档案容量大小排序! -t :依时间排序
touch
touch [OPTION] [FILE] //创建空文件[FILE]
-t :后面可以接时间,格式为[YYMMDDhhmm] 创建时间
cat
cat [OPTION] [FILE] //将[FILE]或标准输入组合输出到标准输出。
-A, --show-all -b, 对非空输出行编号 -E, 在每行结束处显示 $ -n, 对输出的所有行编号 -s, 不输出多行空行 如果[文件]缺省,或者[文件]为 - ,则读取标准输入。
mkdir
mkdir [OPTION] [DIR] //若指定目录不存在则创建目录
-p:需要时创建目标目录的上层目录,即使这些目录已存在也不当作错误处理
-v:每次创建新目录都显示信息
rmdir
rmdir [OPTION] [DIR] //删除非空的目录
-p: 删除指定目录及其上级文件夹
-v:输出处理的目录详情
mv
mv [OPTION] [-T] [SourceFILE] [DestinationFILE] //将源文件重命名为目标文件
mv [OPTION] [SourceFILE] [DIR] //将源文件移动到指定目录
-f:覆盖前不询问 -i: 覆盖前询问 -n:不覆盖已存在文件 如果您指定了-i、-f、-n 中的多个,仅最后一个生效。 -u: 只在源文件文件比目标文件新,或目标文件不存在时才进行移动 -v:详细显示进行的步骤
cp
cp [OPTION] [FILE]/[DIR] [DIR] //复制
-b 诺删除或者覆盖目标文件将对文件进行备份,备份的文件以备份的字符结尾 -f 强制复制 -i 交互模式,覆盖目标文件之前要进行询问 -r 处理指定目录以及目录的子目录下的所有文件 -u 只在源文件更新时进行复制 -v 运行时显示详细的处理信息 -x 只在源文件和目标文件文件系统类型相同时才复制
mount
mount [SYSTEM] [DIR] //挂载
例1 [root@linux ~]# mount -l #列出所挂载的系统 [root@linux ~]# mount /dev/sda1 /media/usb #挂载u盘 例2 # mount -o username=xiexiangrong,password=xxxxxx -l //192.168.6.2/soft /mnt #访问windows共享文件 -o username= windows user,password=访问密码 -l //网络地址/共享文件
3.程序员常用命令(如需使用请至http://linux.51yip.com/查询)
grep //使用正则表达式搜索文本,并把匹配的行打印出来
cut //在文件的每一行中提取片在每个文件FILE的各行中, 把提取的片断显示在标准输出.
sed //对文件内容进行处理
tar //用来压缩和解压文件。
find //查找目录和文件
diff //比较两个文件
chmod //更改文件属性
4.Shell编程
介绍
应用
随着Linux图形界面的日益完善,依靠GNOME或KDE提供的图形界面已经能够完成大部分基本的应用。但是图形界面的功能是有限的,只能完成一些可以预见的功能。例如,如果需要大批量地创建系统用户,使用图形界面是非常耗时的。此时就可以选择使用shell脚本程序。Linux的shell程序是一个非常有用且很容易掌握的工具,可以帮助用户轻松地完成繁重的任务,提高使用和维护系统的效率。另外,Linux的图形界面也是通过shell脚本解释启动的,很多应用程序本身就是一个shell程序。
解释器
一个简单的Shell程序
一个简单的shell程序一般需要三个步骤:
(1)利用文本编辑器创建脚本内容。
命令提示符下使用vi Hello.sh,创建文本文件Hello.sh,在系统打开的文本编辑窗口中输入如下的语句(其中行首编号除外)。输入完毕后保存退出。
1 #!/bin/sh
2 echo `date +%Y%m%d`
一个合法的shell脚本程序,都是以shell解释器声明开始的,即在shell程序的第一行。其中“#!”后面的“/bin/bash”,表示实际使用的解释器。
例如,以perl作为shell解释器,则可以该声明可以是“/usr/bin/perl”。注:与其他行不同,这里前面虽然以“#”开头,但不是注释行。
(2)使用“chmod”命令赋权,设置脚本的可执行属性。
Hello.sh文件编辑完毕并保存后,在命令提示符下执行如下命令,设置其可执行的属性。
chmod a+x Hello.sh
(3)执行脚本。
shell脚本的执行方法也很简单,只需要在命令提示符下输入如下命令即可:
./ Hello.sh
或者:
sh Hello.sh
vi编辑器
编辑模式:用来输入和编辑文件的模式,屏幕上会显示用户的键入,按键不是被解释为命令执行,而是作为文本写到用户的文件中。
指令模式:用来编辑、存盘和退出文件的模式。
从指令模式切换到编辑模式,则可以按“Insert”键或“i”键,从编辑模式切换到指令模式,可按“Esc”键。
启动vi
在系统图示字符下键入“vi”+“空格”+“文件名”。
如:vi test.txt 注:vi可以自动载入所要编辑的文件或是开启一个新文件。
退出vi
在指令模式下键入如下命令可以退出vi。
:q 如果用户只是读文件的内容而未对文件进行修改,可以在命令模式下输入“:q”退出vi。
:q! 如果用户对文件的内容作了修改,又决定放弃对文件的修改,则用“:q!”命令。
:w! 强行保存一个vi文件,如果该文件已存在,则进行覆盖。
:wq 保存文件并退出vi。
ZZ 快速保存文件的内容,然后退出vi。功能和“wq”相同。
:w filename 相当于“另存为”。
:n,mw filename 将第n-m行的文本保存到指定的文件filename中。
chmod命令
u:用户 g:组 o:其它 a:所有用户(默认)
r:读 w:写 x:执行 s:设置用户(组)的ID号
u:用户的当前权限 g:组的当前权限
o:其他用户的当前权限
+:增加权限
-:删除权限
=:重新分配权限
注:mode部分还可以用3位0~7数字代替
Shell编程语法
变量、控制结构和函数
弱语言、串变量