shell资料

来源:互联网 发布:网上看房用什么软件 编辑:程序博客网 时间:2024/04/30 13:24

unset all
unset LC_TYPE
unset LANG

ls -A


\l \c  \d

>>file 2>&1

windows fodler have " "  bat and shell need ""

$ and ${}


45

$ : > filename
$ > filename
$ echo "" > filename
$ echo > filename
$ cat /dev/null > filename

数组操作:
str="just do it"
echo str:$str
array=($str)
length=${#array[@]}
echo length:$length
echo $array
echo ${array[0]}
echo ${array[@]}
echo ${array[@]:1}
echo ${array[@]::1}
echo ${array[@]:1:2}

 

设置环境变量:
setx /M JAVA_HOME "%jdkpath%"
setx /M CLASSPATH ".;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar"
setx /M PATH "%PATH%;%%JAVA_HOME%%\bin"

properties文件读取:
muserId=`awk -F"=" '/DB.UID/{print $2}' $METERINGLOG_PROPERTIES_FILE`
mhost=`echo $HOST_PORT |cut -d ':' -f 1`

字符串(文件)复杂处理实例:
#1397401059||192.168.0.1||70_NetIO||OK||OK - The Traffic In is 18.709Mbps, Out is

122.638Mbps, Total is 141.347Mbps. The Check Interval is 60s||

In=18.709Mbps;400;600;0;0;0.19%[Out=122.638Mbps;500;700;0;0;1.19%[Total=141.347Mbps;900;

1300;0;0;1.42%[Interval=60s;1200;1800;0;0[bandwidth=10Gbps[UP[2/2/1
#find 1.txt
# gawk '{ sum += $1 }; END { print sum }' file gawk -F: '{ print $1 }' /etc/passwd
#'{print $6,$11}' '{split($6,a,"%"); split($11,b,"%"); if(a[1]>=1 || b[1]>=1) print

$1;}'
temp=`find /opt/FJSVctchg/bin/1.txt | xargs grep '.*' | sort -nr|awk -F ';' '{split

($6,a,"%"); split($11,b,"%"); if(a[1]>=1 || b[1]>=1) print $0;}'| awk -F '|' '{print

$3":"$5}'| sort -u | sed 's/_NetIO//g'`
echo temp:$temp

写log:
log()
{
 NOW=`date "+[%Y/%m/%d %H:%M:%S]"`
 echo ${NOW} $* >> ${LOG_PATH}/${LOG_NAME}.log
}

命令传参:
if [ "$1" != '-d' ]; then fi
if [ $1 -ne 0 ]; then fi

文件夹存在:
if [ -d "${SQL_DIR}" ]; then  fi

文件存在:
if [ ! -e "${METERINGLOG_PROPERTIES_FILE}" ]; then  fi

内部调用命令:
“命令”>> ${LOG_PATH}/${LOG_NAME}.log  2>&1
调用内部函数 check_restore_result $? $mdatabase


shell中单引号、双引号、反引号、反斜杠的区别

单引号告诉shell忽略所有特殊字符,
而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,`
反斜杠一般用作转义字符,或称逃脱字符,linux如果echo要让转义字符发生作用,就要使用-e选项,且

转义字符要使用双引号
echo -e "\n"
反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这

种结构在分几行输入长命令时经常使用。

$()和``的区别
 反引号和$()的功能是命令替换,将反引号或$()中的字符串做为命令来执行,我们在用shell编程时

经常用的到 将系统命令的执行结果赋给一个变量
 但反引号内不能再引用反引号,而$()中可以引用反引号

记录命令历史
.bash_history  !!   !12

alias

*来匹配零个或多个字符,而用?匹配一个字符


要想系统内所有用户登录后都能使用该变量

需要在/etc/profile文件最末行加入 “export myname=Aming” 然后运行”source /etc/profile”

就可以生效了。此时你再运行bash命令或者直接su - test账户看看。

pstree

unset 变量名
【系统环境变量与个人环境变量的配置文件】
/etc/profile
/etc/bashrc echo $PS1
.bash_profile
.bashrc
.bash_history
.bash_logout

文档操作的命令
cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中

grep, sed, awk为正则表达式必须掌握的工具

‘!$’表示上条命中中最后一个变量

cat /etc/passwd | wc -l -m -w
uniq  -c 先用sort排序然后才能uniq

tee
tr '[a-z]' '[A-z]'

sleep 100 &
jobs
fg
bg
fg 1


1) command1 ; command2

2) command1 && command2

3) command1 || command2

who
netstat -a
ps -aux

sysnc ? shutdown ? reboot ? halt
reboot 就是重启,等同于 shutdown –r now
halt 关闭系统,等同于shutdown –h now 和 poweroff
Shutdown –h +10 十分钟后关机

忘记root密码如何做
  1 重启linux系统
  3 秒之内要按一下回车,出现如下界面
   然后输入e
  在 第二行最后边输入 single,有一个空格。具体方法为按向下尖头移动到第二行,按“e”进入

编辑模式
   在后边加上single 回车
   最后按“b”启动,启动后就进入了单用户模式了
   此时已经进入到单用户模式了,你可以更改root密码了。更密码的命令为 passwd

mkdir 创建一个目录
rmdir 删除一个目录
rm 删除目录或者文件
cp copy的简写,即拷贝
mv 移动的意思

more 也是用来查看一个文件的内容。当文件内容太多,一屏幕不能占下
less 作用跟more一样,但比more好在可以上翻,下翻
tail 和head -n

groupadd
更改所属组 chgrp
chown [ -R ] 账户名:组名 文件名
改变用户对文件的读写执行权限 chmod

其中r 代表可读,w代表可写,x代表可执行

在linux中为了方便更改这些权限,linux使用数字去代替rwx ,具体规则为r: 4 w:2 x:1 -:0 举个

例子,-rwxrwx---用数字表示就是 770,具体是这样来的:

rwx = 4+2+1=7; rwx= 4+2+1=7; --- = 0+0+0=0

chmod 语法: chmod [-R] xyz 文件名 (这里的xyz,表示数字)

-R 选项作用同chown,级联更改。

值得提一下的是,在linux系统中,默认一个目录的权限为 755,而一个文件的默认权限为644.

chmod 还支持使用rwx的方式来设置权限。!从之前的介绍中我们可以发现,基本上就九个属性分别

是(1)user (2)group (3)others 三群啦!那么我们就可以藉由 u, g, o 来代表三群的属性!此外,

a 则代表 all 亦即全部的三群!那么读写的属性就可以写成了 r, w, x!
chmod u=rwx,og=rx test/test2

umask
默认情况下,目录权限值为766,普通文件权限值为644


chattr 修改文件的特殊属性

语法: chattr [+-=][ASaci [文件或者目录名]

+-= :分别为增加、减少、设定

A:增加该属性后,文件或目录的atime将不可被修改;

S:增加该属性后,会将数据同步写入磁盘中;

a:增加该属性后,只能追加不能删除,非root用户不能设定该属性;

c:自动压缩该文件,读取时会自动解压;

i:增加后,使文件不能被删除、重命名、设定连接、写入、新增数据;

cat /etc/passwd|head
/sbin/nologin比较多,它表示不允许该账号登录。如果你想建立一个账号不让他登录,那么就可以

把该字段改成/sbin/nologin,默认是/bin/bash


groupadd groupname
tail -n 5 /etc/group

grep -n -i -A2 SHELL test
grep -n -i -C2 SHELL test
grep -c -i -B2 SHELL test


在正则表达式中,”^”表示行的开始,”$”表示行的结尾,那么空行则表示”^$”,如果你只想筛

选出非空行,则可以使用 “grep -v ‘^$’

 sed -n '2,4' p test
 sed -n '1,$'p test
 sed -e '1,2s/test/te/g' test
 sed -e 's/[0-9]/#/g' test
 sed -e 's/[a-zA-Z]/#/g' test

 awk -F':' 'NR>4' test
 awk -F':' '{print $NF}' test
 awk -F':' '$1~/chen/' test
 awk -F':' '$1~/chen/ {print $2}' test 等效 awk -F':' '$1~"chen" {print $2}' test
 awk -F':' '$1=="chen" ' test
 awk -F':' '$1!="chen" ' test
 awk -F':' '$1!="chen" && s1!="li"  {print $2}' test
 awk -F'=' '{if ($1=="test") print $1,$2,$3}' test
 awk -F'=' '{if ($1=="test") sum+=1};END {print sum}' test

 awk 'BEGIN{SUBSEP=":";array["a","b"]=1;for(i in array) print i}'

 awk -F':' '$0~"chen" {print $1}' test  $0表示全文本

date "+%Y%m%d %H:%M:%S" 20141024 17:02:46

数学计算要用’[ ]’括起来并且外头要带一个’$’

read x”表示x变量的值需要用户通过键盘输入得到
read -p 选项类似echo的作用

seq 1 5 表示从1到5的一个序列
for i in `seq 1 5`;do echo $i;done
sum=0;for i in `seq 1 100`;do sum=$[$i+$sum];done;echo $sum

awk -F':' '$0~/abc/ {print $1}' test.log >/tmp/n.txt

sort -n n.txt |uniq -c |sort -n >/tmp/n2.txt

awk '$1>10 {print $2}' /tmp/n2.txt

 

 

 

0 0