shell常用脚本命令
本帖最后由 jimu 于 2016-1-21 23:39 编辑-----------------------1-----------------------
如在shell中执行命令 ./update.sh
update.sh中的内容. $(dirname "$0")/common.sh$0 表示当前运行的命令(即: ./update.sh)
dirname 用于取指定路径所在的目录 ,如 dirname /home/firemail 结果为 /home
$(命令) 返回该命令的结果
即上面整行的意思就是运行当前上当下的 common.sh 文件。
-----------------------2----------------------
pushd popd
Pushd是Windows操作系统cmd下的一个命令.
作用:保存当前目录以供 POPD 命令使用,然后改到指定的目录。
用法: PUSHD
path 指定要成为当前目录的目录。
算术运算方法一:let 算术运算表达式let C=$A+$B 这里变量A和B前面的$可以省略方法二:$[算术运算表达式]C=$[$A+$B]方法三:$((算术运算表达式))C=$(($A+$B))方法四:expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用,遇到乘法的*号还要转义C=`expr $A + $B`方法五:expr $[算术运算表达式],遇到乘法*号不用转义。#!/bin/bash
line=5
remain=$[$line-3]
remain2=`expr $line - 3`
let remain3=$line-3
remain4=$(($line-3))
echo $remain
echo $remain2
echo $remain3
echo $remain4
grep -v grep | grep -v tail
1、第一部分 “grep -v grep" 在文档中过滤掉包含有grep字符的行
2、第二部分“grep -v tail” 在第一部分过滤掉之后再过滤掉剩余文档中包含有tail字符的行
3、总结一下就是:这条命令的意思就是过滤掉文档中包含字符“grep”和“tail”的行
4、可简化为:grep -v "cp|mkdir"
本帖最后由 java 于 2018-5-2 09:46 编辑
nohup command>/dev/null 2>&1 &
nohup: 表示当前用户和系统的会话下的进程忽略响应HUP消息。
&是把该命令以后台的job的形式运行。
几个基本符号及其含义
/dev/null 表示空设备文件
0 表示stdin标准输入
1 表示stdout标准输出
2 表示stderr标准错误
command>/dev/null 表示
command命令的输出 先输出到 1 然后再由 1 输出到 /dev/null 就是不显示任何信息。
2>&1 表示
标准错误输出到标准输出,加&是表示对上一个command输出到1的引用,即不会重复两次打开1,是在上一次打开的基础上进行输出。
计划任务的常用写法
0 5 * * * sh /opt/analy.sh >> /opt/analy.out 2>&1
每天5点执行脚本 analy.sh
root=`dirname $0`
curDate=`date +%Y-%m-%d -d "-24hour"`
csvFileName="custom-${curDate}.csv";
$root/$csvFileName ---基于当前文件所在目录的完整路径
查看用户所在组
groups hecj
查看所有组 cat /etc/group
/////修改用户//////
usermod -d /home/test -G test2 test
将test用户的登录目录改成/home/test,并加入test2组,注意这里是大G。
-g, --gid GROUP 使用户只属于某个组
-G, --groups GROUPS 使用户加入某个组
////查看单个用户信息/////
# finger apacheuser
# id apacheuser
# id shig
uid=0(root) gid=0(root) 组=0(root)
# id yangjf
uid=0(root) gid=0(root) 组=0(root)
You have new mail in /var/spool/mail/root
# id hecj
uid=508(hecj) gid=0(root) 组=0(root)
# id root
uid=0(root) gid=0(root) 组=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
/////////linux 修改 uid = 0////////////
"0"是分给ROOT的 你可以尝试修改/etc/passwd 将指定用户的UID GID改为0
useradd -u 0 -o
linux 用 Uid 判定用户,改成 0 了相当于 root 的一个别名用户。
yangjf:x:0:0::/home/yangjf:/bin/bash
hecj:x:0:0::/home/hecj:/bin/bash
///////////////查看使用的shell///////////
cat /etc/shells
$ more /etc/shells 可以看到本系统中可以使用哪些shell
$ echo $SHELL可以查看当前默认的shell
看etc/passwd文件中最后一项是每个用户使用的shell
页:
[1]