linux服务器命令脚本,轻度Linux服务器维护人员常用的Shell脚本命令

文件操作更改当前目录cd

获取当前目录pwd

删除文件/目录rm -forrm -rforrmdir

创建文件touchorcat > xxx

创建临时文件mktemp testing.XXXXXX, 文件名末尾加6个X

创建临时目录mktemp -d dir.XXXXXX, 目录名末尾加6个X

创建目录mkdir

移动文件/文件重命名mv

复制cp

硬链接/软链接lnorln -s

显示文件列表ls

实际搜索硬盘查询文件名称find

别名alias

查看文件所在路径dirname

查看文件名(过滤路径)basename

查看可执行文件的位置which

查看文件的位置whereis

配合数据库查看文件位置locate

文件查看文件内容查看cat

按页查看文件内容moreorless

查看文件前几行head

查看文件后几行tail

查看文件统计信息stat

查看文件类型file

文本编辑字符流编辑器sed

模式匹配的程序设计语言awkandgawk

行编辑器ed

排序sort

编辑工具vimoremacs

查询/统计统计文件中数量wc -corwc -lorwc -w

计算行号nl

搜索数据grep

文件权限系统用户cat /etc/passwdorcat /etc/shadow

添加用户useradd

删除用户userdel

修改用户usermodorchshorchfnorchage

修改密码passwdorchpasswd

系统用户组cat /etc/group

添加用户组groupadd

删除用户组groupdel

添加用户到用户组usermod

修改用户组groupmod

设置创建文件默认权限umask

修改权限chmod

修改所属关系chownorchgrp

执行root命令sudo

显示用户id和所属组信息id

压缩/归档归档tar

zip压缩ziporunziporzipcloakorzipnoteorzipsplit

bzip2压缩bzip2orbunzip2orbzcat

gzip压缩gziporgunziporgzcat# 仅打包,不压缩

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 & Ubuntuapt-get

Redhat & CentOSyumorrpm

查询rpm包是否安装rpm -q xxx

列出所有被安装的rpm包rpm -qa

安装RPM包rpm -ivh xxx

查看yum安装后,机器里都装了哪些东西rpm -ql xxx

手动安装./configurethenmake -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

调整命令的调度优先级niceandrenice

计划定期执行脚本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 auxorps -ef

实时监测进程top

结束进程killorkillall

挂载媒体mountorumount

查看磁盘使用情况dfordu

查看登录用户who

查看所有进程和登陆用户lsof

捕捉信息trap

打印确切的系统信息uname -a

打印操作系统信息cat /etc/redhat-release

日期/时间当前时间date

休息暂停sleep

打印出一条命令或一个程序的执行时间time

打印/输出打印printforecho

输出重定向(覆盖)>

输出重定向(底部追加)>>

输入重定向<

内联输入重定向<<

管道|

标准键盘输入read

退出状态码echo $?

shell脚本结束设置退出状态码exit return_number

命令行参数数量echo $#

命令行最后一个参数echo ${!#}

命令行所有参数$*or$@

命令行参数位移shift# ./testing -a -b test1 -d

# Found the -a option

# Found the -b option. with parameter value test1

# -d is not an option

# extracting command line options and values

while [ -n "$1" ]

do

case "$1" in

-a) echo "Found the -a option";;

-b) param="$2"

echo "Found the -b option, with parameter value $param"

shirt 2;;

-c) echo "Found the -c option";;

--) shift

break;

*) echo "$1 is not an option";;

esac

shift

done

count=1

for param in "$@"

do

echo "Parameter #$count: $param"

count=$[ $count + 1 ]

done命令行参数分析getopt

结果输出到和标准错误一样command >&2

重定向错误和数据return_number>, 重定向所有输出&># 文件或路径不存在的返回码是2

ls -al badfile 2> testfile

cat testfile

# ls: cannot access badfile: No such file or directory

ls -al test test2 test3 badtest 2> testfile 1> testfile2

cat testfile

# ls: cannot access test: No such file or directory

# ls: cannot access badtest: No such file or directory

cat 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>orexec return_number<

阻止命令输出command > /dev/null

清空文件cat /dev/null > filename

记录消息到日志文件tee filenamedate | tee testfile

# Sun Oct 17 18:56:21 EDT 2010清屏clear

创建脚本菜单select# smenu1

PS3="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" ;;

esac

done

clear

# ./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=100

var2=45

var3=`echo "scale=4; $var1 / $var2" | bc`

echo The answer for this is $var3

# The answer for this is 2.2222

运算符测试条件并返回退出状态码(常用在if里)test conditionor[ condition ]

双尖括号(针对数学表达式, 常用在if里)(( expression ))

双方括号(针对字符串比较, 常用在if里)[[ expression ]]

数组( )# 数组遍历

array_name=(value0 value1 value2 value3 value4)

for value in ${array_name[@]}; do

echo value

done

网络通信输出邮件发送mail

输出网络接口配置ifconfigorip addr

显示网络接口信息netstatorss

文件下载wget

http请求curl, 此命令也包含文件下载功能

验证服务器是否连通ping

跟踪网络访问路由tracepathortraceroute

结合ping和tracepath功能的工具mtr

DNS查询host

查询指定站点的whois记录whois

网线是否插到在网络接口上ifplugstatus

网卡禁用和开启ifdownandifup

释放IP地址并从DHCP服务器上获得一个新的dhclient -r## 常用ss命令

ss -l #显示本地打开的所有端口

ss -pl #显示每个进程具体打开的socket

ss -t -a #显示所有tcp socket

ss -u -a #显示所有的UDP Socekt

ss -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-elseif command1

then

commands

elif command2

then

more commands

else

more commands

fi

# or

if command1; then

commands

elif command2; then

more commands

else

more commands

fi条件分支casecase variable in

pattern1 | pattern2)

commands1;;

pattern3)

commands2;;

*)

default commands;;

esac循环forfor var in list

do

commands

done

# or

for var in list; do

commands

done

# or

for (( variable assignment ; condition ; iteration process )); do

commands

done循环whilewhile test command

do

commands

done

# or

while test command; do

commands

done

# or 读取文件

while read line; do

echo "$line"

done循环until与while条件判断刚好相反,command返回非0才执行commandsuntil test command

do

commands

done

# or

until test command; do

commands

done控制循环breakandcontinue

函数基本脚本函数function name {

commands

}

# or

name() {

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.local

Fedora/etc/rc.d/rc.local

Mandriva/etc/rc.local

openSuse/etc/init.d/boot.local

Ubuntu/etc/rc.local

附录:登录shell文件处理顺序编号交互式login shell交互式non-login shell1) 系统全局环境变量/etc/profile/etc/bashrc

2) 私有环境变量$HOME/.bash_profile-

3) 私有环境变量$HOME/.bash_login-

4) 私有环境变量$HOME/.profile$HOME/.bashrc

附录:expr命令操作符操作符描述ARG1 | ARG2如果没有参数是null或零值,返回ARG1;否则返回ARG2

ARG1 & ARG2如果没有参数是null或零值,返回ARG1;否则返回0

ARG1 < ARG2如果ARG1小于ARG2,返回1;否则返回0

ARG1 <= ARG2如果ARG1小于或等于ARG2,返回1;否则返回0

ARG1 = ARG2如果ARG1等于ARG2,返回1;否则返回0

ARG1 != ARG2如果ARG1不等于ARG2,返回1;否则返回0

ARG1 >= ARG2如果ARG1大于或等于ARG2,返回1;否则返回0

ARG1 > ARG2如果ARG1大于ARG2,返回1;否则返回0

ARG1 + 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字符串的位置;否则,返回0

length 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是否大于或等于n2

n1 -gt n2检查n1是否大于n2

n1 -le n2检查n1是否小于或等于n2

n1 -lt n2检查n1是否小于n2

n1 -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继续运行停止的进程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值