firemail
标题: shell常用脚本命令 [打印本页]
作者: jimu 时间: 2016-1-21 23:05
标题: 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 | ..]
path 指定要成为当前目录的目录。
作者: java 时间: 2018-3-1 16:32
算术运算
方法一: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
复制代码
作者: java 时间: 2018-3-1 16:51
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-3-1 17:56
本帖最后由 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
作者: java 时间: 2018-5-2 09:44
root=`dirname $0`
curDate=`date +%Y-%m-%d -d "-24hour"`
csvFileName="custom-${curDate}.csv";
$root/$csvFileName ---基于当前文件所在目录的完整路径
作者: Qter 时间: 2020-1-5 16:06
查看用户所在组
groups hecj
查看所有组 cat /etc/group
/////修改用户//////
usermod -d /home/test -G test2 test
将test用户的登录目录改成/home/test,并加入test2组,注意这里是大G。
-g, --gid GROUP 使用户只属于某个组
-G, --groups GROUPS 使用户加入某个组
////查看单个用户信息/////
[root@krlcgcms01 ~]# finger apacheuser
[root@krlcgcms01 ~]# id apacheuser
[root@uway-linux-64 cdma_summary]# id shig
uid=0(root) gid=0(root) 组=0(root)
[root@uway-linux-64 cdma_summary]# id yangjf
uid=0(root) gid=0(root) 组=0(root)
You have new mail in /var/spool/mail/root
[root@uway-linux-64 cdma_summary]# id hecj
uid=508(hecj) gid=0(root) 组=0(root)
[root@uway-linux-64 cdma_summary]# 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
欢迎光临 firemail (http://firemail.wang:8088/) |
Powered by Discuz! X3 |