概述
一、linux 的性能监控
-
对进程的监控
ps -aux ps 参数: -e:显示所有进程和环境变量 -f:全格式显示 -h:不显示标题 -l:长格式显示 -w:宽格式输出 -a:显示终端上所有进程,包括其他的用户进程 -r:只显示正在运行的进程 -x:显示没有控制终端的进程 -u:以用户为主的格式来显示进程 kill kill 参数 pid: 参数: -2:相当于ctrl + c -9: 强制终止 -15:正常终止
-
对内存的监控
free free 参数: -b:以字节为单位显示内存使用情况 -k:以KB为单位显示内存的使用情况 -m:以MB为单位显示内存的使用情况 -g:以GB为单位显示内存的使用情况 -s:每个多少秒显示内存的使用情况 -t:显示内存和swap的总和。 top 参数: ---用于动态监控系统资源、包括内存,交换分区和cpu的使用率,实时更新的内容 -d:指定更新时间 -q:没有任何延迟的更新 -c:显示进程的完整路径 -S:累积模式,将已完成或者已消失的子进程的cpu时间累积 -s:安全模式,去除交换命令所带来的潜在危险 -i:不显示任何的闲置(ldle)或无用的(Zombie)的进程 -n:显示更新的次数,完成后将会退出
-
对硬件的监控
# 监控内存 sar -r 间隔时间 采样次数 # 监控磁盘 sar -d 间隔时间 采样次数 # 监控网络 sar -n 统计信息 间隔时间 采样次数 iostat 监控cpu和磁盘 # 监控cpu: iostat -c 时间间隔 采样次数 # 监控硬盘: iostat -d 设备名 时间间隔 采样次数 # 不加参数表示同时监控cpu和磁盘 iostat -d /dev/sda 可以单独监控磁盘
-
linux的性能监控工具
-
nmon
安装nmon后 在nmon所在的目录执行如下命令: ./nmon -ft -s 2 -c 100 -s: 时间间隔 -c:循环次数 执行时生成一个以.nmon的文件 把文件下载到windows上 用 nmon analyser v66.xlsm 文件来进行解析,生成excel文件。就能看到分析的数据
二、linux基础
(一) linux的目录结构
非root用户若要操作一些权限,要在命令行的前加上sudo
若sudo用不了,切换root用户输入visodu 编辑 找到如下内容
在root ALL=(ALL) ALL 下添加一行 : 你的用户名 ALL=(ALL) ALL
如:frank ALL=(ALL) ALL
1、/dev 设备管理 cpu, 硬盘,内存等等
2、/media 管理dvd, u盘等
3、/bin 存放的时指令,二进制文件
4、/etc 系统配置目录
5、/home 用户目录
6、/lib 动态链接库目录
7、/mnt 挂载目录
8、/opt 软件安装目录
9、/proc 内核目录(千万别去动)
10、/root root的用户目录
11、/sbin 超级用户才能用的指令
12、/selinux 安全目录
13、/usr 用户程序目录
14、/sys 系统目录(千万别去动)
15、/tmp 临时文件目录
16、/var 存放日志文件等
17、 /boot 引导目录(千万别去动)
18、/srv 存放一些服务启动后需要提取的数据目录(千万别去动)
(二)vi/vim 编辑器
三种常见模式:
一、正常模式
yy 复制当前的一行,nyy 复制当前向下n行
p 粘贴
dd 删除当前行,ndd 删除当前以下n行
yw:复制光标所在位置到单词末尾之间的字符
nyw:复制光标所在位置之后的n个单词
p:将复制内容粘贴到光标所在的位置G 进入最末行,gg竟然最首行
n + shift + g 进入指定的n行
u 撤销刚刚输入的内容
h:光标左移一个字符
l:光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n:光标下移一行
Enter:光标下移一行w或W:光标右移一个字至字首
b或B:光标左移一个字至字首
e或E:光标右移一个字至字尾
(:光标移至句首
):光标移至句尾
{:光标移至段落开头
}:光标移至段落结尾nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
H:光标移至屏幕顶行
M:光标移至屏幕中间行
L:光标移至屏幕最后行
0或者^:(注意是数字零)光标移至当前行首
$:光标移至当前行尾Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nzz:二、插入模式/编辑模式
a / i / o /r
i:在光标前
I:在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替三、命令行模式
/关键字 搜索关键字
:set nu 设置行号
:set nonu 取消行号
????/vivian/sky/ 替换当前行第一个 vivian 为 sky????/vivian/sky/g 替换当前行所有 vivian 为 sky:n,s/vivian/sky/替换第n行开始到最后一行中每一行的第一个vivian为sky :n,s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
:n1,n2s/vivian/sky/g 替换n1行至n2行的vivian替换为sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
:g/p1/s//p2/g:将文件中所有的p1替换为p2/str:从光标位置开始往文件末尾查找str,按n查找下一个,按N返回上一个
?str:从光标位置开始往文件开头查找str,按n查找下一个,按N返回上一个
(二)开关机重启命令
关机/重启:
shutdown shutdown -h now # 立即关机 shutdown -h 3 # 三分钟后关机 shutdown -r now # 立刻重启 halt # 关机 reboot # 重启 sync # 把内存的数据同步到磁盘
注销
logout
切换用户
su 用户名
(三)、用户管理命令
添加用户
useradd 用户名 # 创建号的用户存在/etc/passwd 文本中
给用户设定密码
psswd -[参数] 用户名 -c # 加上文字备注 -d # 指定用户登录时的开始目录 -e # 指定账户的有效期 -f # 指定在密码过期后多少天关闭该账户 -g # 指定用户所属的群组 -G # 指定用户所属的附加群组 -m # 自动建立用户的登录目录 -M # 不要自动建立用户的登入目录 -n # 取消建立以用户名称为名的群组 -r # 建立系统帐号 -S # 指定用户登入后所使用的shell -u # 指定用户ID
查看用户id
id 用户名
删除用户账号
userdel [-r] 用户名
建立用户组
groupadd [-g gid] [-o]] [-r] [-f] groupname -g #gid指定组ID号 -o #允许创建ID重复的用户组 -r #创建系统用户组,低于499系统账号 # 创建的用户组在 /etc/group 中
更改群组识别码或名称
groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称] -g #<群组识别码> 设置欲使用的群组识别码 -o #重复使用群组识别码 -n #<新群组名称> 设置欲使用的群组名称
删除群组
groupdel [群组名称]
(四)目录管理
创建一个目录
mkdir -[参数] 目录名 -p #如果父节点不存在可以使用-p参数创建
重命名目录
mv 旧目录/文件名 新目录/文件名
目录路径的切换
cd
(五)文本搜索命令
grep
grep -[参数] 搜索内容 文件名 -c:只输出匹配行的计数。 -i:不区分大 小写。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行
sort 排序命令
sort 文件名 # 显示出来内容排序
(六)统计及比较文本命令
wc 统计命令
wc -[参数] 文件名称 -c, --bytes:统计字节数 -m, --chars:统计字符数 -l, --lines:统计行数 -L, --max-line-length:打印最长行的长度 -w, --words:统计字数
cp 拷贝命令
cp [-参数] 源文件 目的文件 -d:在进行 copy 的时候,如果是 copy 到 link 文件,若不加任何参数,则预设情況中会将 link 到的原始文件copy 到目的地,若加 -d 时,则 link 文件可原封不动的将 link 这个捷径拷贝到目的地 -r:可以进行目录的copy -s:做成链接文件,而不 copy 之意!与 ln 指令相同功能! -u, --update:如果来源文件比较新,或者是沒有目的文件,那么才会进行 copy 的动作
mv 剪切/移动命令
mv [-参数] 来源文件 目的文件 -u :同样的,为 update 的简写,当来源文件比目的文件还新的时候才会有效
rm 文件删除命令
rm 文件名 rm –rf 强制删除目录或文件,如有目录嵌套,则不提示 rm –i 删除文件或目录时给予确认提示
find 文件查找命令
find [-参数] '*.文件后缀' -name:按文件名查找 -user:按文件属主查找 -group:按文件所属组查找 -nouser:查找没有属主的文件 -nogroup:查找没有所属组的文件 -type x:按文件类型查找,d表示目录,f表示普通文件 -amin n 查找n分钟以前被访问过的所有文件 -atime n 查找n天以前被访问过的所有文件 -cmin n 查找n分钟以前文件状态被修改过的所有文件 -ctime n 查找n天以前文件状态被修改过的所有文件 -mmin n 查找n分钟以前文件内容被修改过的所有文件 -mtime n 查找n天以前文件内容被修改过的所有文件 -exec,将其前面命令的输出做为其后面命令的操作对象 #-exec 命令 { } ;
(七)文件管理命令
cat 查看命令
cat [ -参数 ] 文件名1 【文件名2。。。】 -n 对所有输出行进行编号 -b 与-n相似,但空白行不编号 # 可以查看多个文件
head 查看命令
head [参数] 文件名 -n 查看前n行
more 查看命令
more [-dlfpcsu] [-num] [+/ pattern] [+ linenum] [file ...] 参数说明: -num:每页显示多少行内容 +num:从多少行开始显示 more +2 -3 test.txt 从第2行开始,每页显示3行数据阅读test.txt文件 空格键:显示下一页内容 回车键:显示下一行内容 b键:显示上一页内容
tail 查看命令
tail [参数] 文件名 -n 查看最后n行 -f 动态查看
diff 比较两个文件
diff [option] file1 file2 -a 将所有文件当做文本文件处理 -b 忽略空格造成的不同 -B 忽略空行造成的不同 -i 忽略大小写 -c 使用纲要输出格式
cmp 比较两个文件
cmp [参数] file1 file2 -c 除了标明差异处的八进制字码之外,一并显示该字符 所对应字符 -i 指定一个数目,比较时直接跳过对应的字符进行后续 比较 -l 标示出所有不一样的地方,并显示对应的八进制码 #当相互比较的两个文件完全一样时,则该指令不会显示任何信息。 #若发现有所差异,预设会标示出第一个不同之处的字符和行数编号
comm 比较两个有序的文件内容
comm [参数] file1 file2 -1 不显示只出现在第一个文件中的行 -2 不显示只出现在第二个文件中的行 -3 不显示同时出现在两个文件中的行 -12 显示两个文件中同时出现的行 -13 显示只出现在第二个文件中的行 -23 显示只出现在第一个文件中的行
file 识别文件类型
file [参数] 文件名 -b 结果中不输出文件名称 -f 列举文件中包含的各个文件名的文件类型
ls 查看文件列表
ls -l #ls –l查看文件详细信息
ln 生成连接文件
ln file1 file2 # file2是file1的链接文件 #硬链接的意思是给源文件另外设置一个名称,删除了源文件,#还可以通过另外一个名称访问 #软链接的意思是产生一个特殊的指向源文件位置的文件,删除#了源文件,链接文件就不可用 #ln命令默认创建的是硬链接, #如果要创建软连接,使用参数-s #软链接与硬链接的区别: #-软链接可以跨文件系统,硬链接不可以 #-软链接可以对目录进行链接,硬链接不可以 #-软链接可以对一个不存在的文件名建立链接 #常用参数: -b 覆盖以前建立的链接 -d 允许超级用户创建目录的硬链接 -f 强制执行 -s 创建软链接 -i 交互模式,文件存在时提示用户是否覆盖
whereis 搜索程序或指令的名称
whereis [参数] 程序名 -b 定位可执行文件。 -m 定位帮助文件。 -s 定位源代码文件。 -u 搜索默认路径下除可执行文件、源代码文件、 帮助文件以外的其它文件。 -B 指定搜索可执行文件的路径。 -M 指定搜索帮助文件的路径。 -S 指定搜索源代码文件的路径
which 查找文件
which 文件名
(八) 权限管理
chmod 修改文件权限
chmod [-R] 权限 文件名 -R 连目录的权限一起修改(递归修改) +:添加权限(w、r、x) -:删除权限(w、r、x) u:文件拥有者 g:文件所属组 o:其他人 a:所 有人
修改文件所属用户组
chgrp [-R] 组名 文件名
修改文件拥有者
chown [-R] 用户名 文件名
(九)系统命令
alias 给命令命别名
#如: alias lsl = 'ls -l' # 撤销别名 unalias lsl
echo 输出命令
export 设置环境变量
# 临时配置 export var_name=value unset var_name 删除某个系统环境变量 # /etc/profile 文件 可以配置永久的环境变量 source 1、加载环境变量 2、执行sql脚本(在linux)
systemctl 服务启动命令
systemctl start 服务名 #启动服务 systemctl stop 服务名 #停止服务 systemctl restart 服务名 #重启服务 ls -l /etc/init.d/ #查看系统有那些可用的服务 # 查看或修改运行级别 vim /etc/inittab # 常用3和5 id:3:initdefault 0 系统停机状态,默认运行级别的系统程序不能设置为0 否则 无法 启动 1 单用户工作状态,root权限,用于维护,禁止远程登录 2 多用户状态(没有NFS), 不支持网络 3 完全多用户状态(有NFS),登录后进入控制台命令行模式 4 系统未使用,保留 5 X11控制台,登录后进入图形GUI模式 6 系统正常关闭并重启,默认运行级别不能设未0 否则无法运 行 init 3 init 5 init 0 # 查看系统运行级别设置自启动/关闭 chkconfig --list | grep xxx chkconfig --level 5 服务名 on/off
(十)网络通信命令
ifconfig 查看ip地址
修改ip地址:
vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=219.136.241.211 NETMASK=255.255.255.128 GATEWAY=219.136.241.254
修改网关
vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=Aaron GATEWAY=192.168.1.1
netstat 对TCP连接,TCP和UDP监听
netstat [参数] -a 显示所有socket,包括正在监听的 -c 每隔1秒就重新显示一遍,直到用户中断它 -i 显示所有网络接口的信息 -t 显示TCP协议的连接情况 -u 显示UDP协议的连接情况 -an 按一定的顺序排列输出 -p 显示那个进程在调用 #Proto :网络传输协议,主要为tcp和udp #Local Address :本地的ip:port #Foreign Address:远程主机的ip:port #State :连线状态,主要有监听( LISTEN )和建立(ESTABLISED) #PID :服务的进程编号 #Program name:服务名称
ping 查看网络连接情况
# 如: ping www.baidu.com
telnet 连接到远程电脑上
telnet ip地址
(十一)磁盘管理命令
df 检查linux服务器的文件系统的磁盘空间占用情况
df [参数] -a 全部文件系统列表(不使用-a只显示已用列表) -h 方便阅读方式显示 -H 和-h类似,但是计算时1K=1000,而不是1024 -T 输出文件系统类型 -l 只显示本地文件系统
du 命令对指定文件和目录磁盘使用的空间的查看
du [参数] 目录 -a 显示目录中所有的文件,不只是目录 -b 显示目录或文件大小时,以byte为单位 -k 显示结果以千字节KB为单位 -m 显示结果以兆字节M为单位 -c 显示结果中最后加上一个总计 -h 以易阅读的方式显示结果 -s 只显示工作目录所占总空间 --max-depth=n 只列举出深度小于n的目录和文件信息
mount 命令用于挂载新的设备(硬盘)加入现有linux系统中
mount /dev/设备文件 /mnt/目录名
fdisk 硬盘分区命令
fdisk -l #列出所有的分区 fdisk /dev/sdb #命令进入分区界面 #输入n进行分区 #分区时,输入p代表主分区,输入e代表逻辑分区 #选择好分区后,接下来进行分区起始磁盘位置设置,一般保持#默认为1 #然后进行分区大小设置,假设设置1个G的分区,则输入#+1024m # 输入w进行保存,新的硬盘分区sdb1即设置好 #对新的分区进行格式化,使用mkfs –t ext3 –c /dev/sdb1命令,如有多个分区以此类推 #接下来就使用mount命令将新的分区挂载到指定目录 #使用命令mount /dev/sdb1 /mnt将新的分区/dev/sdb1挂载到/mnt目录下 #如果想每次系统重启都能自动挂载该分区,需要修改/etc/fstab文件 #在文件最后加上一行/dev/sdb1 /mnt ext3 defaults 1 2 #分别表示分区名称、挂载路径、文件系统格式、defaults是挂载时设定的参数
(十二)系统资源查看
ps 实时显示系统中各个进程的资源占用状况
ps –aux 查看所有资源 ps -ef | more 查看父进程 # 找出占用内存资源最多的前 10 个进程 ps -auxf | sort -nr -k 4 | head -10 # 找出占用 CPU 资源最多的前 10 个进程 ps -auxf | sort -nr -k 3 | head -10 # 其显示处理的参数 USER 用户名 PID 进程ID CPU cpu MEM 内存 VSZ 虚拟内存 RSS 物理内存 TTY 使用的终端 STAT 状态 s:休眠 S:睡眠 R:正在运行 N:比普通进程优先级 低,D:短期等待进程,Z:僵尸进程,T:被跟踪和被停止 等。 START 启动时间 TIME 占用cpu的总时间 COMMAND 进程执行时的命令行 # 通过
lsof 命令列出当前系统打开文件的工具
top 动态监控
top P 以cpu使用率排序 M 以内存的使用率排序 N 以PID 排序 q 推出
(十三)备份压缩命令
gzip 对压缩成.zip文件
gzip [参数] file1 file2 file.gz -d 将压缩文件解压。 -l 对每个压缩文件,显示下列字段: 压缩文件的大小 未压缩文件的大小 压缩比 未压缩文件的名字 -r 递归式地查找指定目录并压缩其中的所有文件或者是 解压缩。 -t 测试,检查压缩文件是否完整。 -v 对每一个压缩和解压的文件,显示文件名和压缩比。 -num 用指定的数字num调整压缩的速度, -1或--fast表示最快压缩方法(低压缩比), -9或--best表示最慢压缩方法(高压缩比)。系统 缺省 值为6。 # 解压 gunzip file.zip
tar 压缩/解压tar包
#文件打包语法: tar -cvf 目标文件名.tar 源文件 #文件解包语法: tar -xvf 目标文件名.tar #文件压缩语法: tar -zcvf 目标文件名.tar.gz 源文件 #文件解压语法: tar -zxvf 目标文件名.tar.gz #参数说明: -c,建立新的备份文件; -x,将备份文件解开; -t,列出备份文件的内容; -r,将文件附加在一个备份文件的后面; -u,将备份文件里的文件以教新的版本更新; -d,比较备份文件里的文件与文件系统中的文件; -v,在处理文件时显示更多的信息; -k,在解开文件时保留已存在的文件,也就是在备份文件 中的文件不能覆盖已存在的文件; -f,filename指定filename为读出或写人的备份文件 的文件名 -z,压缩文件。
zip 包
#将文件打包为zip格式的压缩文件 zip -r filename.zip filesdir -r递归压缩 #unzip 是从zip包中解压出某个文件 unzip filename.zip
bzip2与bunzip2
bzip2与bunzip2是Linux系统另一款常用的压缩工具,具有很高的压缩比例。压缩文件后缀名为.bz2 不支持将多个文件和目录压缩成一个文件 -c:将压缩与解压缩的结果输出到标准输出上 -d:解压缩 -f:压缩或解压缩时强制覆盖已存在的文件 -k:压缩或解压缩后保留源文件 -t:测试.bz2文件的完整性 -v:压缩或解压缩时显示详细信息
(十四)任务调度
crontab 定时任务的设置
crontab [参数] -e 编辑crontab定时任务 -l 查询crontab任务 -r 删除当前用户所有的crontab任务 # 定时任务的编辑有如下的五个*号 * * * * * 第一个表示 一个小时中的第几分钟 0-59 第二个表示 一天中的第几个小时 0-23 第三个表示 一个月中的第几天 1-31 第四个表示 一年中的第几个月 1-12 第五个表示 一周中的星期几 0-7 , 代表连续的时间 1,4,8 * * * * 每1,4,8 分钟执行 * 代表任何时间 - 代表一个时间范围 0 2 * * 3-5 周三到周五2:00执行 */n 代表每隔多久执行一次 */3 * * * * 每3分钟执行
其他命令
通常Linux应用软件的安装包有三种
tar包,如software-1.2.3-1.tar.gz
rpm包,如software-1.2.3-1.i386.rpm
dpkg包,如software-1.2.3-1.deb
大多数Linux应用软件包的命名遵循一定的规律:
名称-版本-修正版-类型
----------------------------------------------------
tar包是使用系统中的tar命令打包的,其中包含的内容一般分为两种
一种就是可执行文件,解包后可以直接运行安装
比如software.bin,赋予可执行权限x后,即可通过./software.bin运行安装
另外一种就是源程序,解包后需要使用编译器将其编译成可执行文件
首先将tar包解包
阅读解包后的目录中附带的INSTALL或README文件了解相关信息
执行./configure命令为编译做准备
执行make命令进行软件编译
执行make install命令完成安装,一般默认安装在/usr/local/bin目录下
执行make clean删除安装时产生的临时文件
如果想要卸载,执行make uninstall命令
----------------------------------------------------
rpm包是Redhat Linux提供的一种包封装格式,使用相应的rpm命令来完成安装,让软件安装工作变得简单
查询已安装的rpm包
rpm –qa software-1.2.3.rpm
安装rpm包
rpm –ivh software-1.2.3.rpm
强制安装 --force --nodeps
卸载rpm包
rpm –e software-1.2.3
注意:卸载时,包名不要后缀名
升级rpm包
rpm –Uvh software-1.2.3.rpm
dpkg包是Debian Linux提供的一种包封装格式
安装dpkg包
dpkg –i software-1.2.3.deb
卸载dpkg包
dpkg –e software-1.2.3
同样卸载dpkg包,也不需要后缀名
----------------------------------------------------
在Redhat Linux中使用rpm命令安装rpm包,还需要注意安装包之间的依赖关系,某些安装包在安装过程中需要预先安装好依赖包
同时在Redhat还有另外一种更简单的程序安装方式,使用yum命令,能够自动从程序库中获取相应安装包和依赖包
查看程序库中所有包文件,可以搭配grep命令搜索
yum list
查看所有已安装的包
yum list installed
安装程序
yum install 软件名
卸载程序
yum remove 软件名
----------------------------------------------------
使用lrz和lsz命令完成客户端与Linux服务器的文件上传和下载
linux系统默认不支持lrz和lsz命令的,需要安装相应的工具
lsz命令发送 文件到本地(下载)
语法:lsz filename
下载的文件保存路径在客户端进行设置
lrz命令上传本地文件到服务器
语法:lrz
使用lrz命令后会在客户端出现弹出框,选择要上传的文件上传即可
上传的文件路径为命令输入时的工作路径
----------------------------------------------------
通过FTP完成客户端与Linux服务器的文件上传和下载,一般的各种Linux发行版中默认带有的ftp软件是vsftpd
使用yum list installed | grep vsftpd命令来检测是否安装了vsftpd软件
如果没有安装vsftpd软件,则使用yum来进行安装
安装命令 yum -y install vsftpd
安装完成后,启动vsftpd软件服务
启动服务命令:systemctl start vsftpd
停止服务命令:systemctl stop vsftpd
重启服务命令:systemctl restart vsftpd
----------------------------------------------------
vsftpd的配置
ftp的配置文件主要有三个,位于/etc/vsftpd/目录下
[root@localhost vsftpd]# ls -l
total 36
-rw------- 1 root root 125 Jan 9 2013 ftpusers
-rw------- 1 root root 361 Jan 9 2013 user_list
-rw------- 1 root root 4579 Jan 9 2013 vsftpd.conf
ftpuser 该文件用来指定哪些用户不能访问ftp服务器,通常是系统默认的用户,文件中每个用户独占一行
user_list 该文件内容和ftpuser相同,是系统对vsftpd的配置文件进行检测时所需要的文件,所以这个文件必须存在
vsftpd.conf是vsftpd软件的主配置文件
其中部分设置说明:
anonymous_enable=YES //是否允许匿名用户登录,默认是允许
local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许
write_enable=YES //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器,默认是不允许
anon_mkdir_write_enable=YES //是否允许匿名账户在FTP服务器中创建目录
anon_upload_enable=YES //是否允许匿名账户在FTP服务器上进行上传
shell 编程
shell 第一个程序
#!/bin/bash echo hello word
变量:
定义变量
变量名=值 -->var_name=value
撤销变量:
unset 变量名 --> unset var_name
静态变量 :
readonly var_name=100
静态变量不能 unset , unset会报错
#!/bin/bash var=hello #非静态变量 readonly static_var=100 #静态变量 echo "$var" unset var echo "var=$var" unset static_var # 执行到这里时会报错
shell 变量定义的规则
- 变量名称只能由字母、数字、下划线组成,但不能以数字开头(和python一样)
- 等号不能有空格
- 变量名称一般用大写
将命令赋值给表里时要用``引号或$()包围起来
如:
#!/bin/bash COMMD=`ls -l` COMMD1=`ps -aux` echo "$COMMD" echo "$COMMD1"
设置环境变量
- export 变量名=变量值
- source 配置文件
- echo $环境变量
位置参数变量
- $n–>n为数字,$0表示命令本身,$1- 9 代 表 1 到 第 九 个 参 数 , 十 个 参 数 以 上 9代表1到第九个参数,十个参数以上 9代表1到第九个参数,十个参数以上{10}, ${11} …
- $* -->代表命令中的所有变量,把所有的变量看成一个整体
- @ − − > 代 表 命 令 中 的 所 有 变 量 , 不 过 @--> 代表命令中的所有变量,不过 @−−>代表命令中的所有变量,不过@把每个变量区分对待
- $#—>代表命令中所有参数的个数
#!/bin/bash echo "$0" echo "$1 $2 $3" echo "$*" echo "$@" echo "$#" !>> 输出结果如下 ./get_var.sh 20 30 40 20 30 40 20 30 40 3 !
预定义变量
- $$ —>当前的进程号
- $! ---->后台运行的最后一个程序的进程
- $? ---->最后一次执行的命令的返回状态,0为正确执行,非0则表示上一个命令执行不正确,具体什么数有命令自己决定
#!/bin/bash # 显示进程号 echo "$$" #后台运行 ./get_var.sh & # 后台运行的最后一个程序的进程 echo "$!" #最后一次执行的命令的返回状态 echo "$?" !>> 执行结果 16624 16625 0 [hadoop@localhost shell_program]$ ./get_var.sh 0 !
运算符
- “ ( ( 运 算 施 ) ) " 或 " ((运算施))" 或" ((运算施))"或"[运算式]”
- expr m + n expr 运行符间要有空格
- expr + - * / % 加、减、乘、除、取余
#!/bin/bash A=100 B=20 echo "$(($A+$B))" echo "$[$A*$B]" RESULTADD=`expr 1 + 2` RESULTMUN=`expr 4 - 1` RESULTMULT=`expr 4 * 5` RESULTDIV=`expr 30 / 6` echo "$RESULTADD" echo "$RESULTMUN" echo "$RESULTMULT" echo "$RESULTDIV" !>> 输出结果如下: 120 2000 3 3 20 5 !
条件判断
最后
以上就是漂亮煎蛋为你收集整理的linux 的性能监控一、linux 的性能监控二、linux基础shell 编程的全部内容,希望文章能够帮你解决linux 的性能监控一、linux 的性能监控二、linux基础shell 编程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复