1、目录结构
/bin:存放常用命令
/boot:存放启动程序
/dev:存放设备文件
/etc:存放启动、关闭、配置程序与文件
/home:用户工作根目录
/lib:存放共享链接库
/lost_found:系统出现异常时,用于保存部分资料
/media:光驱的自动挂载点
/misc:一些实用工具
/mnt:光驱、硬盘等的挂载点
/proc:操作系统的实时信息
/root:超级用户的工作目录
/sbin:系统管理员的常用管理程序
/selinux:redhat提供的selinux安全程序
/srv:服务启动后需要提取的信息
/sys:系统中的硬件设备信息
/tmp:存放临时文件
/usr:存放用户程序
/var:主要存放系统日志
/tftpboot:tftp服务器的服务目录
2、Liunx命令
2.1 添加用户
useradd
格式:useradd [选项] 用户名
2.2 修改密码
passwd
格式:passwd [选项] [用户名]
2.3 切换用户
su
格式:su [选项] [用户名]
2.4 关机
shutdown
格式:shutdown [-t seconds] [-rkhncfF] time [message]
2.5 拷贝
cp
格式:cp [选项] 源文件或目录 目标文件或目录
说明:拷贝文件选项可以为空,拷贝目录时,选项为-r
2.6 移动或更名
mv
格式:mv [选项] 源文件或目录 目标文件或目录
2.7 删除
rm
格式:rm [选项] 文件或目录
说明:删除文件时选项可以为空,删除目录时选项为-r。
2.8 创建目录
mkdir
格式:mkdir [选项] 目录名
说明:-p选项:创建目录是,如果父目录不存在,则一同创建。
2.9 改变工作目录
cd
格式:cd 目录名
2.10 查看当前路径
pwd
格式:pwd
说明:显示当前工作目录的绝对路径
2.11 查看目录
ls
格式:ls [选项] [目录或文件]
说明:-a选项:查看所有文件与目录,包含隐藏文件
2.12 打包与压缩
tar
格式:tar [选项] 目录或文件
范例:tar cvf tmp.tar /home/tmp
将/home/tmp目录下的所有文件和目录打包成一个tmp.tar文件。
tar xvf tmp.tar 将打包文件tmp.tar在当前目录下解开。
2.13 解压缩
unzip
格式:unzip [选项] 压缩文件名.zip
2.14 查看磁盘使用情况
df
格式:df [选项]
2.15 查看目录大小
du
格式 du [选项] 目录
2.16 网络配置
ifconfig
格式:ifconfig [选项] [网络接口]
范例:ifconfig eth0 192.168.0.1 配置eth0网卡的IP地址
ifconfig eth0 down 暂停eth0网卡的使用
ifconfig eth0 up 恢复eth0网卡的使用
2.17 查看网络状态
netstat
格式:netstat [选项]
说明:-a 所有的网络监听端口
2.18 软件安装
rpm
格式:rpm [选项] [安装文件]
范例:rpm -ivh tftp.rpm 安装名字为tftp的文件
rpm -qa 列出所有已安装的rpm包
rpm -e name 卸载名字为name的rpm包
2.19 挂载
mount
格式:mount [选项] 设备源 目标目录
umount
格式:umount 目标目录
2.20 查找文件
find
格式:find 路径 -name '文件名'
范例:find ./ -name 'co*' 在当前目录及其子目录中寻找名为co开头的文件
find ./ -name 'test' 在当前目录极其子目录中寻找名为test的文件
2.21 查找字符串
grep
格式:grep [选项] 字符串
范例:grep "file" ./ -rn 在当前目录及其子目录中,查找包含file字符串的文件
netstat -a | grep tftp 查看所有端口中用于tftp的端口
2.22 动态查看cpu使用
top
格式:top
2.23 查看进程
ps
格式:ps [选项]
说明:aux 查看系统中所有进程
2.24 杀死进程
kill
格式:kill [选项] 进程号
2.25 帮助
man
格式:man 命令名
3、访问权限
3.1 对文件或目录的访问权限分为三种:只读、只写和可执行。
3.2 有三种不同类型的用户可对文件或目录进行访问:文件所有者、与所有者同组的用户、其他用户。
3.3
每一个文件或目录的访问权限都有三组,每组用三位表示,分别为文件所有者的读、写和执行权限;与所有者同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
3.4 用”ls
-l“命令显示文件或目录的详细信息,最左边一列为文件的访问权限。其中共有10个字符,第一个字符指定了文件类型,如果为横线,表示是一个非目录的普通文件;如果是d,表示是一个目录。随后的9个字符代表权限,其中r代表只读,w代表写,x代表可执行,横线代表无该项权限。
3.5 改变访问权限
chmod
格式:chmod [who][+|-|=][mode] 文件名
参数:who:u:表示文件的所有者
g:表示与文件所有者同组的用户
o:表示”其他用户“
a:表示“所有用户”,是系统默认值
+:添加某个权限
-:取消某个权限
=:赋予给定权限
mode:r/w/x
说明:mode所表示的权限可使用下述字母(数字)的任意组合:r(4) w(2) x(1) 例:chmod 761
hello.c
4、文本编辑器
4.1 Vi有三种工作模式:命令行模式、插入模式、底行模式。
4.2 命令行模式:最初进入的一般浏览模式,可以移动光标进行浏览,整行删除,但无法编辑文字。
插入模式:可以进行文字的编辑输入,通过ESC回到命令行模式。
底行模式:光标位于屏幕狄航,用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号等。
4.3 键入i进入插入模式
键入ESC退入到命令行模式
键入:wq保存退出
4.4 命令行模式功能键
yy:复制当前光标所在行
[n]yy:n为数字,复制当前光标开始的n行
p:粘贴复制的内容到光标所在行
dd:删除当前光标所在行
[n]dd:删除当前光标所在行开始的n行
/name:查找光标之后的名为“name”的字符串
G:光标移动到文件尾
U:取消前一个动作
4.5 底行模式功能键
:w 保存
:q 退出vi,系统会提示保存修改
:q! 强行退出,对修改不做保存
:wq 保存后退出
:w [filename] 另存为filename的文件
:set nu 显示行号
:set nonu 取消行号
5、Tftp服务器
5.1 宿主机和目标机
宿主机:执行编译、链接嵌入式软件的计算机。
目标机:运行嵌入式软件的硬件平台。
5.2 Tftp服务器作为工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载工作。
5.3 Tftp服务相关操作
6 NFS-网络文件系统
6.1 NFS:网络文件系统,Network File
System,一种将远程主机上的分区(目录)经网络挂载到本地的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。类似于Windows的共享目录。
6.2 安装NFS服务器
6.3 NFS配置
6.4 NFS服务器启动/重启
/etc/init.d/nfs start
/etc/init.d/nfs restart
6.5 NFS服务器使用
使用mount命令来挂载NFS服务器上的共享目录
mount -t nfs servername:/shared_dir /localdir
例: mount -t nfs 10.168.1.100:/home /mnt/nfs
7 Samba
7.1 Samba:Linux与Windows之间实现共享的服务
7.2 Samba配置
7.3 Samba添加用户
Useradd smb 添加smb系统用户
Smbpasswd -a smb 修改密码
8 Wireshark(ethereal)
8.1
在Linux和Windows上使用的开源网络协议分析器。可以实时检测网络通讯数据,也可以抓取网络通讯数据。可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。
8.2 Wireshark安装的内容
rpm -ivh lm_sensors-2.10.0-3.1.i386.rpm
rpm -ivh net-snmp-5.3.1-9.el5.i386.rpm
rpm -ivh wireshark-0.99.6-1.el5.i386.rpm
rpm -ivh wireshark-gnome-0.99.6-1.el5.i386.rpm
9 Shell编程
9.1 Shell
Shell简单来讲就是命令解析器。将用户输入的指令转换为相应的机器能够运行的程序。
9.2 Sehll脚本
包含一系列命令序列的文本文件。
9.3 Shell语法
9.3.1 Shell脚本的第一行必须是如下格式:
#!/bin/sh
符号#!用来指定该脚本文件的解析程序(工具
)。在上面的例子中使用/bin/sh来解析该脚本。当编辑好脚本后,如果要执行该脚本,还必须使其具有可执行属性。
chmod +x filename
9.3.2 注释
以#开头的句子表示注释,直到这一行的结束。
9.3.3 变量
所有的变量没有类型,都由字符串组成,并且不需要预先对变量进行声明。
例:#!/bin/sh
#set variable a
a="Hello word"
# print a
echo "A is:"
echo $a
有时候变量名很容易与其他文字混淆。
例:num=2
echo "this is the $numnd"
说明:shell会去搜索变量numnd的值。可以使用花括号来告诉shell要打印的是num变量。
例:num=2
echo "this is the ${num}nd"
默认变量
$#:传入脚本命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
9.3.4 局部变量
在变量首次被赋值时加上local关键字可以声明一个局部变量。
例:#!/bin/sh
hello="var1"
echo $hello
function func1 {
local hello="var2"
echo $hello
}
func1
echo $hello
9.3.5 变量注意:
变量赋值时,“=”左右两边都不能有空格
语句结尾不需要分号
9.3.6 If语句
if [ expression ]
then
#code block
fi
或
if [ expression ]
then
#code block
else
#code block
fi
或
if [ expression ]
then
#code block
else if [expression]
then
#code block
else
#code block
fi
比较
比较操作 整数操作 字符串操作
相同 -eq =
不同 -ne !=
大于 -gt >
小于 -lt <
大于或等于 -ge
小于或等于 -le
为空 -z
不为空 -n
注意:在“[”和“]”符号的左右都留有空格
“=”左右都有空格
例:
比较整数a和b是否相等:if [ $a = $b ] (也可以用 -eq)
判断整数a是否大于整数b:if [ $a -gt $b ]
比较字符串a和b是否相等:if [ $a = $b ]
判断字符串a是否为空:if [ -z $a ]
判断整数变量a是否大于b:if [ $a -gt $b ]
判断
-e:文件已经存在
-f:文件是普通文件
-s:文件大小不为零
-d:文件是一个目录
-r:文件对当前用户可以读取
-w:文件对当前用户可以写入
-x:文件对当前用户可以执行
例子:
#!/bin/sh
folder=/home
[ -r "$folder" ] && echo "Can read $folder"
[ -f "$folder" ] || echo "this is not file"
&&表示前面判断结果为真时,执行后面的语句
||表示前面判断结果为假时,执行后面的语句
9.3.7 for循环
for var in [list]
do
#code block
done
var是循环控制变量,[list]是var需要遍历的一个集合,如果list被包含在一对双引号中,则被认为是一个元素。如果do和for写在同一行,必须在do前面加上";"
注意:在for所在那行,变量day是没有加“$”符号的,而在循环体内,echo所在行变量是必须加上"$"符号的。
9.3.8 while循环/until循环
while [ condition ]
do
#code block
done
until [ condition ]
do
#code block
done
while和until的区别在于while是为真时执行,until是为假时执行。
9.3.9 case语句
case "$var" in
condition1 )
;;
condition2 )
;;
*)
default statments;;
esac
例:
#!/bin/sh
echo "Hit a key, then hit return."
read Keypress
case "$Keypress" in
[A-Z]
) echo "Uppercase letter";;
[a-z] ) echo "Lowercase letter";;
[0-9]
) echo "Digit";
*) echo "Punctuation,whitespca,or other";;
esac