【Linux】Linux命令学习(笔记一)

来源:互联网 发布:淘宝假冒材质违规申诉 编辑:程序博客网 时间:2024/05/16 09:02
 

【一】 Ctrl + c : 在 Linux 底下,如果您输入了错误的指令或参数,有的时候这个指令或程序会在系统底下『跑不停』这个时候怎么办?别担心,如果您想让当前的程序『停掉』的话,可以输入:『Ctrl』+『c』,这个就是中断目前程序的按键啦!

【二】 q : 有很多程序在跑的时候(例如 man 这个指令或 more 这个指令),如果您想跳出来,就按下 q 即可!这个按钮也是很多指令常定义的退出钮。

【三】 [Tab] :会不会觉得打字很疲劳啊!没关系,在 Linux 的预设文字接口 ( 我们称为 BASH Shell ) 当中,有个很棒的功能,叫做是『命令与档案补全』的功能!那就是键盘左边的[Tab]这个按键啦!他有什么好处呢?例如刚刚我们要执行 cal 这个指令对吧,这个时候,你只要输入 ca[tab][tab] ,也就是输入 ca 之后,再按两次 [tab] 按键,您会发现什么事呢?啊!所以以 ca 为开头的指令都被显示出来啦!很棒吧!另外,如果你输入『 ls -al .bash[tab][tab]』会发生什么事呢?哈哈!在该目录下面所有以 .bash 的文件名称都会被显示出来!所以啰,你就会知道,[tab] 按键是『很棒的功能!』在文字接口底下,要多按 [tab] 按键,可以避免打错字或下错指令喔!

【四】 在线求助指令 man。manual (操作说明) 的简写啦!只要下达:『 man date 』马上就会有清楚的说明出现在你面前

输入完 man date 后要想定位 显示出的所有date 只需要输入 /date 离开的时候按下 Q就可以喽!

此外可以使用的按键有空格键:往下翻一页

Page up:往上翻一页

Page down:往下翻一页

Home:回到最前面

End:去到最终页

我经常用的中文查看命令 *** --help

【五】 sync 将同步数据写入硬盘中的指令

shutdown 关机指令

reboot 重启 跟 shutdown –r now 功能一样

让系统自己关机 shutdown –h 1:30

日期格式设置2010/10/27-21:00(date %Y%M%D-%H%M)

【六】 ls –al (a 是为了显示隐藏文件 l是为了显示属性)

第一个文件:文件夹拥有者 可读写执行。本组 可读不可写可执行 其它组可读 可执行

一栏其实共有十个属性

【】【r】【w】【x】【】【】【】【】【】【】

可读可写可执行

第一栏:就是竖着看第一大栏

第一组:拥有人的权限第二组:同群组的权限第三组:其它非本组的权限

d是目录

-是档案

L 表示链接文档 link file

B 装置文件中可存储的接口设备

C 表示串行接口设备

【七】 在 Windows 底下一个档案是否具有执行的能力是藉由『附档名』来执行的,例如:.exe, .bat, .com 等等,但是在 Linux 底下,我们的档案是否能执行,则是藉由是否具有x 这个属性来决定的!所以,跟档名是没有绝对的关系的!(就是ls –al 查看时显示的属性)

第二栏:连结占用的节点 (i-node) ( 若为目录时,通常与该目录底下还有多少目录有关 )

第三栏表示这个档案(或目录)的『拥有人』;

第四栏表示拥有人的群组;

第五栏为这个档案的大小;

第六栏为这个档案的建档日期或者是最近的修改日期

第七栏为档案名。如果档名之前多一个『 . 』,则代表这个档案为『隐藏档』

【八】 改变档案的权限

chgrp: 改变档案所属群组:chgrp 群组文件【群组在/etc/group存在的名字才行】

chown:改变档案所属人:chown 用户名文件【/etc/passwd中记录用户名字】

chmod:改变文档的可写可读可执行

unmask :也是改变属性用的

chattr:改变档案的特殊属性–i加上参数后让改变的文档不能删除,不能更改

什么时候使用以上两种呢?

cp test.txt test_1.txt //在root用户下拷贝一份text 这时 test_1仍然属于root

要想让用户 aaa使用就要

Chown aaa test_1

chmod:改变档案的属性(命名规则 change group change owener change mod)

r=4 w=2 x=1

owner = rwx = 4+2+1 = 7
      group = rwx = 4+2+1 = 7
      others = --- = 0+0+0 = 0

chmod 770 test.txt 将所有属性打开 

还有一个改变属性的方法呦!从之前的介绍中我们可以发现,基本上就九个属性分别是(1)user (2)group (3)others 三群啦!那么我们就可以藉由 u, g, o 来代表三群的属性!此外, a 则代表 all 亦即全部的三群!那么读写的属性就可以写成了 r, w, x 啰!也就是可以使用底下的方式来看:

chmod

u
g
o
a

+(加入)
-(除去)
=(设定)

r
w
x

档案或目录

Chmod a-x test.txt //让所有的用户均不能执行 test.txt文件

【九】 目前linux 支持的档案格式很多但是你要想让一个特殊的格式让linux识别,你需要将你所想要支持的档案格式i安逸到你的核心中才能被支持!Linux 的正统档案格式为 ext2。Windows下有ntfs 就是磁盘存储格式。

Linux 档案附档名:就是类似 .Bat .doc 之类的

程序语言如 perl 的档案,其附档名也可能取成 .pl

某些从网上下载的程序不能被正确安装的原因???

你在网络上下载一个可执行档,但是偏偏在你的 Linux 系统中就是无法执行!呵呵!那么就是可能档案的属性被改变了!不要怀疑,从网络上传送到你的 Linux 系统中,档案的属性确实是会被改变的喔!

【十,目录与路径的几个常用的命令】

1, cd(change directory)变换目录

2, pwd ( print working directory) 显示目前所在目录的指令

3, mkdir/rmdir(make/remove directory) 建立和删除目录

mkdir -p /home/tianshuai/haha/heihei 加上参数-p 可以一次性建立多个文件夹 rmdit -p 有同样删除的功效

【十一,环境变量 PATH】

echo$PATH输出环境变量

【十二,档案与目录管理】

1, ls 显示文件名称、属性

2,cp 拷贝文件

3,rm 通常在 Linux 系统下,为了怕档案被误杀,所以都已经有 -i 这个参数, -i 是指每个档案被杀掉之前都会让使用者确认一次,以预防误杀档案!(这个是默认的)而如果要连目录下的东西都一起杀掉的话,例如子目录里面还有子目录时,那就要使用 -rf 这个参数了!不过,使用『 rm -rf 』这个指令之前,请千万注意了,因为,该目录或档案『肯定』会被 root 杀掉!因为系统不会再次询问你是否要砍掉呦!所以那是个超级严重的指令下达呦!得特别注意!不过,如果你确定该目录不要了,那么使用 rm -rf 来循环杀掉是不错的方式一般直接删除文件夹时会不让删除

4,mv 移动文件(类似剪切)用途之一是变更文档名

【十三,观看文档内容】【加上参数–n 显示行号】

 cat(Concatenate连接) 由第一行开始显示档案内容
       tac 从最后一行开始显示(倒着显示),看出 tac 是 cat 的倒着写!
       more 一页一页的显示档案内容 (无法向前翻页)
       less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
       head 只看头几行
        tail 只看尾巴几行
        nl 显示的时候,顺道输出 行号! == cat -n
         od 以二进制的方式读取档案内容!

【十四,连接档】

ln test test-hard_links //创建硬盘连接

不能连接文件夹

ln -s test test-symbolic links//符号链接(更像快捷方式)

删除test后 test-hard_links 不能 正常显示

【十五,搜寻档案或目录】

Which 查看可执行档案的位置

Whereis 查看档案的位置

Locate 配合数据库查看档案的位置

Find 实际搜寻硬盘去查询文件名称

【十六,详解/etc/passwd跟/etc/shadow】

存放用户名密码的地方被转移到 /etc/shadow中但是密码显示加密(要想查看需要 su root)

/etc/group 这个档案可以让你直接将账号所要支持的群组加进来

passwd tianshuai //更改用户密码

id 用户//查询用户的 UID GID 等等ID

finger 用户 //查询用户信息

groups 用户名// 查询用户分组

【十七,sudo用法】

为了让常规用户不需要知道root密码而执行 root的某些功能(安装)

【十八,压缩与解压缩】

1,文件后缀为 .gz

gzipmain.c //压缩

gzip -d main.c //解压缩

zcat main.c//查看压缩文件

2,文件后缀为 .bz2

bzip2 main.c//压缩文件

bzip2 -d main.c.bz2 //解压缩文件

bzcat main.c//查看压缩文件

以上命令只能压缩一个档案,要想压缩许多文件就需要使用下面命令

4, 文件后缀为 .tar

Tar –cvf 1 //这样会出现“谨慎的拒绝创建空归档文件”

Tar –cvf 1.tar 1//创建成功(先写要创建的文件及文件名,然后写上要压缩的文件)

Tar –xvf 1.tar //解压文件

【十九,vi编辑器的使用】

直接使用 vi tianshuai.txt //在当前目录下创建文件tianshuai.txt

一般模式转换到编辑模式需要按下[ i ,o , a ,R(大写的意思是替换)]

编辑模式 Esc 一般模式:wq!存档离开

使用摘要:

一,定位

1, nG直接定位到第n行(输入时在一般模式下,例:输入50接着按下G 自动定位到50行)

2, GG 第一行

3, G 最后一行

4, 按下 n 再按向右键 //向右方移动

二,编辑

1, 删除一个单词 dw

2, 删除一行 dd

3, 向下删除N行 dnd

4, 向上删除到第N行 nd

三,查找

1, 向下查找:/查找内容

2, 向上查找:?查找内容

四,

1, 撤销:按下 U键

2, 在命令行模式下:w man.test.config //将当前文件另存为

3, 0 行头 $行尾

4, e! //强制回归到原始样子

更加详细请参见下图:

一般模式:

移动光标

h 或 向左方向键

光标向左移动一个字符

j 或 向下方向键

光标向下移动一个字符

k 或 向上方向键

光标向上移动一个字符

l 或 向右方向键

光标向右移动一个字符

[Ctrl] + [f]

屏幕『向前』移动一页(常用)PageDown

[Ctrl] + [b]

屏幕『向后』移动一页(常用)PageUp

[Ctrl] + [d]

屏幕『向前』移动半页

[Ctrl] + [u]

屏幕『向后』移动半页

+

光标移动到非空格符的下一列

-

光标移动到非空格符的上一列

n<space>

按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。

0

这是数字『 0 』:移动到这一行的最前面字符处(常用)

$

移动到这一行的最后面字符处(常用)

H

光标移动到这个屏幕的最上方那一行

M

光标移动到这个屏幕的中央那一行

L

光标移动到这个屏幕的最下方那一行

G

移动到这个档案的最后一行(常用)

nG

移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的 20 行(可配合 :set nu)

n<Enter>

光标向下移动 n 行(常用)

一般模式:

搜寻与取代

/word

向光标之后寻找一个字符串名称为 word 的字符串。(常用)

?word

向光标之前寻找一个字符串名称为 word 的字符串。

:n1,n2s/word1/word2/g

在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !(常用 因为$ 不容易打)

:1,$s/word1/word2/g

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)

:1,$s/word1/word2/gc

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给使用者确认(conform)是否需要取代!(常用)

一般模式:

删除、复制与贴上

x, X

x 为向后删除一个字符, X 为向前删除一个字符(可以用 del 跟 Backspace 替代)

nx

向后删除 n 个字符

dd

删除游标所在的那一整列(常用)

ndd

删除光标所在的向下 n 列,例如 20dd 则是删除 20 列(常用)

d1G

删除游标所在到第一行的所有数据

dG

删除游标所在到最后一行的所有数据

yy

复制游标所在的那一行(常用)

nyy

复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)

y1G

复制游标所在列到第一列的所有数据

yG

复制游标所在列到最后一列的所有数据

p, P

p 为复制的数据在光标下一行贴上,P 则为贴在游标上一行!(常用)

J

将光标所在列与下一列的数据结合成同一列

c

重复删除多个数据,例如向下删除 10 行,[ 10cj ]

u

复原前一个动作。(常用)

进入编辑模式

i, I

插入:在目前的光标所在处插入输入之文字,已存在的文字会向后退;(常用)

a, A

增加:由目前光标所在的下一个字开始输入,已存在的文字会向后退:(常用)

o, O

插入新的一行:从光标所在的下一行枝行首开始输入文字;(常用)

r, R

取代:r 会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)

Esc

退出编辑模式,回到一般模式中(常用)

指令列命令模式

:w

将编辑的数据写入硬盘档案中(常用)

:w!

若档案属性为『只读』时,强制写入该档案

:q

离开 vi (常用)

:q!

若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。

:wq

储存后离开,若为 :wq! 则为强制储存后离开(常用)

:e!

将档案还原到最原始的状态!

ZZ

若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开!

:w [filename]

将编辑的数据储存成另一个档案(类似另存新档)

:r [filename]

在编辑的数据中,读入另一个档案的数据。亦即将 『filename』这个档案内容加到游标所在行后面

:set nu

显示行号,设定之后,会在每一行的前缀显示该行的行号

:set nonu

与 set nu 相反,为取消行号!

n1,n2 w [filename]

将 n1 到 n2 的内容储存成 filename 这个档案。

:! command

暂时离开 vi 到指令列模式下执行 command 的显示结果!例如[ :! ls /home ]

【二十,Bash Shell】

1,按下两次 tab 显示所有可以执行的命令。输入的命令足够长,按下tab才会补全

2,同时 tab 还可以补全常用的的文件名称如 vi /etc/man. 按下tab会补全

3,命令别名:alias lm=’ls -al’ //输入alias 可以知道目前的别名情况

Alias rm=’rm -i’//删除时候提示是否删除

Unalias rm //取消别名

4,“\”的用途:想逃避按下 Enter键后执行当前命令,则在本行命令最后按下“\”

5, echo $PATH //输出环境变量

env //查看主要变量内容

set //查看所有变量内容

6,echo $? //上次执行有错误输出 1 没有错误输出 0

7, unset 变量名 //取消变量名

8,变量命名的规则:1) = 两边不能接空格需要这样赋值 name=tianshuai

2)变量累加显示:echo “$name”haohaizi或echo “$name:hao”

3) read name//(使用用户输入设置变量)等待用户屏幕输入然后 echo name 输出刚才输入的变量

4) a[1]=name a[2]=tianshuai//数组赋值变量 echo ${a[1]} ${a[2]}//输出时候一定记得加上 {}

5) echo $RANDOM //每次输出不同的数

9,变量的有效范围:变量只在当前shell程序中存在,要想在下一个shell程序中使用变量需要在第一次设置变量时加上 export 例如:export 变量

10,history //记录执行过的命令 clear //清屏

二,系统设定值 /etc / profile

1,HISTSIZE //历史记录个数默认是1000 改成 50 相对安全

三,个人设定值

1,~/.bash_profile:里面定义了个人化的路径(PATH)与环境变量的文件名称!

2,~/.bashrc:这个档案对于个人喜好的 bash 设定来说,是最重要的啦!因为我都是在这里设定我的个人化变量!例如命令别名的设定!路径的重新定义等等,都是在这里完成的!只需设定一次,不论开多少终端都可以使用!!!!

3,~/.bash_history:这个档案的用途在于将你曾经使用过的命令记录下来,而当你再次的以上下键搜寻或者直接以 history 搜寻的时候,就可以找到曾经使用过的指令啰!

4,~/.bash_logout:这个档案则是在『你注销 shell 的时候, BASH 会为你所做的事情!』可以写上清空*** 等等让bash做的事情

符号

内容

*

代表一个或多个字符(或数字)

?

代表一个字母(ls tians??? 后面接三个字母)

#

批注,这个最常被使用在 script 当中,视为说明!

\

跳脱符号,将『特殊字符或万用字符』还原成一般字符

|

分隔两个管线命令的界定;

;

连续性命令的界定(注意!与管线命令并不相同)

~

使用者的家目录

$

亦即是变量之前需要加的变量取代值

&

将指令变成背景下工作

!

逻辑运算意义上的『非』 not 的意思!

/

路径分隔的符号

>, >>

输出导向,分别是『取代』与『累加』

'

单引号,不具有变量置换的功能

"

具有变量置换的功能!

` `Esc下面

两个『 ` 』中间为可以先执行的指令!

( )

在中间为子 shell 的起始与结束

[ ]

在中间为字符的组合

例题:允许『只要档名里面含有至少一个大写字符』时,就可以将档案 copy 出来的话

cp *[A-Z]* /tmp

{ }

在中间为命令区块的组合!

组合按键

执行结果

Ctrl + C

终止目前的命令

Ctrl + D

输入结束(EOF),例如邮件结束的时候;

Ctrl + M

就是 Enter 啦!

Ctrl + S

暂停屏幕的输出

Ctrl + Q

恢复屏幕的输出

Ctrl + U

在提示字符下,将整列命令删除

Ctrl + Z

『暂停』目前的命令

五,连续命令的执行

command1;command2

command1&&command2 //command1执行错误则command2 不执行

command1||command2 //只有command1执行失败command2才执行

echo ?来看看执行是否有错输出1 有错;输出0 没有错

六,绝对路径与相对路径

. //当前路径 .bashrc //执行可执行文件 bashrc

.. //上一层路径如果放在上一层路径下则 ../bashrc

七,命令重导向:将目前的资料转移到其他地方去

< //标准输入从右边读入参数档案

1> //标准输出

2> //错误输出

1,ls -l / >test // 将ls命令执行的结果保存到 test 文件中 //test 存在则覆盖不存在则创建

2, Ls -l >>test // 将执行结果累加到test中

3,ls –al 1> list.txt 2> list.err //正确的输入 list.txt 错误的输入 list.err

4, ls -al 1> list.txt 2> /dev/null // 错误的丢弃

八,pipe管道命令的使用

1,cat /etc/passwd | wc –w (-w 统计多少子 -l 统计多少行)

, 2,split -l 5 /etc/passwd test <==会产生 testaa, testab, testac... 等等档案

将passwd中的文件按照 5行一个分割分别形成 testaa testab 等文件

-b //限制一个分割块的大小

【二十一,正则表达式】Regular expression

搜寻,取出特定词进行分析。

1, 查看文档

Vi aa.txt //查看文档

cat -A aa.txt //查看文档,显示DOS系统下的特殊符号

^M :表示断行字符;
~I :表示<tab>造成的按键符号;
$ :表示每一行的行尾之意!

2, 查找字串

Grep -n ‘now’ aa.txt //aa.txt中查找含有字串‘now’的行并标上行号!!

Grep -n '\*'aa.txt //特殊符号需要添加转义字符

grep -ni ‘know’ aa.txt //加上参数i不论大小写都搜索出来

特殊字符

表示意义与范例

^word

意义:待搜寻的字符在行首
说明:
搜寻 word 这个字符串,『并且 word 必需为这一行的行首』。
范例:
找出档案中以 i 为开头的那一行,并且忽略大小写:
[root@test root]# grep -in '^i' regexp.txt
2:I want to "Happy" and <Happy> and /Happy/ here.
12:i will shutdown my mechine

word$

意义:待搜寻的字符在行尾
说明:
搜寻 word 这个字符串,并且 word 必需为这一行的行尾
范例:
由于鸟哥提供的档案其实是 DOS 档案下的产物,所以字尾都会存在着 ^M 的字符,因此,我们先以 tr 这个指令将这个字符给他去掉,然后再找出字尾为 ye 的那一行,并显示出来!关于更多的 tr 指令的用法,我们会在后面进行说明。
[root@test root]# cat regexp.txt|tr -d '\r' grep -n 'ye$'
13:bye bye

.

意义:代表『一个』任意字符,一定要有『一个字符』存在
说明:
这个『.』在正规表示法当中很常用,代表的是『一个』任意字符,不是 0 个也不是多个,恰恰好就是『一个』。
范例:
我要将档案中有 e 与 t 并且中间含有一个字符的该行抓出来,注意喔! e 与 t 的中间一定会有一个字符存在才是成功的喔!例如下列范例:
[root@test root]# grep -n 'e.t' regexp.txt
7:Now, I willeat my food
10:tesaaaaatest
11:quit bbbbqqa testglgs

\

跳脱符号将特殊字符变成普通字符

?

任何一个『单一』字符 ??不明白怎么用??

*

随意几个任意字符

[list]

列表中的字符(可以不加逗号) grep -ni [a,i] aa,txt

[range]

列表中范围内的字符grep -ni [a-i] aa,txt

[^list]

反向选择,与 [list] 相反

[^range]

反向选择,与 [range]相反

\{n\}

与前一个相同字浮连续 n 个

\{n,m\}

与前一个相同字浮连续 n-m 个

例题:在/etc里面只要是 a-c 开头的都要显示出来

Grep -ni `[a-z] /etc/*

【二十二,Shell scrpts编程】

‘’单引号内没有特殊字体只有写什么显示什么符号

1, 建立第一个scripts脚本

#!/bin/bash

#作用

#日期

#作者

name=”tianshuai”

myname1=”My name is $name”

myname2=’My name is $name’

echo $myname1

echo $myname2

2,卷标与运算符号

Declare -a //数组 array

Declare -f //函数function

Declare -i //整数 integer

Declare -r //定义为“只读”

Declare -x //定义为透过环境输出变量

3, 执行说明:

Vi tianshuai.sh

执行的时候输入 sh tianshuai.sh

declare number=25*51_665+65

echo $number //输出结果

4, 输入与输出交互

Read name

键盘输入 Hello

回车 echo $name Hello

echo "$0" //输出文档名

echo "parameters $1 $2 $3" //输出传入的参数例如:sh tianshuai.sh 1 2 3 则输出 1 2 3

5, 逻辑表达式应用

在 [ ] 当中,只能有一个判别式;

在 [ ] 与 [ ] 当中,可以使用 && 或 || 来组织判别式;

每一个独立的组件之间『都需要有空格键来隔开』!

尤其是最后一点,最容易犯的错啦!

例题:

Echo “Press y to continue”

Read yn

if [ “$yn” = “y” ]; then //这里一定不要落下

echo “running”

else

echo “Stop”

fi

6,注释用法

# //用来注释一行

<== //用来在后面注释

7,补充 netstat // 检查端口的网络连接情况

Netstat -s //显示协议的统计数据比如 IP UDP

Netstat -r //路由信息

Netstat -a //显示所有有效连接

Netstat -n // 显示已经建立的有效连接

8,管道“|”//这是管道符号

用“|”隔开的两个命令:管道左边的命令作为右边的输入

例题:

www=`netstat -an|grep LISTEN|grep :80` //LISTEN LISTENING CONNECT

if [ "$www" != "" ]; then

echo "WWW is running"

else

echo "WWW is NOT running"

fi

9, case ……esac 应用

例一:

// read n;

//case n in

case $1 in //这里的参数要求用户” sh test.sh one”添加上

one)

echo "one"

;; //这里一定是两个;;

two)

echo "two"

;;

* )

echo "please use one two three"

exit 1

esac

10,循环:for....do....done, while...do...done, until...do...done,

declare -i s

for (( i=1; i<10; i=i+1 )) //注意这里两个括号是紧挨着的

do

s=s+i;

done

echo "The count is ==> $s"

while ……do……done

declare -i i

declare -i s

while [ "$i" != "10" ]

do

s=s+i

i=i+1

done

echo "The count is ==> $s"

fo I in list……do……done

list="tian shuai is a boy"

for i in$list

do

echo $i

done

输出:(空格处换行)

tian

Shuai

循环中的交互例子

echo "input y or Y to stop"

until [ "$yn" = "y" ] || [ "$yn" = "Y" ] //每个符号之间一定要留有空格

do

read yn

done

echo "stop"

一个删除文件、删除文件夹,创建文件夹的例子

if [ ! -e tt ] ; then不存在文件tt

touch tt //创建一个文件 tt 不是文件夹

echo "Just make a file tt"

exit 1

elif [ -e tt ] && [ -f tt ] ; then //存在文件 tt 且是文件 (file -f )

rm tt

mkdir tt

echo "remove file tt and make directory tt"

elif [ -e tt ] && [ -d tt ] ; then // 存在文件且是文件夹 tt (directory -d)

rm –rf tt

echo "remove directory tt"

exit 1

else

echo "Dose here have anything?"

fi

原创粉丝点击