linux例子

  1 #!/bin/bash
  2 va="deng_hao_zuo_you_mei_you_kong_ge!"
  3 #双引号里可以引用变量也可以转义双引号
  4 echo "----${va}aa\"a"
  5 #单引号里面任何字符都会原样输出,也不能使用反斜杠转义单引号
  6 echo '----${va}aaa'
  7 
  8 #拼接字符串
  9 your_name="qq"
 10 greeting="hello,"$your_name"!"
 11 greeting_1="hello,${your_name}!"
 12 echo $greeting $greeting_1
 13 echo $greeting_1
 14 
 15 #获取字符串长度
 16 string1="asdfhjhkwejfklnsd"
 17 echo "the length of string(${string1}) is ${#string1}"
 18 
 19 #提取子字符串
 20 string1="alibaba  is a  demon"
 21 echo ${string1:1:4} #输出liba 这句话用sh命令执行的时候会报错touch_file.sh: 21: touch_file.sh: Bad substitution???
    ?????????????
 22 
 23 #查找子字符串????????????????????????????
 24 string1="alibaba is a great company"
 25 echo `expr index "$string1" is` #输出8,找出is在这句话的位置
 26 
 27 #if else-if else

 28 if false;then

        echo 111
 30 elif true;then
 31         echo 222
 32 else
 33         echo 333
 34 fi
 35 
 36 #for
 37 for var in 2 3 4 6;do
 38         echo for_output${var}
 39 done
 40 
 41 #while condition
 42 #do
 43 #   command
 44 #done
 45 
 46 #until condition
 47 #do
 48 #   command
 49 #done
 50 
 51 #case????????????????????????????????????
 52 
 53 cd ~/Documents/qinqinhyq_learn
 54 #if [ -d "/shell_tut" ];then
 55 #       echo "The folder shell_tut was exists ,delete it(Y/N)?"

        rm -r ./shell_tut
 57 #fi
 58 mkdir ./shell_tut
 59 cd ./shell_tut
 60 for((i=0;i<10;i++));do
 61         touch test_$i.txt
 62 done
 63 
 64 #EX1:
 65 #!/bin/sh
 66 SYSTEM=`uname -s`    #获取操作系统类型,我本地是linux
 67 if [ $SYSTEM = "Linux" ] ; then     #如果是linux的话打印linux字符串
 68         echo "Linux" 
 69 elif [ $SYSTEM = "FreeBSD" ] ; then
 70         echo "FreeBSD" 
 71 elif [ $SYSTEM = "Solaris" ] ; then
 72         echo "Solaris" 
 73 else
 74         echo "What?" 
 75 fi     #ifend
 76 aaa=`date "+%y%m%d %H:%M:%S"`
 77 echo `date "+%y%m%d %H:%M:%S"`
 78 echo `date -d "-1 year" "+%y%m%d"`
 79 echo `date -d "+1 year" "+%y%m%d"`
 80 echo "今天星期" `date +%w`
 81 #基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。
 82 #1 字符串判断

83 #str1 = str2      当两个串有相同内容、长度时为真 
 84 #str1 != str2      当串str1和str2不等时为真 
 85 #-n str1        当串的长度大于0时为真(串非空) 
 86 #-z str1        当串的长度为0时为真(空串) 
 87 #str1           当串str1为非空时为真
 88 #2 数字的判断
 89 #int1 -eq int2    两数相等为真 
 90 #int1 -ne int2    两数不等为真 
 91 #int1 -gt int2    int1大于int2为真 
 92 #int1 -ge int2    int1大于等于int2为真 
 93 #int1 -lt int2    int1小于int2为真 
 94 #int1 -le int2    int1小于等于int2为真
 95 #3 文件的判断
 96 #-r file     用户可读为真 
 97 #-w file     用户可写为真 
 98 #-x file     用户可执行为真 
 99 #-f file     文件为正规文件为真 
100 #-d file     文件为目录为真 
101 #-c file     文件为字符特殊文件为真 
102 #-b file     文件为块特殊文件为真 
103 #-s file     文件大小非0时为真 
104 #-t file     当文件描述符(默认为1)指定的设备为终端时为真
105 #3 复杂逻辑判断
106 #-a         与 
107 #-o        或 
108 #!        非
109 

#看当前系统中有没有其他用户在线,可以用who命令
111 #要看网络的联机状态用netstat -a这个命令
112 #要看背景执行程序可以用ps -aux这个命令
113 
114 #mkdir -p fordername  -p值递归创建目录
115 #rmdir -p d1/d2/d3 -p参数相当与删除了d1,d1/d2,d1/d2/d3,这三个路径下都没有其他的东西了。
116 #rm -i/-f/-r  删除目录时要加r参数否则会报错
117 #which ls  which命令用来查找一个命令的绝对路径,
118 #alias用来设置指令的别名,如alias rm='rm -i'
119 #ls -d 只列目录
120 #cp -d sourcefile  targetfile  将源文件拷贝成软连接(快捷方式)
121 #cp -r fordername1 fordername2  拷贝目录
122 #cp -i....如果存在该文件问是否覆盖
123 #cp -u ...源文件比目标文件新时才拷贝,否则不做操作。
124 #cat -n filename 将行号也显示在屏幕上
125 #>和>>都为重定向,>会清空原有的内容,>>为追加
126 #cat -A... 显示所有内容包括特殊字符
127 #tac ... 反向打印文件内容到屏幕,就是最后一行打印到第一行的意思
128 #more(或空格)下一页,less上一页,j向下移动一行,k向上移动一行。/向下搜索字符,?向上搜索支付,按n显示下一个
129 #head -n 5 filename  显示文件头5行内容
130 #tail -n 5 filename 显示文件最后5行内容
131 #tail -f  filename 动态显示文件最后10行内容
132 #groupadd groupname 增加一个组
133 #chgrp groupname filename 更改所属组
134 #useradd username 增加账户
135 #chown [-R] 账户名 文件名 ( 修改文件属主)
136 #chown [-R] 属主名:属组名 文件名  (修改文件属主及属组)

########################
138 #chmod u=rwx,og=rx filename
139 #chmod  u   +(加入) r
140 #       g   -(除去) w   档案或目录
141 #       o   =(设定) x
142 #       a       
143 ########################
144 
145 
146 
147 
148 
149 
150  #http://wiki.jikexueyuan.com/project/linux/shell-script-two.html
       

                                  #umask 为文件默认权限666和目录默认权限777需要减掉的权限。可以在/etc/bashrc里面更改。
145 #chattr 增加特殊属性
146 #chattr 修改文件的特殊属性
147 #语法: chattr [+-=][ASaci [文件或者目录名]
148 #+-= :分别为增加、减少、设定
149 #A:增加该属性后,文件或目录的atime将不可被修改;
150 #S:增加该属性后,会将数据同步写入磁盘中;
151 #a:增加该属性后,只能追加不能删除,非root用户不能设定该属性;
152 #c:自动压缩该文件,读取时会自动解压;
153 #i:增加后,使文件不能被删除、重命名、设定连接、写入、新增数据;
154 #lsttr 列出文件的特殊属性
155 #which搜索可执行文件的绝对路径
156 #whereis -b/m/s/u filename  在当前目录及子目录下查找对应文件
157 #locate filename 在当前目录及子目录下查找对应文件名,需安装软件包mlocat4e
158 #find [路径][参数] filename
159 #-atime +n :访问或执行时间大于n天的文件
160 #-ctime +n :写入、更改inode属性(例如更改所有者、权限或者连接)时间大于n天的文件
161 #-mtime +n :写入时间大于n天的文件
162 #先给你介绍一下这三个time属性。
163 #文件的 Access time,atime 是在读取文件或者执行文件时更改的。文件的 Modified time,mtime 是在写入文件时随文件内容的>    更改而更改的。文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。 因此
    ,更改文件的内容即会更改 mtime 和 ctime,但是文件的 ctime 可能会在 mtime 未发生任何变化时更改,例如,更改了文件的权>    限,但是文件内容没有变化。 如何获得一个文件的atime mtime 以及ctime ?
164 #ls -l 命令可用来列出文件的 atime、ctime 和 mtime。
165 #ls -lc filename         列出文件的 ctime
166 #ls -lu filename         列出文件的 atime
167 #ls -l filename          列出文件的 mtime            

168 #atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atim    e的信息。而这是加了 noatime 取消了, 不代表真实情況。反正, 這三個 time stamp 都放在 inode 中。若 mtime, atime 修改ino    de 就一定會改, 既然 inode 改了, 那 ctime 也就跟著要改了。
169 #find /root -name test*  在root这个目录下查找包含test*文件名的文件
170 #find /root -type f  在root这个目录下查找所有文件
171 
#软连接和硬链接??????????????????????区别???????????
172 #ln [-s] [源文件] [目标文件]  -s加上就是软连接 不加就是硬链接
173 #查看当前目录所占空间  du -sk
174 #关键文件:/etc/passwd,/etc/shadow
175 #groupadd [-g GID] groupname 新增一个组
176 #groupdel groupname 删除组
177 #useradd [-u UID] [-g GID] [-d HOME] [-M 不建立家目录] [-s 自定义shell] username 新建用户
178 #userdel[-r delHOME] username  删除用户
179 #passwd [username] 后面不跟用户名表示修改当前用户的密码
180 #su -  登陆root时后面可以跟-或者什么都不跟,加用户名就切换到该用户账号,如果用户名前面加-则会联通用户的环境变量一起切
    换过来
181 #echo $LOGNAME 查看当前登陆用户名
182 #sudo 可以设置普通用户使用root权限,不泄露root密码
183 #df [-i 使用inodes的情况显示结果] 
184 #   [-h 智能使用合适的单位显示]/[-k 使用K为单位显示]/[-m 使用M为单位显示]
185 #du [-abckmsh] [文件或者目录名]
186 #-a,全部文件与目录大小都列出来,如果不加任何选项和参数则只列出目录(包含子目录)大小
187 #-b,以bytes为单位输出
188 #-c,最后加总
189 #-k,以kb为单位输出
190 #-m,以mb为单位输出
191 #-s,只列出总和
192 #-h,单位智能输出
193 
194  #http://wiki.jikexueyuan.com/project/linux/shell-script-two.html
~                                                                            

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值