为什么linux的if中括号前后要有空格?很多刚学写shell的人经常有个疑问,为什么if后面要加上空格?
比如下面第1行会报错,第2行正常
原因参考第3行命令,whereis [
可见左中括号是个单独的命令文件!
前后不加空格跟其它字符连接起来,那就不是 [ 这个命令了
Linux简要命令 所有命令的参数都是使用空格分隔的,例如 ls -l。在这里ls即为命令名,-l 为此命令的参数,在 ls 与 -l 之间有一个空格,但是在 -l 内部不能有空格 。
由于Linux继承于Unix,而Unix操作系统在当初设计的时候,键盘并不可靠,而且敲键盘比较费劲(比如容易卡住),因此大部分命令都非常简短,一般是完整的英文单词去掉元音字母(aeiou)后的缩写,这是一个历史问题 。
整个操作系统的磁盘都被划分为很多个目录(directory)或称文件夹(folder) , 还有文件(file) 。每个目录下还可以有子目录(sub direcotory)与文件,这样就形成了一个树状结构,树根为 / ,被称为根目录(root directory) 。
在 任何时候 ,你都有一个 当前目录 (Working Directory),你所有的操作都是相对于当前目录做出的,以当前目录为基准的目录名或者文件名叫做相对目录 。例如若你的当前目录是/home/alex , 在/home/alex目录下有一个叫Public的子目录,还有一个叫log.txt的文件 , 则Public与log.txt就是相对目录名与相对文件名 。
每个目录与文件都有一个全路径(full path)名,这个全路径以/开头,遍历整个目录 , 直到最终的目录名或者文件名为止 。例如在Linux中,/下有etc、home、usr、lib等子目录,而home目录下有alex目录,alex目录下有Public目录 。则在这里Public的全路径名就是 /home/alex/Public ,注意在这里必须大小写一致 。
当然也有可能在其它的名叫Public的目录或者文件,但是它们的全路径肯定是不一样的 。就像在中国有一个叫Alex的人,在美国也有一个叫Alex的人 , 他们可以分别称为中国的Alex与美国的Alex , 这就是他们的全路径 ;) 。全路径又叫绝对路径(absolute path) 。
在Linux里,每个用户都有一个家目录(home directory),一般情况下用户的家目录就是/home目录下相应的用户名 , 例如alex用户的家目录就是/home/alex 。
大部分文件都有扩展名(extension name),扩展名即为文件名最后一个点号(.)后面的文字,扩展名一般都表示了文件的类型 。例如在log.txt这个文件名中,txt是扩展名 , 表示这个文件是一个文本文件(TeXT file),而文本文件一般都是可以直接查看内容的 。而在house.1.jpg这个文件名中,其扩展名为jpg , 表示这个文件是一个JPG格式的图形文件,而图形文件一般都是需要使用图形软件打开才能看到其内容的 。
pwd 是Pring Working Directory的缩写,此命令的作用是打印(print)当前的(working)目录(directory)的全路径名 。
当你打开终端或者切换目录之后 , 你最好运行一下 pwd 命令,确认当前的目录是不是你想要切换的目录 。
pwd 命令一般不需要参数 。
ls 是LiSt的缩写,此命令的作用是列举目录下的文件与子目录 。
当你不带参数运行 ls 命令时 , 此命令将列举出当前目录下的文件与子目录的名称 。
当你加上-l参数运行 ls 命令时,此命令将列举出当前目录下的文件与子目录的名称,以及它们的修改时间、大小等信息 。
你也可以使用 ls 命令列举其它目录下的文件与子目录的名称,例如,运行 ls / 即可列举出根目录下的文件与子目录名,运行 ls -l / 即可列举出根目录下的文件与子目录名,以及它们的修改时间、大小等信息 。
cd 是Change Directory的缩写,此命令的作用是切换当前的工作目录 。
例如,运行 cd /home/alex 将把当前目录切换为 /home/alex。当然,cd后面的参数也可以是相对目录 。例如若当前目录为 /home/alex ,而 /home/alex 目录下有一个目录叫Public , 则运行 cd Public 则会将当前目录变为 /home/alex/Public。
如果cd命令后面不接任何参数,则将把当前目录设置为用户的家目录 。
cp 是CoPy的缩写,此命令的作用是复制文件或者文件夹 。
例如,运行 cp 1.txt 2.txt 将把当前目录下的 1.txt 文件复制成 2.txt 文件 。运行 cp 1.txt /tmp/2.txt 将把当前目录下的 1.txt 复制成 /tmp/2.txt 文件,运行 cp 1.txt /home/alex/ 将把 1.txt 文件复制到 /home/alex/ 目录下 。
rm 是ReMove的缩写 , 此命令的作用是删除文件或者文件夹 。
例如,运行 rm 2.txt 将删除当前目录下的 2.txt 文件,运行 rm /tmp/2.txt 将删除 /tmp/2.txt 文件 。
你也可以使用 rm 来删除目录,此时需要带上-R参数(recursive,即递归的意思),例如 rm -R /tmp/abc 将删除整个 /tmp/abc 目录 。
删除时一般都会询问你让你确认是否要删除,如果你不需要被提问确认,可以加上-f参数,例如 rm -f /tmp/1.txt。
mv 是MoVe的缩写,此命令的作用是移动文件或者文件夹 , 或说是为文件或者文件夹改名 。注意,一旦移动成功,则原来的文件或者文件夹就不存在了 。
例如,运行 mv 1.txt 2.txt 将把当前目录下的 1.txt 改名为 2.txt ,运行 mv 1.txt /tmp/2.txt 将把当前目录下的 1.txt 移动成为 /tmp/2.txt 文件 。
mkdir 是MaKe DIRectory的缩写,此命令的作用是创建目录 。
例如 mkdir abc 将在当前目录下创建一个名为 abc 的目录,mkdir /tmp/xyz123 将在 /tmp 目录下创建一个名为 xyz123 的目录 。
mkdir 可以带-p参数,这样即可同时创建多层目录,例如 mkdir -p a/b/c/123 将在当前目录下创建a目录,在a目录下创建b目录,在b目录下创建c目录,在c目录下创建123目录 。
在Linux下还有几个特殊的目录,它们分别是:
有一个特殊的符号表示文件名匹配,即 *。例如 cp *.txt /tmp/ 将把当前目录下的以 .txt 结尾的文件名都复制到 /tmp/ 目录下,ls a*.txt 将列举出当前目录下所有以 a 开头,以 .txt 结尾的文件名与目录, rm /tmp/1*log 将删除 /tmp 目录下所有文件名以 1 开头,以 log 结尾的文件 。
所有以 . 开头的文件与目录都表示是隐藏文件 / 目录,例如 .vimrc , 例如 ..,在 ls 时一般是看不到这些文件与目录的,如果想要看到,需要使用 ls 的 -a 参数,例如 ls -al。
【linux命令后都有空格 linux 带空格的文件名】 Linux下有大量命令/软件,在此我们仅列举几个可能会用到的 , 可以在使用过程中慢慢熟悉 。
关于 linux 命令中的 空格 问题 。什么时候加空格 。什么时候不加空格 。这个真linux命令后都有空格的不好说linux命令后都有空格,你是刚接触Linuxlinux命令后都有空格 , 刚开始输入的命令一般都是通过空格隔开的 。但是也有特殊的,例如date命令 , 如果你想以全数字的形式输出,就要这样linux命令后都有空格:
[root@localhost ~]# date%Y%m%d
20101127
这个命令里面空格少一个多一个都是错的,这种形式在Linux的备份中常用 。这样的情况你现在遇到的还较少 。如果你想学的更深入一点 , 例如Shell编程,那么一定要注意空格的事 , 少一个多一个都会报错 。不过,不用害怕 , 你接触的越多,明白的也越多,理解的也越深,现在你不用追究这些是什么原因,慢慢的你会明白的 。
linux里面的命令:./和. /【第二个有空格】 , 分别怎么用 。./点号紧跟/表示当前目录(相对路径的写法) 。直接 / 表示根目录 。
. / 有空格的点号等同于source命令,表示在当前shell环境执行后面的命令或脚本(不加点号默认是新开一个shell执行的) 。例如 . /home/test.sh 等同于 source /home/test.sh 。
用source执行的脚本所做的任何改变会影响当前shell(如其中有用cd改变目录 , 脚本执行完后目录就变掉了);如果没用source,就不会影响当前shell 。
上述两种情况结合:
. ./test.sh
表示以source方式在当前shell执行当前目录下的test.sh脚本 。
对新手来说 , 为明显区别 , 建议书写的时候将第二种情况直接写作source而不要用点号 。
关于linux命令后都有空格和linux 带空格的文件名的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 棋牌游戏java算法的简单介绍
- go语言无类型常量,go语言变量类型
- 头条如何推广淘宝,头条怎么推广产品
- proxy代理软件免流,免流 代理
- python函数倒序 python怎么倒序排列
- 直播吃饭为什么戴手套,直播间主播为什么戴手套
- 大学是什么ppt,大学是什么时候有的
- 电脑键盘整体没反应怎么办,电脑键盘全部没反应怎么办
- go语言序列 go语言nil