Linux 基本知识要点(必掌握)
目录结构:
/bin:存放常用命令
/boot:存放启动程序
/dev:存放设备文件
/etc:存放启动关闭配置程序与文件
/home:用户工作目录
/lib:存放共享链接库
/root:超级用户的工作目录
/sbin:系统管理员的常用管理程序
/tmp:存放临时文件
/lost+found:系统出现异常时,用于保存部分资料
/misc:一些实用工具
/mnt:光驱、硬盘等的挂载点
/media:光驱的自动挂载点
/proc:操作系统的实时信息
/sys:系统中的硬件设备信息
/srv:服务启动后需要提取的信息
/var:主要存放系统日志
/usr:存放用户程序
/tftpboot:tftp服务器的服务目录
/selinux:redhat提供的selinux安全程序
基本命令
1,登陆 root用户(#)普通用户($) Ctrl+Alt+F1切入字符界面,Ctrl+Alt+F7切回终端。
2,添加用户:useradd 用户名 ls/home可查看新用户目录
3,修改密码:passwd 用户名
4,切换用户:su 用户名
5,关机 shutdown now
6,拷贝:cp /home/test/tmp/ 文件拷贝
cp –r /home/dir1 /tmp/ 目录拷贝
7,移动或更名:mv/home/test/home/test1 更名
Mv/home/dir1 /tmp q剪切
8,删除: rm /home/test 删除文件
Rm –r /home/dir 删除目录 rm /tnt –rf
9,创建目录:mkdir /home/workdir
Mkdir –p /home/dir1/dir2 创建目录,如果目录不存在先创建
10,改变目录: cd /home/
11,查看当前路径:pwd 显示当前工作目录的绝对路径
12,查看目录:ls ,ls –a(查看所有包括隐藏)-l(查看详细) –c(按修改时间顺序查看文件目录)
13,打包与压缩:tar cvf tmp.tar /home/tmp将tmp目录下的所有文件和目录打包成一个tmp.tar文件。
tar xvf tmp.tar 将tmp.tar在当前目录下解开
unzip tmp.zip 解压tmp.zip解压缩
tar -zxvf VMwareTools-5.0.0-12124.i386.tar.gz -C /tmp (把安装文件解压到/tmp)
14,改变访问权限:例chmod g+w hello.c
u表示文件所有者 g表示与文件所有者同组的用户 o表示其他用户 a系统默认表示所有用户。
+添加某个权限 -取消某个权限 =赋予给定权限。
r可读(4) w可写(2) x可执行(1)例 chmod 761 hello.c
15,查看磁盘使用情况:df –k 以KB为单位显示磁盘使用情况。
16,查看目录大小:du –b ipc 以字节为单位显示ipc这个目录的大小。
17,网络配置:ifconfig
Ifconfig eth0 192.168.0.1 配置eth0这一网卡的ip地址为192.168.0.1
Ifconfig ethos down 暂停eth0这一网卡的工作。
Ifconfig eth0 up 恢复eth0这一网卡的工作。
18,查看网络状态:netstat –a 查看系统中所有的网络监听端口。
19,软件安装:rpm –ivh tftp.rpm 安装名为tftp的文件。
rpm –qa 列出所有已安装rpm包。
rpm –e name 卸载名字为那么的rpm包。
20,挂载:mount /dev/cdrom/mnt 将光驱挂载到/mnt目录下。
unmount /mnt 取消光驱在/mnt下的挂载。
21,查找文件:find ./ -name ‘co*’ 在当前目录及其子目录中寻早名为co开头的文件。
find ./ -name ‘test’ 在当前目录及其子目录中寻早名为test的文件。
22,查找字符串: grep “file” ./ -rm 在当前目录及其子目录中寻早包含file字符串的文件。
netstat –a | grep tftp
23,动态查看CPU使用:top 查看系统中的进程对CPU内存的占用情况(ctrl+c退出)。
24,查看进程:ps aux 查看系统中的所有进程。
25,杀死进程: kill 进程号
26,帮助:man grep 查看grep命令的使用方法,man ping 查看ping命令的使用方法。
文本编辑 vi 和Emacs
vi 命令行模式:yy nyy p dd ndd /name G(大写)光标移动到文件尾u(小写)取消前一个动作
插入模式:i
底行模式: :wq保存并退出:q!强退 w filename 另存为 set nu显示行号 set nonu取消行号
例:vi hello.c
#include
Linux系统管理
一,tftp服务器
1,tftp服务器作为工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载工作。
2,tftp服务器安装
# netstat –a | grep tftp 查看是否安装启动,显示 udp 0 0 *:tftp*:* 表示已经安装且启动。
# rpm –ivh tftp_server-0.42-3.1.i386.rpm 安装。
# mkdir /tftpboot 建立tftp的主工作目录。
3,修改tftp配置:# vi /etc/xinetd.d/tftp disable = no 启动与关闭tftp服务器
4,tftp启动:# /etc/init.d/xinetd start
二,NFS(network file system)用于Linux与Linux之间的共享
1,NFS是一种将远程主机上的分区(目录)经网络挂载到本地的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。(类似于windows共享目录。)
2,# rpm –q nfs-utils查看 # rpm –ivh nfs-utils-1.0.9-24.el5.i386.rpm安装
3,NFS配置 # vi /etc/exports 例如:/home 192.168.1.*(rw,sync,nc_root_squash)
4, /etc/init.d/nfs start启动NFS /etc/init.d/nfs restart 重启NFS
5,NFS使用:例: # mount –t nfs 10.168.1.100:/home /mnt/nfs
三,samba(用于windows与Linux之间共享)
先开通网络,设置IP,关掉防火墙(services.msc, # /sbin/iptables –F或者#/iptables –F)。
# /etc/init.d/network restart重启网络。
ping windows ip地址。接下来配置samba # vi /etc/samba/smb.conf
# smbpasswd –a 用户名添加samba用户修改密码 # /etc/init.d/smb restart重启samba服务。
Useradd smb 添加samba用户
四,wireshark
可在Linux和Windows上使用的开源网络协议分析器。可以实时检测网络通讯数据,也可以抓取网络数据。可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。
1,安装:lm_sensors-2.10.0-3.1.i386.rpm net-snmp-5.3.1-9.el5.i386.rpm
Wireshark-0.99.6-1.el5.i386.rpm wireshark-gnome-0.99.6.1.el5.i386.rpm
2,运行:# wireshark
shell编程
一,shell定义
命令解析器,将用户输入的指令转换为响应的机器能够运行的程序。种类较多
二,shell脚本
是一个包含一系列命令序列的文本文件,当运行这个脚本时,文件中包含的命令序列将得到执行。
例:#!/bin/sh #echo something( 注释) echo “hello world” echo “hello!!” mkdir /tnt
三,语法
1,Shell编程中,所有变量都有字符串组成。例:#!/bin/sh #set variable a a=”hello word” #print a echo “A is:” echo $a
2,有时候变量名很容易与其他文字混淆。例:num=2 echo ”this is the ${num}nd”
3,默认变量
4,
$#(参数个数) $*(参数值) $0(命令本身) $1(第一个命令行参数) $2
例:vi s2 #!/bin/sh echo “number of var:”$# echo “valuesr of vars:”$* echo “valuesr of vars1:”$1
echo “valuesr of vars2:”$2 echo “valuesr of vars3:”$3 echo “valuesr of vars4:”$4
运行 ./s2 1 2 3 4
4局部变量 local关键字
例:#!/bin/bash hello=”var1” echo $hello function func1{ local hello = “var2” echo $hello}
Func1 echo $hello
(注:变量赋值,=两边都不能有空格,BASH中的语句结尾不需要分号)
5, if语句
If[条件]
then
#code block
Fi
If[条件]
then
#code block
else
#code block
Fi
If[条件]
then
#code block
else if[条件]
then
#code block
else
#code block
fi
fi
6,比较
比较操作 |
整数操作 |
字符串操作 |
相同 |
-eq |
= |
不同 |
-ne |
!= |
大于 |
-gt |
> |
小于 |
-lt |
< |
小于或者等于 |
-ge |
|
小于或者等于 |
-le |
|
为空 |
-z |
|
不为空 |
-n |
|
例:
比较整数a和b是否相等:if [ $a = $b ]
判断整数a是否大于整数b:if [ $a –gt $b ]
判断字符串a是否为空:if [ -z $a ]
注意:在[ ] 符号的左右都留有空格 =左右都有空格。
-e 文件已经存在 –f 文件时普通文件 –s文件大小不为零 –d 文件时一个目录 –r文件对当前用户可以读取 –w -x
例:#!/bin/sh folder=/home [ -r”$folder” ] && echo “Can read $folder”
[ -f “$folder” ] || echo “this is not file” &&前面为真执行后面 ||前面为假执行后面。
7,for循环
for var in [list]
do
#code block
done
例:#!bin/bash
for day in sun mon tue wed Thu fri sta
do
echo $day
done
8,while循环(条件为真执行)
While[条件]
do
#code block
done
8,until循环(条件为假执行)
until [条件]
do
#code block
done
9,case语句
例:#!/bin/bash
echo “hit is 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,whitespace,or other”;;
esac