Linux浅入浅出之常用几个命令和概念

来源:互联网 发布:淘宝兼职赚钱是真的吗 编辑:程序博客网 时间:2024/05/16 05:15

一、

echo "some text": 将文字内容打印在屏幕上 

ls: 文件列表 -la 列出所有文件和文件夹  包括隐藏的

wc –l file  wc -w file   wc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数 

cp sourcefile destfile: 文件拷贝

mv oldname newname : 重命名文件或移动文件

rm file: 删除文件 

grep 'pattern' file: 在文件内搜索字符串  -n显示行数 -i不区分大小写

chmod [+ | - | =] [mode] 文件名  改资源权限

file somefile: 得到文件类型 

find: 搜索文件比如:根据文件名搜索find . -name filename -print 

dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin 

tar:压缩、解压     eg: 压:tar -zcvf test.tar.gz test.sh   解到指定目录:tar -xzvf test.tar.gz -C /home/end

mkdir 创建目录    -p 一次性创建多层目录

二、

1.管道  |  将一个命令的输出作为另一个命令的输入:grep "hello" file.txt | wc -l 在file.txt中搜索包含有”hello”的行并计算其行数。 

2.重定向 > 或 >>  将命令的结果输出到文件而不是标准输出。>覆盖旧文件  >>加到文件尾

3.反短斜线(普通键盘数字1前面的键)  将一个命令的输出作为另一个命令的参数。

eg:tar -zcvf test.tar.gz `find -name test.sh -print`


三、流程控制

1.if

<span style="font-size:18px;"><pre name="code" class="plain"><span style="font-size:18px;">if....; then...elif....; then....else....fi</span></span>
通常用[ ]表示条件,注意方括号中内容的前后要有空格。

[ -f "somefile" ] :判断是否是一个文件 
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限 
[ -n "$var" ] :判断$var变量是否有值 
[ "$a" = "$b" ] :判断$a和$b是否相等

eg:

<span style="font-size:18px;"><span style="font-size:18px;">#!/bin/shif [ `ls -la | wc -l` == "4" ]; thenecho "yes 4"elsea=`ls -la | wc -l`echo "$a"fi</span></span>


2.case    eg:   $1 表示传进来的第一个参数  脚本名为test.sh  使用:test.sh ***.tar.gz

<span style="font-size:18px;">#!/bin/shtype=`file "$1"`case "$type" in"$1: gzip"*)tar -xzvf "$1" -C /home/end;;"$1: Zip "*)unzip "$1";;*) echo "file can not been unzip";;esac</span>


3.select  用户可以从一组值中选择一个  eg:

<span style="font-size:18px;"><span style="font-size:18px;">#!/bin/shecho "what is your favourite language?"select lan in "java" "c" "c++" "python" "Ruby";dobreakdoneecho "you selected $lan"</span></span>


4.loop

(1)while loop

<span style="font-size:18px;">#!/bin/sha=0while [ "$a" -lt 5 ]; doecho "a is $a";((a=a+1))done</span>
-lt less than        小于
-gt great than    大于
-ge great equal  大于等于
-le less equal     小于等于
-eq equal           等于
(2)for loop

eg:

<span style="font-size:18px;">#!/bin/shfor a in 1 2 3 4 5; doecho "current is $a";done</span>
eg:

<span style="font-size:18px;">#!/bin/shfor a in $*; doecho "current is $a";done</span>
$*表示传进来的所有参数


5.引号

bash程序在参数传递之前,会扩展通配符和变量。比如 * 或 $SHELL 等。引号可以阻止这种扩展,且单引号比双引号更为严格。

6. Here documents  

将多行文字传递给命令,以<<开头,和面接一个字符串   然后是想要的文字  最后以相同的开始字符串结尾

eg:

<span style="font-size:18px;">#!/bin/shcat << !here!this is my sample bash programdo you want to learn it?we can work together!!here!</span>

7.引入其他脚本

在脚本中引入其他脚本的内容有两张方式:

(1)source   other.sh   (2). other.sh   "."和后面的脚本之间必须有个空格

eg:

child.sh

#!/bin/shparam="this is child"
test.sh

#!/bin/shparam="this is test"echo "$param". child.shecho "$param"
执行test.sh的结果是:

this is test

this is child


0 0
原创粉丝点击