ls -l //display prop rwx etc.
ls *.doc
ls musi*.doc
exit
git clone git@192.168.1.10:msm8625.git
wine ~ Downloads/SourceInsight3/Insight3.exe
wine ~ software/Source insight 3/Insight3.exe
cd ..
chmod 700 jiangzhaokong
git pull origin master
git help
cat /proc/version
//find key in all
grep -r -l "com.viroyal.gps.service.BACK" ./vendor/
tee
下面我们来看一个例子,我们使用w h o命令,结果输出到屏幕上,同时保存在w h o . o u t文
件中:
$who |tee who.out
cat who.out
sudo apt-get install meld
sudo apt-get install gedit-plugins
sudo chmod 777 install.sh
git checkout packages/apps/DeskClock
git status
git pull
new shell.command method
chmod 777 shell.sh
./shell.sh
//read
read name -- enter
jiangzhaokong
echo $name
name = jiangzhaokong
//cat
cat myfile
read myfile content
//set
display all shell variable
//landing system
type name and password,the system will check you is a vaild user.
so need to inquery /etc/password
//常用的命令
1、
basename
从路径中分离出文件名
$basename /home/dave/myscript
myscript
2、cat
cat myfile1 myfile2 >>hold_file
整合两个文件到 hold_file
3、compress myfile
4、
cp
格式:
cp options file1 file2
选项:
- i:在覆盖文件之前提示用户,由用户确认。
- p:保留权限模式和更改时间。
- r:拷贝相应的目录及其子目录。
要将文件m y f i l e拷贝到m y f i l e 1 . b a k,使用:
$ cp myfile1 myfile1.bak
要将/ l o g s目录下的所有文件及子目录拷贝到/ h o l d / l o g s目录中,使用:
$cp -r /logs /hold/logs
5、
du option directory
- a:显示每个文件的大小,不仅是整个目录所占用的空间。
- s:只显示总计。
6、
格式:
file filename
该命令用来确定文件的类型。
7、
格式:
head -number files
h e a d命令可以显示相应文件的前1 0行。如果希望指定显示的行数,可以使用- n u m b e r选项。
例如:
$ head -1 myfile
只显示文件的第一行,而
$ head -30 logfile |more
则显示l o g f i l e文件的前3 0行。
8、l o g n a m e
该命令可以显示当前所使用的登录用户名:
9、mkdir options directory
格式:
10、
p w d
显示当前的工作目录,可以用
11、去除重复出现的字符
$tr -s "[a-z]" < example.txt
使用cat 命令,再将结果管道输出至tr
$cat example.txt | tr -s "[a-z]"
删除空行
$tr -s[\012] < example.txt
$tr -s[" "] < example.txt
大小写转换
$echo “May Day,May Day,Going Down..” | tr "[a-z]" "[A-Z]"
MAY DAY,MAY DAY,GOING DOWN..
cat myfile | tr "[A-Z]" "[a-z]" > lower_myfile
$ Mydata = "date"
$ echo $Mydata
data
脚本不是复杂的程序,它是按行解释的。脚本第一行总是以# ! / b i n / s h开始,这段脚本通知
s h e l l使用系统上的Bourne shell解释器
#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,
其后面根的是此解释此脚本的shell的路径。
$bash $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#,bash是shell的一种,
是linux下最常用的一种shell,$bash的意思是执行一个子shell,此子shell为bash。
$rm myfile //delete myfile
$rm -r /var/temp //delete folder
exit n
exit 0 退出成功,无错误
exit 1 退出失败,某处有错误
控制流:
i f、
t h e n、
e l s e
语句提供条件测试
使用i f语句时,必须将t h e n部分放在新行,否则会产生错误。如果要不分行,必须使用命
令分隔符。本书其余部分将采取这种形式。现在简单i f语句变为:
if 条件;t h e n
命令
f i
$pg iftest
#!/bin/sh
#iftest
#this is a comment line,all comment lines start with a #
if ["10" -lt "12"]
then
#yes 10 is less than 12
echo "yes,10 is less 12"
fi
for 使用方法:
for var in ....; do
....
done
下面的示例会把A B C分别打印到屏幕上:
#!/bin/bash
for var in A B C ; do
echo "var is $var"
done
-z 的用法
$1在shell中称为“位置参数”,表示传入的第1个参数(第1个入参)。
用在shell脚本主体中,表示shell脚本的第1个入参。
用在shell脚本函数里,表示函数的第1个入参。
test -z $1 是一个判断表达式,用于判断$1的值是否为空字符串。
若为空,则结果为true;否则为false。
fi 的用法
fi为if语句的结束
basename $0` 与$0区别
`basename $0`值显示当前脚本或命令的名字
$0显示会包括当前脚本或命令的路径
`basename $1`和$1相同
awk工作流程是这样的:读入有' '换行符分割的一条记录,
然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。
默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推
awk -F = '{print $2}' = 是分隔符
通常可以根据返回值来判断。
不过还有一点就是要注意,就是make install要管理员权限才行。
make clean && make && make install
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。
shell编程中总会遇到这样的需求:
第一个shell写文件,要执行的时间很长,第二个shell依赖前面生成的文件,那么,第二个shell就要等到文件写完再执行才有效,那么就有两种方式实现:
1、判断文件写结束 后 执行shell2
2、判断shell1执行完毕 后 执行shell2
方案1,一直没找到怎么做,万幸的是,找到了方案2:
Java代码 收藏代码
shell1 && shell2 && shell3
这样,后面的shell就会等待前面的shell执行完成后再执行。
| 留言与评论(共有 0 条评论) “” |