登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 1159|回复: 0

轻度Linux服务器维护职员常用的Shell脚本下令

[复制链接]

7

主题

0

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
14
发表于 2017-12-6 02:17:29 | 显示全部楼层 |阅读模式 来自 北京
lMK0ZBqbdXIK89xf.jpg
文 | 陈康
共 10179 字,阅读需 25 分钟

笔者平常属于非专业运维职员,但是偶然也必要打仗一些测试服务器和个人VPS服务器。以是网络了一些常用的Shell脚本,盼望跟我一样的开辟职员能有一些劳绩。
文件操纵

  • 更改当前目次 cd
  • 获取当前目次 pwd
  • 删除文件/目次 rm -f or rm -rf or rmdir
  • 创建文件 touch or cat > xxx
  • 创建暂时文件 mktemp testing.XXXXXX, 文件名末端加6个X
  • 创建暂时目次 mktemp -d dir.XXXXXX, 目次名末端加6个X
  • 创建目次 mkdir
  • 移动文件/文件重定名 mv
  • 复制 cp
  • 硬链接/软链接 ln or ln -s
  • 表现文件列表 ls
  • 现实搜刮硬盘问询文件名称 find
  • 别名 alias
  • 检察文件地点路径 dirname
  • 检察文件名(过滤路径) basename
  • 检察可实行文件的位置 which
  • 检察文件的位置 whereis
  • 共同数据库检察文件位置 locate
文件检察

  • 文件内容检察 cat
  • 按页检察文件内容 more or less
  • 检察文件前几行 head
  • 检察文件后几行 tail
  • 检察文件统计信息 stat
  • 检察文件范例 file
文本编辑

  • 字符流编辑器 sed
  • 模式匹配的步伐计划语言 awk and gawk
  • 行编辑器 ed
  • 排序 sort
  • 编辑工具 vim or emacs
查询/统计

  • 统计文件中数目 wc -c or wc -l or wc -w
  • 盘算行号 nl
  • 搜刮数据 grep
文件权限

  • 体系用户 cat /etc/passwd or cat /etc/shadow
  • 添加用户 useradd
  • 删除用户 userdel
  • 修改用户 usermod or chsh or chfn or chage
  • 修改暗码 passwd or chpasswd
  • 体系用户组 cat /etc/group
  • 添加用户组 groupadd
  • 删除用户组 groupdel
  • 添加用户到用户组 usermod
  • 修改用户组 groupmod
  • 设置创建文件默认权限 umask
  • 修改权限 chmod
  • 修改所属关系 chown or chgrp
  • 实行root下令 sudo
  • 表现用户id和所属组信息 id
压缩/归档

  • 归档 tar
  • zip压缩 zip or unzip or zipcloak or zipnote or zipsplit
  • bzip2压缩 bzip2 or bunzip2 or bzcat
  • gzip压缩 gzip or gunzip or gzcat
# 仅打包,不压缩tar -cvf /usr/local/test.tar /usr/local/test# 解包tar –xvf test.tar# 打包后,用bzip2压缩tar -jcvf /usr/local/test.tar.bz2 /usr/local/test# 解压bzip2包tar -jxvf /usr/local/test.tar.bz2# 打包后,用gzip压缩tar -zcvf /usr/local/test.tar.gz /usr/local/test# 解压gzip包tar -zxvf /usr/local/test.tar.gz步伐安装

  • Debian & Ubuntu apt-get
  • Redhat & CentOS yum or rpm
  • 查询rpm包是否安装 rpm -q xxx
  • 列出全部被安装的rpm包 rpm -qa
  • 安装RPM包 rpm -ivh xxx
  • 检察yum安装后,呆板里都装了哪些东西 rpm -ql xxx
  • 手动安装 ./configure then make -j & make install
  • 体系服务 chkconfig
# 列出全部服务chkconfig --list# 增长httpd服务chkconfig --add httpd# 删除httpd服务chkconfig --del httpd

  • 创建、删除、修复、软毗连,还能表现出已存在软毗连的信息 update-alternatives
# 列出体系中全部安装java步伐的路径,并选择默认步伐update-alternatives --config java背景运行

  • 控制台下背景模式运行脚本 command &
  • 非控制台下背景模式运行脚本 nohup command &
  • 检察shell当前处置惩罚的作业 jobs
  • 重启制止的作业 bg
  • 筹划实行作业 at [-f filename] time
  • 列出等候的作业 atq
  • 删除作业 atrm
  • 调解下令的调理优先级 nice and renice
  • 计规定期实行脚本 cron min hour dayofmonth month dayofweek command
  • 列出当前用户全部cron时间表 crontab -l
  • 列出cron目次 ls /etc/cron.*ly
  • 运行服务器题目错过的的筹划 anacron
  • 背景新窗口 screen
  • 创建新shell背景实行,完成退却出 sh -c "cd /home; ls"
体系监控

  • 假造内存 cat /proc/meminfo
  • 共享内存 ipcs -m
  • 体系历程 ps aux or ps -ef
  • 及时监测历程 top
  • 竣事历程 kill or killall
  • 挂载媒体 mount or umount
  • 检察磁盘利用环境 df or du
  • 检察登任命户 who
  • 检察全部历程和登岸用户 lsof
  • 捕获信息 trap
  • 打印确切的体系信息 uname -a
  • 打印操纵体系信息 cat /etc/redhat-release
日期/时间

  • 当前时间 date
  • 苏息停息 sleep
  • 打印出一条下令或一个步伐的实行时间 time
打印/输出

  • 打印 printf or echo
  • 输出重定向(覆盖) >
  • 输出重定向(底部追加) >>
  • 输入重定向 
# 文件或路径不存在的返回码是2ls -al badfile 2> testfilecat testfile# ls: cannot access badfile: No such file or directoryls -al test test2 test3 badtest 2> testfile 1> testfile2cat testfile# ls: cannot access test: No such file or directory# ls: cannot access badtest: No such file or directorycat testfile2# -rw-rw-r--.   1 rich rich 158 2010-10-16 11:32 test2# -rw-rw-r--.   1 rich rich   0 2010-10-16 11:33 test3

  • 永世重定向 exec return_number> or exec return_number /dev/null
  • 清空文件 cat /dev/null > filename
  • 记载消息到日记文件 tee filename
date | tee testfile# Sun Oct 17 18:56:21 EDT 2010

  • 清屏 clear
  • 创建脚本菜单 select
# smenu1PS3="Enter option: "select option in "Display disk space" "Display logged on users" "Display memory usage" "Exit program"do    case $option in    "Exit program")        break ;;    "Display disk space")        df -k ;;    "Display logged on users")        who ;;    "Display memory usage")        cat /proc/meminfo ;;    *)        clear        echo "Sorry, wrong selection" ;;    esacdoneclear# ./smenu1# 1) Display disk space       3) Display memory usage# 2) Display logged on users  4) Exit program# Enter option: 数学运算

  • 数学表达式 expr xxx
  • 方括号数学表达式 $[ xxx ]
  • bash盘算器 bc
# 2个变量相除,效果为4位小数var1=100var2=45var3=`echo "scale=4; $var1 / $var2" | bc`echo The answer for this is $var3# The answer for this is 2.2222运算符

  • 测试条件并返回退出状态码(常用在if里) test condition or [ condition ]
  • 双尖括号(针对数学表达式, 常用在if里) (( expression ))
  • 两边括号(针对字符串比力, 常用在if里) [[ expression ]]
  • 数组 ( )
# 数组遍历array_name=(value0 value1 value2 value3 value4)for value in ${array_name[@]}; do    echo valuedone网络通讯

  • 输出邮件发送 mail
  • 输出网络接口设置 ifconfig or ip addr
  • 表现网络接口信息 netstat or ss
  • 文件下载 wget
  • http哀求 curl, 此下令也包罗文件下载功能
  • 验证服务器是否连通 ping
  • 跟踪网络访问路由 tracepath or traceroute
  • 联合pingtracepath功能的工具 mtr
  • DNS查询 host
  • 查询指定站点的whois记载 whois
  • 网线是否插到在网络接口上 ifplugstatus
  • 网卡禁用和开启 ifdown and ifup
  • 开释IP地点并从DHCP服务器上得到一个新的 dhclient -r
## 常用ss下令ss -l #表现当地打开的全部端口ss -pl #表现每个历程详细打开的socketss -t -a #表现全部tcp socketss -u -a #表现全部的UDP Socektss -o state established '( dport = :smtp or sport = :smtp )' #表现全部已创建的SMTP毗连ss -o state established '( dport = :http or sport = :http )' #表现全部已创建的HTTP毗连ss -x src /tmp/.X11-unix/* #找出全部毗连X服务器的历程ss -s #列出当前socket具体信息布局化下令

  • 条件判定 if-then-else
if command1then    commandselif command2then    more commandselse    more commandsfi# orif command1; then    commandselif command2; then    more commandselse    more commandsfi

  • 条件分支 case
case variable inpattern1 | pattern2)    commands1;;pattern3)    commands2;;*)    default commands;;esac

  • 循环 for
for var in listdo    commandsdone# orfor var in list; do    commandsdone# orfor (( variable assignment ; condition ; iteration process )); do    commandsdone

  • 循环 while
while test commanddo    commandsdone# orwhile test command; do    commandsdone# or 读取文件while read line; do    echo "$line"done

  • 循环 until 与while条件判定刚好相反,command返回非0才实行commands
until test commanddo    commandsdone# oruntil test command; do    commandsdone

  • 控制循环 break and continue
函数

  • 根本脚本函数
function name {    commands}# orname() {    commands}

  • 退出函数并返回退出状态码 return,范围0~255
  • 函数返回真实数据
function db1 {    read -p "Enter a value: " value    echo $[ $value * 2 ]}result=`db1`echo "The new value is $result"

  • 函数参数 func value1 value2
  • 函数内局部变量 local
  • 脚本中调用另一个脚本 . ./myfuncs
情况变量

  • 表现全局情况变量 printenv
  • 表现情况变量(局部+全局) set
  • 设置全局情况变量 export xxx
  • 删除情况变量 unset xxx
附录:默认shell情况变量
变量形貌CDPATH冒号分隔的目次列表,作为cd下令的搜刮路径HOME当前用户的主目次IFSshell用来分隔文本字符串的一列字符MAIL当前用户收件箱的文件名;bash shell会查抄这个文件来看有没有新邮件MAILPATH冒号分隔的当前用户收件箱的文件名列表;bash shell会查抄列表中的每个文件来看有没有新邮件OPTARGgetopts下令处置惩罚的末了一个选项参数值OPTINDgetopts下令处置惩罚的末了一个选项参数的索引号PATH冒号分隔的shell查找下令的目次列表PS1shell下令行界面的主提示符PS2shell下令行界面的次提示符附录:Linux当地开机文件位置
发行版文件位置debian/etc/init.d/rc.localFedora/etc/rc.d/rc.localMandriva/etc/rc.localopenSuse/etc/init.d/boot.localUbuntu/etc/rc.local附录:登录shell文件处置惩罚次序
编号交互式login shell交互式non-login shell1) 体系全局情况变量/etc/profile/etc/bashrc2) 私有情况变量$HOME/.bash_profile-3) 私有情况变量$HOME/.bash_login-4) 私有情况变量$HOME/.profile$HOME/.bashrc附录:expr下令操纵符
操纵符形貌ARG1 | ARG2假如没有参数是null或零值,返回ARG1;否则返回ARG2ARG1 & ARG2假如没有参数是null或零值,返回ARG1;否则返回0ARG1 < ARG2假如ARG1小于ARG2,返回1;否则返回0ARG1 = ARG2假如ARG1大于或即是ARG2,返回1;否则返回0ARG1 > ARG2假如ARG1大于ARG2,返回1;否则返回0ARG1 + ARG2返回ARG1和ARG2的算术运算和ARG1 - ARG2返回ARG1和ARG2的算术运算差ARG1 * ARG2返回ARG1和ARG2的算术运算乘积ARG1 / ARG2返回ARG1被ARG2除的运算商ARG1 % ARG2返回ARG1被ARG2除的算术余数STRING : REGEXP假如REGEXP匹配到了STRING中的某个模式,返回该模式匹配match STRING REGEXP假如REGEXP匹配到了STRING中的某个模式,返回该模式匹配substr STRING POS LENGTH返回起始位置为POS(从1开始计数)、长度为LENGTH个字符的子字符串index STRING CHARS返回在STRING中找到CHARS字符串的位置;否则,返回0length STRING返回字符串STRING的数值长度+ TOKEN将TOKEN表明成字符串,纵然是个关键字(EXPRESSION))返回EXPRESSION的值附录:Linux退出状态码
状态码形貌0下令乐成竣事1通用未知错误2误用shell下令126下令不可实行127没找到下令128无效退出参数128+xLinux信号x的严峻错误130下令通过Ctrl+C停止255退出状态码越界附录:test下令的数值比力功能
比力形貌n1 -eq n2查抄n1是否与n2相称n1 -ge n2查抄n1是否大于或即是n2n1 -gt n2查抄n1是否大于n2n1 -le n2查抄n1是否小于或即是n2n1 -lt n2查抄n1是否小于n2n1 -ne n2查抄n1是否不即是n2附录:test下令的字符串比力功能
比力形貌str1 = str2查抄str1是否和str2雷同str1 != str2查抄str1是否和str2差别str1 < str2查抄str1是否比str2小str1 > str2查抄str1是否比str2大-n str1查抄str1的长度是否非0-z str1查抄str1的长度是否为0附录:test下令的文件比力功能
比力形貌-d file查抄file是否存在并是一个目次-e file查抄file是否存在-f file查抄file是否存在并是一个文件-r file查抄file是否存在并可读-s file查抄file是否存在并非空-w file查抄file是否存在并可写-x file查抄file是否存在并可实行-O file查抄file是否存在并并属当前用户全部-G file查抄file是否存在而且默认组与当前用户雷同file1 -nt file2查抄file1是否比file2新file1 -ot file2查抄file1是否比file2旧附录:通用的Linux下令选项
选项形貌-a表现全部对象-c天生一个计数-d指定一个目次-e扩展一个对象-f指定读入数据的文件-h表现下令的资助信息-i忽略文本巨细写-l产生输出的长格式版本-n利用非交互模式(批量)-o指定将全部输出重定向到输出文件-q以安静模式运行-r递归地处置惩罚目次和文件-s以安静模式运行-v天生具体输出-x清除某个对象-y对全部题目答复yes附录:Linux信号
信号值形貌1SIGHUP挂起历程2SIGINT停止历程3SIGQUIT制止历程9SIGKILL无条件停止历程15SIGTERM大概的话停止历程17SIGSTOP无条件制止历程,但不是停止历程18SIGTSTP制止大概停息历程,但不停止历程19SIGCONT继承运行制止的历程




上一篇:​Python​重要用来做什么 郑州那里有​Python​培训机构 ...
下一篇:PHP的钩子实现剖析
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-14 18:02 , Processed in 0.089427 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表