① linux 中“.”和“./”命令分别是什么意思
.表示执行的意思,就是执行这个文件。
./呢就表示执行当前目录下的某个文件,就比如当前目录有一个脚本a.sh,那么./a.sh就表示执行它。
不加参数时,默认切换到用户主目录,即环境变量HOME指定的目录,如root用户的HOME变量为/root,那么cd命令不带参数时便切换到/root目录下。
绝对路径是从跟目录开始的,如/root或/home/sgl,相对路径是相对于当前路径来说的。
假如当前目录在/home/guo下面,那么前面的/home/sgl的相对路径就是../sgl,即当前目录的上级目录下的sgl目录。
(1)linux命令两个空格扩展阅读:
参数r是指连同源文件中的子目录一同拷贝。熟悉dos的读者用起这个命令来会觉得更方便,毕竟比在dos下面要少敲两下键盘。
../ 和 ./ 代表的 是上级目录以及当前目录。
处在当前目录复制当前目录下文件到别的目录。
cp_文件名称_别的文件目录路径。"_"是空格
举个例子:在orz文件夹下有两个子文件夹a和b,a中有文件x.c,b中无文件。
② 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,刚开始输入的命令一般都是通过空格隔开的。但是版也有特殊的,例如date命令权,如果你想以全数字的形式输出,就要这样:
[root@localhost ~]# date +%Y%m%d
20101127
这个命令里面空格少一个多一个都是错的,这种形式在Linux的备份中常用。这样的情况你现在遇到的还较少。如果你想学的更深入一点,例如Shell编程,那么一定要注意空格的事,少一个多一个都会报错。不过,不用害怕,你接触的越多,明白的也越多,理解的也越深,现在你不用追究这些是什么原因,慢慢的你会明白的。
④ 如何在linux系统下对文件夹名有空格的文件
在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹,
而在linux则需要进行一些特殊的处理才能实现以上功能.
(1)创建文件夹
mkdir my\ first
这条命令创建了文件夹"my first",文件夹名中my和first之间有一个空格,在命令行中需要
添加一个"\"符号和一个空格的组合
mkdir my\ \ tow
这条命令创建了文件夹"my tow",文件夹名中my和tow之间有两个空格,在命令行中需要
添加两个"\"与空格的组合
(2)移动文件夹
mv my\ first /tmp
这条命令将文件夹"my first"移动到文件夹tmp下
mv my\ \ tow /tmp
这条命令将文件夹"my tow"移动到文件夹tmp下
(3)删除文件夹
rm -r my\ first
这条命令将文件夹"my\ first"删除
rm -r my\ \ tow
这条命令将文件夹"my\ \ tow"删除
(4)进入文件夹
cd my\ first
这条命令可以进入文件夹"my first"
cd my\ \ tow
这条命令可以进入文件夹"my tow"
(5)创建压缩文件
tar czf my\ first.tar.gz my\ first
创建压缩文件"my first.tar.gz"
tar czf my\ \ tow.tar.gz my\ \ tow
创建压缩文件"my tow.tar.gz"
tar cjf my\ first.tar.bz2 my\ first
创建压缩文件"my first.tar.bz2"
tar cjf my\ \ tow.tar.bz2 my\ \ tow
创建压缩文件"my\ \ tow"
(6)解压压缩文件
tar xzf my\ first.tar.gz
解压压缩文件"my first.tar.gz"
tar xzf my\ \ tow.tar.gz
解压压缩文件"my tow.tar.gz"
tar xjf my\ first.tar.bz2
解压压缩文件"my first.tar.bz2"
tar xjf my\ \ tow.tar.bz2
解压压缩文件"my tow.tar.bz2"
总结:本文实现了对文件夹名中有空格的文件进行创建\移动\删除\进入\压缩\解压
等操作,相对于文件夹名中有空格的文件夹来说,在输入命令时需要在文件夹名之间
插入"\"与空格的组合,文件夹名中有几个空格就需要加几个组合.
⑤ linux sed如何将每行的第2个空格删除,其余保留
时区是固定的,可以一起做替换,比如sed 's/ -0800/-0800/g' 这样就能去掉这个空格了
⑥ Linux diff 命令 比较两个文件不看空格, 并行打印 的命令
的确会有这个问题,但尝试了好一阵后发现,实际上也不是问题。
要解决此问题,加版个选项--suppress-common-lines即可。权
diff-wy--suppress-common-linesa.txtb.txt
或者:
sdiff-W--suppress-common-linesa.txtb.txt
为什么说不是问题呢?看看下图这个例子(a.txt中包含TAB和空格,b.txt里包含空格)。
得出的结论就是:
加了-y选项后,无论行内容是否相同都会打印。但注意看一下,行内容不相同的情况,两端打印时中间会有一个竖线分隔。
加了-w选项后,比较结果其实是完全相同的,不存在有竖线分隔的两端打印,从diff命令返回值(通过$?取得)也可以看出。
所以,想到用--suppress-common-lines选项抑制相同行的输出。
⑦ linux的命令带的选项,有些是一个杠-,有些是两个杠--,这些有没有什么规律的
一、find 命令格式
1、find命令的一般形式为;
find pathname -options [-print -exec -ok ...]
2、find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
3、find命令选项
-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内, n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。
-type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
-amin n
查找系统中最后N分钟访问的文件
-atime n
查找系统中最后n*24小时访问的文件
-cmin n
查找系统中最后N分钟被改变文件状态的文件
-ctime n
查找系统中最后n*24小时被改变文件状态的文件
-mmin n
查找系统中最后N分钟被改变文件数据的文件
-mtime n
查找系统中最后n*24小时被改变文件数据的文件
4、使用exec或ok来执行shell命令
使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的
在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。
例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime 5 -exec rm { } \;
记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。
在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。
$ find . -name "*.conf" -mtime 5 -ok rm { } \;
⑧ Linux:cut、sort都是针对列操作,有没有对行操作的命令
sort命令用于对文档内容进行排序处理,命令使用格式如下:
sort 选项 文件1 文件2 ......
sort命令的常用选项包括:
-t 指定分割文本的分隔符
-k 指定按照分割后文本内容的第几列排序
-r 结果降序排序
-n 把文本转换为数值再排序
使用sort命令的示例如下:
①sort -rn -k 2 f1:按照文档第二列的数值大小进行降序排序。-n表示按照数值大小比较排序,默认为升序,加上-r表示为降序,-k指定按照第几列排序。
②sort -rn -u -k 2 f1:-u表示去除重复行。
③sort -t ":" -rn -k 2 f1:-t指定列之间的分隔符为“:”,不写则默认空格作为分隔符。
cut命令用于显示按照分隔符截取分指定列的文本内容,命令使用格式如下:
cut 选项 文件1 文件2 ......
cut命令的常用选项包括:
-d 指定文本分隔符
-f 指定显示分割后文本的第几列
cut -d " " -f 3 f1:截取文档中的第三列。-d指定分隔符为一个空格,-f指定显示第几列。但是,cut命令对分隔符连续较多的情况,审核较为死板,很难按照我们想要的效果实现截取,如有以下文件:
aaa 111 ccc
bbb 222 ccc
每行文字中各列间的空格数不同,“aaa”与“111”之间有一个空格,而“bbb”与“222”之间有两个空格,在使用cut命令时,如果设定分隔符为一个空格,希望截取用空格隔开的文字时,对于行“bbb 222”由于文字中存在二个空格,其中的第二个空格则被视为第二列,所以cut命令不会把“222”视为第二列而是第三列。因此,cut在截取数量不确定的空格隔开的文字时十分不便。所以一般在连续分隔符个数不统一时,更习惯使用awk命令。