linux在shell获取当前目录的绝对路径工作目录下,利用ls命令查找以f开头、.cpp结尾并且中间是任意多个?


原标题:关于 find 命令的15个超级有用的例子
find 命令用于在 Linux 命令行中搜索文件和目录。
find 是功能最强大、使用最频繁的命令之一,同时也是选项最多的命令之一,它有50多个选项,很容易让人弄混了,特别是当它与 exec 或 xargs 命令一起使用的时候。
作为系统管理员或者软件开发者,在命令行中工作时都不可避免的会使用到 find 命令。所以,与其畏难而逃避它,不如知难而进,拥抱它的力量。
本文我们会分享关于 find 命令的一些常见示例。不过在此之前,我们先来看一下它的语法,以及如何使用。
Linux 中的 find 命令
find 命令的一般语法为:
find [directory to search] [options] [expression]
方括号 [] 中所有的内容都是可选的,这意味着你可以在没有任何选项和参数的情况下运行 find 命令。不过这只会打印出当前路径下所有的文件和目录,这样没什么用处,对吧?
我们来详细了解一下它的参数。
directory to search:要搜索的目录,基本上就是我们要开始搜索的位置。默认情况下,搜索是递归的(也会搜索子目录),从当前位置开始;
options:选项,指定搜索的类型,可以按文件名称、文件类型、修改时间等(进行搜索),这里有50多个选项;
expression:指定的搜索词。如果是要按文件名查找,那么搜索词就是文件名;如果是要查找名称与表达式匹配的文件,那这里就用表达式。
看下面的例子:
find . -type f -name myfile
该命令将在当前目录及其子目录中进行搜索,查找名为 myfile 的文件(不是目录)。选项 -type f 表示只查找文件,单点 . 表示当前目录。
按名称查找文件和目录
可以按文件名搜索文件和目录:
find . -name SEARCH_NAME
由于没有指定文件类型,所以它会搜索具有给定名称的文件和目录。
下面的例子找到名为 mystuff 的文件和目录:
[gliu@fedora work]$ find -name mystuff
./new/mystuff
./mystuff
只查找文件或目录
如果只想查找文件,那么需要指定文件类型 -f:
find . -type f -name SEARCH_NAME
类型和名称的顺序无关紧要。上一个例子中,只查找文件,可使用如下命令:
[gliu@fedora work]$ find -type f -name mystuff
./mystuff
如果只搜索目录,那么指定类型 -d:
find . -type d -name SEARCH_NAME
还是上面那个例子,如果只查找目录,使用如下命令:
[gliu@fedora work]$ find -type d -name mystuff
./new/mystuff
执行不区分大小写的搜索
默认情况下,find 命令区分大小写。如果我们想要执行不区分大小写的搜索,可以使用 -iname 来代替 -name:
find . -type f -iname SEARCH_NAME
也可以将其与 -d 选项一起使用。
[gliu@fedora work]$ find -iname mystuff
./new/mystuff
./MyStuff
./mystuff
按扩展名搜索(重要)
find 命令最常见的用法之一就是查找指定类型的文件,或者说是按照文件扩展名来进行查找。
比如,我们要在当前目录下搜索所有的 C++ 文件,而C++文件的扩展名是 .cpp,所以我们可以这样搜索:
find . -type f -name "*.cpp"
这样,我们告诉 find 命令查找类型为文件(file),并且以 .cpp 结尾的文件。
[gliu@fedora work]$ find . -type f -name "*.cpp"
./file.cpp
./.cargo/registry/src/github.com-1ecc6299db9ec823/libz-sys-1.1.3/src/zlib/contrib/iostream2/zstream_test.cpp
./.cargo/registry/src/github.com-1ecc6299db9ec823/libz-sys-1.1.3/src/zlib/contrib/iostream/test.cpp
./.cargo/registry/src/github.com-1ecc6299db9ec823/libz-sys-1.1.3/src/zlib/contrib/iostream/zfstream.cpp
注意:在使用 find 命令时,需要将表达式放在双引号中。
为什么要将表达式放在双引号中呢?因为如果要不这样做的话,shell会扩展通配符,将其替换为当前目录中所有以 .cpp 结尾的文件。
比如,假如当前目录下有两个文件:file1.cpp, file2.cpp,那么下面的命令:
find . -type f -name *.cpp
会被shell扩展为:
find . -type f -name file1.cpp file2.cpp
这种情况下,shell 就会给出提示:
find: paths must precede expression: 'file1.cpp'
find: possible unquoted pattern after predicate '-name'?
另外,如果当前目录下只有一个扩展名为.cpp的文件,那就可以。
搜索多个扩展名(或条件)的多个文件
上述命令搜索给定扩展名的文件。那如果要同时搜索不同扩展名的文件,该怎么办呢?
可以使用逻辑或(OR) -o 来运行 find 命令:
find . -type f -name "*.cpp" -o -name "*.txt"
这样,就会搜索扩展名为 .cpp 或 .txt 的文件:
[gliu@fedora work]$ find . -type f -name "*.txt" -o -name "*.cpp"
./new.txt
./file.cpp
./new/new.txt
./new/dir2/another.txt
./new/dir1/new.txt
./another.txt
在指定目录中查找文件
我们上面的例子都是在当前目录中搜索,因为我们在命令中指定了 . 作为当前路径。
点 . 可以替换为绝对路径或者相对路径。这样我们就可以在不离开当前路径的情况下,在指定的目录中查找文件。
[gliu@fedora work]$ find ./new -name mystuff
./new/mystuff
在多个目录中搜索文件
如果你认为所要查找的文件可能位于多个位置,那么不必多次运行 find 命令,只需在 find 命令中指定要搜索的所有目录路径即可:
find ./location1 /second/location -type f -name "pattern"
查找空文件和目录
-empty 选项可以让你使用 find 命令查找空文件和目录。比如要查找当前路径下所有的空文件和目录,可使用如下命令:
find . -empty
也可以指定搜索的文件类型,只查找文件或者目录:
find . -empty -type f
还可以结合文件名使用:
find . -empty -type f -name "*.cpp"
查找大文件或小文件(根据文件大小搜索)
根据文件的大小执行搜索,可以查找大文件或者小文件。但这只适用于文件,不适用于目录。
要根据文件的大小搜索,可以使用 -size 选项,后面跟上一个值N(即文件的大小),+N 查找大于 N 的文件,-N 查找小于 N 的文件。
比如,查找大小正好为 50KB 的文件:
find . -size 50k
在当前路径下查找大于 1G 的文件:
find . -size +1G
查找小于 20 bytes 的文件(注意单位是c而不是b):
find . -size -20c
要查找大于100 MB 但小于 2 GB 的文件:
find . -size +100M -size -2G
此外,还可以结合名称搜索。比如,要在根目录中查找以 .log 结尾,大于500MB的文件,可使用如下命令:
find / -size +500M -name "*.log"
关于文件大小值 N 的单位:
c : bytes(字节)
k: kilobytes(千字节)
M: Megabytes(兆字节)
G: Gigabytes(GB)
查找最近修改的文件(根据修改或创建时间搜索)
我们先来简单介绍下mtime, atime 和 ctime 的概念:
mtime:文件上次修改的时间;
ctime:文件创建的时间;
atime:文件上次访问的时间。
我们经常会有查找最近修改过的文件的需求,这时候,可以按修改时间来搜索文件。
比如,要查找 3天(3 * 24H)以内修改过的所有文件:
find . -type f -mtime -3
再比如,查找 5天以前创建的文件:
find . -type f -ctime +5
上述命令是以天为单位。那么,如果要搜索几分钟前修改过的文件呢?可以使用 mmin, amin 和 cmin。
比如,要查找 5分钟以内修改过的文件,可使用如下命令:
find . -type f -mmin -5
此外,还可以结合名称,指定时间的上限和下限进行搜索。比如,下面的命令将搜索过去20分钟到30分钟内,修改过的所有 .java 文件:
find . -type f -mmin +20 -mmin -30 -name "*.java"
查找具有特定文件权限的文件
find命令允许您搜索具有特定权限的文件。
find -perm mode
比如,在当前路径下查找所有权限模式为 777 的文件:
find . -perm 777
查找具有读写权限的文件(完全匹配,如果文件权限为 读写和执行,则不匹配):
find . -perm a=r+w
根据文件的所属用户查找
find 还可以根据文件的所有权进行搜索。
比如,在当前路径下搜索用户 John 所拥有的文件:
find . -type f -user John
当然,也可以与其他选项(比如文件大小,时间,名称等)结合使用:
find . -type f -user John -name "*.cpp"
不递归查找,仅在当前目录中搜索
默认情况下,find 命令在当前位置的所有子目录中搜索。如果不希望这样,可以将搜索深度指定为 1。这将限制搜索仅限于当前目录,不包括任何子目录。
find . -maxdepth 1 -type f -name "*.txt"
从搜索中排除目录
如果要将某个目录从搜索中排除,可以结合 -path, -prune 和 -o 一起使用:
find . -path "./directory_exclude/*" -prune -o -name SEARCH_NAME
注意路径中的星号 *, -prune 选项在路径之后,-o 选项在 prune 之后。
基本上,prune命令要求不使用路径指定的值,它总是与 -o 一起使用,以确保 -o 的右侧只针对未被排除的目录。
处理 find 命令的输出结果(使用 exec 和 xargs)
到目前为止,我们介绍了关于find命令的一些标准查找文件的方法。此外,还可以通过对 find 命令的结果执行某些操作,来改进它。
例如,查找与特定名称模式匹配的文件并一次性重命名,或者查找空文件并删除。
我们知道,管道重定向可以用于将一个命令的输出与另一个命令输入相结合。但这对find命令的输出不起作用,至少不直接起作用。
如果要对find命令的结果执行操作,有两个选项,即 exec 和 xargs。
使用 find 和 exec
假如我们要对 find 的结果使用 ls -l 列出来,看下面的例子:
find . -type f -name "*.txt" -exec ls -l {} +
以下是输出:
[gliu@fedora work]$ find . -type f -name "*.txt" -exec ls -l {} +
-rw-rw-r-- 1 gliu gliu 39 Oct 13 19:30 ./another.txt
-rw-rw-r-- 1 gliu gliu 35 Oct 13 15:36 ./new/dir1/new.txt
-rw-rw-r-- 1 gliu gliu 35 Oct 13 15:36 ./new/dir2/another.txt
-rw-rw-r-- 1 gliu gliu 35 Oct 13 18:51 ./new/mystuff/new.txt
-rwxrwxrwx 1 gliu gliu 35 Oct 13 15:37 ./new/new.txt
-rw-rw-r-- 1 gliu gliu 35 Oct 13 18:16 ./new.txt
不要忘记 exec 命令最后的 {} +,并且要注意 {} 和 + 之间的空格。
花括号 {} 引用 find 命令的结果,你可以将其认为是 {file1, file2, file3}。加号 + 用于终止 exec 命令。
exec 还有另一个约定:
find . -type f -name *.txt" -exec ls -l {} \;
上述命令中,分号 ; 用于代替加号 +,分号前面的反斜杠 \ 用于转义特殊字符。
{} + 的优点是它运行的命令更少,它就相当于是 ls -l file1 file2 file3;而 {} \ 则相当于运行 ls -l file1, ls -l file2, ls -l file3。
但是,{} \;具有在同一 exec 语句中多次使用 {} 的优点。例如,下面的命令将使用 .old 扩展名重命名所有找到的文件:
find . -type f -name *.txt" -exec mv {} {}.old \;
使用 xargs
许多 Linux 用户已经习惯了管道重定向。这个带有尾随 { }+ 的 exec 命令对他们来说似乎不太习惯。
这就是 xargs 命令存在的价值,你只需要通过管道将 find 命令的输出解析到 xargs 命令:
find . -type f -name *.txt"
xargs ls -l
find 结合 grep 使用
上面我们介绍了 find 结合 exec 和 xargs 命令的使用,此外,还可以将 find 与 grep 命令一块使用。
对于任何系统管理员或软件开发人员来说,find 和 grep 是最常见且最有用的组合之一。
你可以使用 find 命令来查找文件,然后使用 grep 命令来搜索这些文件的内容。
比如,我们要搜索所有包含 “Alice”一词的 txt 文件,那么可以这样搜索:
find . -type f -name "*.txt" -exec grep -i alice {} +
同样的,也可以使用 xargs 命令:
find . -type f -name "*.txt"
xargs grep -i alice
当然,这是最简单的例子,如果你熟悉 grep 命令,可以根据自己的需求和喜好使用它。返回搜狐,查看更多
责任编辑:
}

输入命令按下enter键就会开始执行,如果输入的命令很长,可以使用反斜杠\来转义enter符号,使命令连续到下一行。在linux环境中大小写是不同的
基本命令:
1.显示日期和事件的命令:date如果想要输出特定格式的日期和事件需要带上参数例如:date +%Y/%m/%ddate +%H:%M2.显示日历的命令:calcal的基本能语法:cal [[month] year]可以显示某年的日历:例如,cal 2009可以显示某年某月的日历:例如,cal 9 20093.计算器命令:bc输入bc命令就进入bc这个软件的工作环境,就可以像在windows中一样进行加减乘除,+加法,-减法,*乘法,/除法,^指数,%余数。bc默认是输出整数的,如果要输出全部小数,就必须执行scale=number,其中number就是小数点后的位数。要离开bc,需要输入quit才能离开bc软件环境。
重要的功能键
1.tab键:用于补全命令或者补全文件2.ctrl+c:用于中断目前正在运行的命令3.ctrl+d:表示键盘输入结束,也可以用来代替exit的输入。在命令行中直接按下两次tab键,可以看到总共有多少个命令可以供当前用户使用。
查看命令的用法:
可以使用man 命令名来查看命令的具体用法。其中man是manual的缩写。
linux关机:
数据同步写入磁盘中:在关机前可以使用命令sync将内存中尚未被更新的数据就会被写入硬盘中。关机命令:shutdown、reboot、halt、poweroff系统执行等级:run level 0:关机run level 3:纯命令行模式run level 5:含有图形界面模式run level 6:重启可以使用init命令来切换各种模式,例如想要关机的话,也可以使用init 0。
Linux下文件权限的概念
Linux文件属性ls -al 列出所有的文件,-al表示列出所有的文件详细的权限和属性。例如[1] [2] [3] [4] [5] [6] [7][权限] [连接] [所有者][用户组][文件容量] [修改日期] [文件名]drwxr-x--- 4 root root 4096 Sep 8 14:06 .gconfd-rwxr-xr-x 1 root root 1024 Jan 3 11:01 install.log1.第一列文件的类型与权限第一列由10个字符组成:第一个字符代表这个文件是目录、文件或者链接文件等其中d表示目录,-表示是文件l表示是连接文件接下来的字符中,以三个字符为一组,均是rwx的组合,其中r表示可读,w表示可写,x表示可执行。如果没有相应的权限就用-表示。这三组分别表示的权限是:第一组为”文件所有者的权限“第二组为”同用户组的权限“第三组为”其他非本用户组的权限“2.第二列表示有多少个文件名连接到此节点上3.第三列表示这个文件或目录的所有者账号4.第四列表示这个文件所属的用户组5.第五列表示这个文件的大小,默认单位为B6.第六列表示这个文件的创建日期或这个文件的修改日期。7.第七列表示这个文件名
改变文件属性和权限:chgrp(change group):改变文件的所属用户组chown(change owner):改变文件所有者chmod:改变权限,权限的设置有两种方式,使用数字或者符号来进行权限的更改。数字类型改变权限:使用数字分别代表各个权限,其中:r:4w:2x:1owner、group、others三种身份各自有自己的rwx权限,三个权限的分数需要累加。例如owner = rwx = 4 + 2 + 1=7group = rwx = 4 + 2 + 1 = 7others = --- = 0 + 0 + 0 = 0那么这个文件的权限数字就是770符号类型改变权限:使用u,g,o分别代表user、group、others三种身份的权限,a表示所有身份例如:一个文件的权限为:-rwxr-xr-xuser:有可读、可写、可执行的权限group:有可读、可执行的权限others:有可读、可执行的权限可以使用命令 chmod u=rwx,go=rx install.log给install.log文件的所有用户增加写权限chmod a+w install.log给install.log文件的所有用户去掉可执行权限chmod a-x install.log
Linux下文件没有所谓的扩展名,一个linux文件能不能被执行,与文件名没有一点关系,而是权限中有x,就代表这个文件可以被执行。通常会以适当的扩展名来表示文件是什么种类的。例如,.sh表示脚本或批处理文件,.Z、.tar、.tar.gz、.zip、.tgz都表示压缩文件。
Linux目录配置:
FHS(Filesystem Hierarchy Standard)标准用于让用户能够了解到已安装的软件通常放置在哪个目录下。FHS根据文件系统使用的频繁与否和是否允许用户随意改动,而将目录定义成四种交互作用的形态。分别如下:可分享的 不可分享的不变的:/usr(软件放置处)、/opt(第三方软件) /etc(配置文件)、/boot(开机与内核文件)可变动的: /var/mail(用户邮件信箱) /var/run(程序相关)、/var/lock(程序相关)/var/spool/news(新闻组) /var/lock(程序相关)
可分享的:可以分享给其他系统挂载使用的目录,所以包括可执行文件与用户的邮件等数据,是能够分享给网络上的其他主机挂载用的目录。不可分享的:自己机器上运行的设备文件或者程序有关的socket文件等,不适合分享给其他主机。不变的:数据不经常变动。可变动的:数据经常变动根目录(/):是整个系统最重要的目录,不仅所有其他目录是由根目录衍生出来的,而且根目录与开机、还原、系统修复等操作有关。根目录所在的分区越小越好,并且应用程序所安装的软件最好不要与根目录在同一个分区。开机过程中仅有根目录会被挂载,其他的分区会在开机完成之后才会持续进行挂载,因此根目录下与开机过程有关的目录就不能够与根目录放到不同的分区去。有如下这些目录:/etc:配置文件/bin:重要执行文件/dev:所需要的设备文件/lib:执行文件所需的函数库与内核所需的模块/sbin:重要的系统执行文件/usr(UNIX software resource)unix操作系统软件资源,所有系统默认的软件都会放置在该目录下,因此这个目录有点类似与windows下的“C:\Windows”和“C:\Program files”。/var 放置一些缓存、登录文件以及某些软件运行所产生的文件。相对路径和绝对路径:绝对路径:由根目录/开始写起的文件名或目录名称。相对路径:相对于当前路径.:或者./表示当前路径..:或者../表示上层目录
目录管理
几个特殊的目录. 代表此层目录.. 代表上层目录
代表前一个工作目录
~ 代表“目前用户身份”所在的主文件夹~account 代表account这个用户的主文件夹几个常见的处理目录的命令cd:切换目录刚登录时会回到自己的主文件夹,主文件夹有一个代表符号就是~,cd ~会回到个人的主文件夹中,仅输入cd和输入cd ~相同。pwd:显示当前目录pwd [-p] 其中-p表示显示当前路径,而不是使用连接路径。加上-p可以让我们取得正确的目录名称。mkdir:创建一个新目录mkdir [-mp] 目录名称,其中m参数表示配置文件夹的权限。p参数表示递归创建所需要的所有目录rmdir:删除一个空目录rmdir [-p] 目录名,其中p参数表示连同上层空的目录一起删除。要删除的目录中必定不能存在其他的目录或文件。
执行文件路径的变量:$PATH例如查看文件属性的命令是ls,而ls完整的文件名是/bin/ls,为什么我们可以在任何地方执行ls这个命令呢,这是因为环境变量PATH的帮助。当我们输入ls的时候,系统会依照PATH的设置去每个PATH定义的目录中查找文件名为ls的可执行文件,如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先查询到的同名命令先被执行。
文件与目录管理
查看文件与目录:ls-a:列出全部文件,连同隐藏文件(开头为.的文件)一起列出来-d:仅列出目录本身,而不列出目录内的文件数据-l:列出长数据串,包括文件的属性与权限等数据如果只执行ls,默认显示的只有非隐藏文件的文件名、以文件名进行排序及文件名代表的颜色显示文件类型。我们可以加上一些参数来显示我们想要的信息。例如:ls -al 将主文件夹下的所有文件显示出来,其中包括隐藏文件,显示文件的属性和权限。可以通过man ls来查看ls的具体用法
复制、移动和删除
复制: cp [-adfilprsu] 源文件 目标文件其中 -a相当于-pdr参数-d表示源文件为连接文件的属性,则复制连接文件属性而非文件本身-i表示若目标文件已经存在时,在覆盖时会先询问操作的进行-p表示连同文件的属性一起复制过去-r表示递归持续复制,用于目录的复制在默认条件下,cp的源文件和目的文件的权限是不同的,目的文件的所有者通常会是命令操作者本身。
删除:rm [-fir] 文件或目录-f表示force,忽略不存在的文件,不会出现告警信息-i表示删除之前会询问用户是否操作-r表示递归删除
移动:mv [-fiu] 源文件 目的文件-f表示force的意思,如果目的文件已经存在,不会询问直接覆盖-i表示如果目的文件存在时,会询问是否覆盖-u表示如果目的文件存在,其源文件比较新时,才会更新也可以多个源文件或目录全部移动到目录中mv [option] source1 source2 .... directory
取得路径的文件名和目录名称完成的文件名(包含目录名称和文件名)可能会很长,怎么知道哪个是文件名哪个是目录名,可以通过basename和dirname来获取
basename /etc/sysconfig/network
取到的文件名为network
dirname /etc/sysconfig/network
取到的目录名为/etc/sysconfig
文件内容查阅
直接查看文件内容可以使用cat、tac、nl命令,一次性将数据全部显示在屏幕上
cat [-AbEnTv]-A表示相当于-vET的集合参数-v表示列出一些看不出来的特殊字符-n表示打印出行号,连同空白行也会有行号-E表示将结尾的断行字符$显示出来-T表示将tab按键以^I显示出来
tac 由最后一行到第一行反向在屏幕上显示出来
nl [-bnw] 文件 添加行号打印-b表示指定行号指定的方式,有两种方式-b a 表示不论是否为空行,也同样显示行号-b t 表示如果有空行,空的那一行不要列出行号(默认值)-n表示列出行号表示的方法-n ln 表示行号在屏幕的最左边显示-n rn 表示行号在自己字段的最右方显示,且不加0-n rz 表示行号在自己字段的最右方显示,且加0-w表示行号字段占用的位数
可翻页查看
more 一页一页翻动在more命令运行的过程中,有几个有用的按键空格键 代表向下翻一页enter 代表向下滚动一行:f 表示立即显示出文件名以及目前显示的行数q 表示离开more命令,不再显示该文件的内容b或者ctrl+b 表示往回翻页,只对文件有用
less 一页一页翻动在less命令运行的过程中,有几个有用的按键空格键 代表向下翻一页[PageDown] 代表向下翻一页[PageUp] 代表向上翻一页/字符串 代表向下查询字符串的功能?字符串 代表向上查询字符串的功能n 重复前一个查询(与/或者?有关)N 反向重复前一个查询(与/或者?有关)q 表示退出less命令
数据选取
head [-n number] 文件 取前面几行默认情况下显示前面10行如果number为负数,则显示所有的行,但是不包括最后负数绝对值行
tailf [-n number] 文件 取后面几行默认显示后10行如果number为正数,则表示只列出number行之后的数据上面列出的所有文件查阅命令都是查阅纯文本文件
查阅非纯文本文件使用odod [-t TYPE] 文件-t后面可以接各种类型的输出a 表示利用默认的字符来输出c 表示使用ASCII字符来输出d[size] 表示使用十进制来输出数据,每个整数占用size字节f[size]表示使用浮点数来输出数据,每个数占用size字节o[size]表示使用八进制来输出数据,每个整数占用size字节x[size]表示使用十六进制来输出数据,每个整数占用size字节
修改文件时间或创建新文件文件有三个变动的时间
modification time(mtime):当文件的内容更改时,会更新这个时间
status time(ctime):当文件的状态改变时,会更新这个时间,例如权限或属性被更改了。
access time(atime):当文件的内容被取用时,会更新这个时间。ls -l命令会显示文件内容上次被更改的时间。ls -l --time=atime 命令显示的时间就是文件刚才被使用的时间ls -l --time=ctime 命令显示的时间就是文件状态被更改的时间修改文件的时间使用命令touchtouch [-acdmt] 文件参数-a表示仅修改访问时间-c表示修改文件的时间,如果文件不存在则不会创建文件-d表示后面可以接与修改的日期而不是目前的日期,也可以使用--date=“日期或时间”-m表示仅修改mtime-t表示后面可以接欲修改的时间而不是目前的日期,格式为 [YYMMDDhhmm]使用touch 文件命令时,如果文件不存在就会创建该文件例如touch test.log 当test.log文件不存在的时候就会去创建该文件。
文件默认权限与隐藏权限
文件默认权限umask 用户在创建文件或目录的时候的,文件或目录的默认权限。例如:
unmask
显示权限数字
unmask
0022
显示权限符号
unmask -s
u=rwx,g=rx,o=rx
默认情况下,如果用户创建文件,则默认没有可执行权限(x),只有r、w这两个选项,即默认权限是-rw-rw-rw(666)默认情况下,如果用户创建目录,则默认所有权限均开放,即为drwx-rwx-rwx(777)unmask的分数是指“该默认值需要拿掉的权限”,例如上面的022表示用户没有被拿掉任何权限,用户组和其他被拿掉了写的权限。如何使用unmask修改新建文件的默认权限,直接在unmask后面加上分数就好了比如:···unmask 002 就表示用户和用户组的读写权限不被拿掉,其他会被拿掉写的权限···
查看文件类型filefile命令可以查看文件的类型6.文件的查询
查找文件whereis [-bmsu] 文件或目录名-b表示只找二进制文件-m表示只找在说明文件manual路径下的文件-s表示只找source源文件-u表示查找不在上述三个选项中的其他特殊文件locate [-ir] keyword-i表示忽略大小写的差异-r表示后边可以接正则表达式的显示方式有时候当你查找刚新建的文件时,会有找不到的情况,是因为locate命令是去寻找已经创建的数据库/var/lib/mlocate里面的数据,而数据库的创建默认是每天执行一次。find [PATH] [option] [action]参数主要如下:1.与时间有关的参数-atime,-ctime,-mtime以-mtime为例,-mtime n :n为数字,意思就是查找在n天之前的“一天之内”被修改过的文件-mtime +n :列出在n天之前(不包含n天本身)被更改过的文件-mtime -n :列出在n天之内(含n天本身)被更改过的文件-newer file :file为一个存在的文件,列出比file还要新的文件名例如:
find / -mtime 0
表示找到从现在开始过去24小时内有改动过的文件,0表示当前的时间
find
/etc
-newer
/etc/passwd
表示找到比/etc/passwd新的文件
2.与用户或用户组名有关的参数-uid n 其中n表示数字,即用户的ID,也称为UID-gid n 其中n表示数字,即用户组名的ID,也称为GID-user name 其中name为用户的账号名称-group name 其中name为用户组名-nonuser 表示寻找文件的所有者不存在在/etc/passwd中的文件-nongroup 表示寻找文件的所有用户组不存在于/etc/group中的文件例如:
find /home
-user vbird
表示查找home下属于用户vbird的文件
find /
-nonuser
查找系统中不属于任何人的文件
3.与文件权限及名称有关的参数-name filename 查找文件名为filename的文件-size [+-] SIZE 查找比size大(+)或小(-)的文件-type TYPE表示查找文件类型为TYPE的文件-perm mode表示查找文件权限刚好等于mode的文件-perm -mode表示查找文件权限必须全部包括mode的权限的文件例如 查找文件权限为-rwxr--r--的文件,即权限744,那么文件权限为-rwxr-xr-x(755)的文件也会被列出来,因为-rwxr-xr-x的属性包括了-rwxr--r--的属性-perm +mode表示查找文件权限包含任一mode的权限的文件,例如查找-rwxr-xr-x,但是另一个文件属性包括-rw-------的文件也会被列出来,因为它有-rw属性存在4.其他可进行的操作-exec command :其中command表示其他命令,-exec表示接其他命令来处理查询的结果-print 表示将结果打印在屏幕上
vim程序编辑器
vi和vim的区别是vim是vi的高级版本为什么要学vim1.所有的linux like 系统都会内置vi文本编辑器,而其他的文本编辑器不一定有2.很多软件的编辑接口都会主动调用vi3.vim有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便设计vi的使用:vi有三种模式:一般模式、编辑模式、命令行模式一般模式:使用vi打开一个文件的时候就进入了一般模式,在这个模式中可以按左右键移动光标,可以删除字符或删除整行,也可以复制粘贴你的文件数据。但是不可以编辑文件。编辑模式:在一般模式下按下“i 、I、o、O、a、A、r、R”等任何一个字母才会进入编辑模式,按esc退出编辑模式命令行模式:在一般模式下,输入“:、/、?”就进入了,命令行模式,在这个模式下可以进行读取、保存文件,离开vi等操作。编辑牧师和命令行模式之间是不可以切换的。一般模式切换到命令行模式可用的按钮:w 表示将编辑的内容写入到硬盘中:w! 表示如果文件属性为 只读时,强制写入该文件:q表示离开vi:q!表示如果文件有修改过,不保存强制退出,:wq表示保存后离开vim的用法和vi完全一样
管道命令
管道命令仅会处理standard out,对于standard error output会予以忽略管道命令必须要能够接收来自前一个命令的数据成为standard input继续处理才行选取命令:cut,grep1.cut -d ‘分隔符’ -f fieldcut -c 字符范围-d表示分隔符-f表示与-d分隔符一起使用,表示取分割后的第几段-c表示以字符为单位取出固定字符区间以“行”为单位进行处理的选取例如:
echo $path
cut -d ':' -f 5
表示将取出的path变量用:分割后取第五段
export
输出
declare -x HISTSIZE="1000"
declare -x INPUTRC="/etc/inputrc"
export
cut -c 12-
输出为
HISTSIZE=“1000”
INPUTRC=“/etc/inputrc”
表示取第12个字符之后的所有字符串输出,因为是以行为单位进行处理的
2.grepgrep [-acinv] [--color=auto] '查找的字符串' filename其中-a表示将binary文件以text文件的放肆查找数据-c表示计算找到“查找字符串”的次数-i表示忽略大小写的不同-n表示输出行号-v表示反向选择,即显示出没有‘查找字符串’内容的那一行。--color=auto表示将找到的关键字部分加上颜色例如:
last
grep 'root' 表示将last当中出现root的那一行列出来
last
grep ‘root’
cut -d “ ” -f 1
表示将last当中出现root的那一行列出来并用空格分隔开后取一个列。
正则表达式
首先学习一下grep命令的一些高级参数grep [-A] [-B] [--color=auto] ‘搜索字符串’ filename其中:-A :后面可加数字,表示after的意思,除了列出该行外,后续的n行也列出来。-B :后面可加数字,表示before的意思,除了列出该行外,前面的n行也列出来。--color=auto表示将选取的数据添加颜色grep是一个很常用的命令,grep在数据中查找一个字符串时,是以整行为单位来进行数据的选取的。假如一个文件有10行,其中有两行具有你查找的字符串,则将那两行显示在屏幕上,其他的丢弃。例如1.查找特定的字符
grep -n 'the' regular_express.txt
表示在regular_express.txt文件中查找含有the字符串的行
2.利用中括号[]来查找集合字符[]里面不论有几个字符,它都只代表某“一个”字符
grep -n 't[ae]st' regular_express.txt
表示在regular_express.txt中查找字符串test或者tast
grep -n 'oo' regular_express.txt
表示在regular_express.txt中查找字符串oo
grep -n ‘[^g]oo’ regular_express.txt
表示在regular_express.txt中查找字符串前不包含g的oo字符串
grep -n '[^a-z]oo' regular_express.txt
表示在regular_express.txt中查找oo前面不能有小写字符的oo字符串
grep -n '[0-9]' regular_express.txt
表示在regular_express.txt中查找有数字的行
3.行首与行尾字符^$
linux中的断行字符是$
grep -n '^the' regular_express.txt
表示在regular_express.txt中查找在行首出现的the
grep -n ‘^[a-z]’ regular_express.txt
表示在regular_express.txt中查找开头是小写字符的行
grep -n '^[a-zA-Z]' regular_express.txt
表示在regular_express.txt中查找开头不是英文字母的行
^ 出现在[]之外表示定位在首行,^ 出现在[]中表示方向选择
grep -n '\.$' regular_express.txt
表示找到行尾结束为小数点.的那一行
grep -n '^$'regular_express.txt
表示找出哪以行是空白行
grep -v '^$' regular_express.txt
grep -v '^#'
不输出空行和以#开头的行
4.任意一个字符.与重复字符*.(小数点):代表一定有一个任意字符*(星号):代表重复前一个字符0到无穷次的意思例如:
grep -n 'g..d' regular_express.txt
表示找出以g开头,d结尾的中间有两个字符的字符串
o*表示空字符或者一个o字符以上
oo*表示至少一个o以上
ooo*表示至少两个o以上
grep -n 'ooo*' regular_express.txt
表示查找至少有两个o以上的字符
grep -n 'goo*g' regular_express.txt
表示以g开头结尾,中间至少有一个o的字符串
grep -n 'g.*g' regular_express.txt
表示以g开头结尾中间任意字符的字符串
.*表示零个或多个任意字符
5.限定连续RE字符范围{}因为符号{}在shell中是有特殊意义的,因此必须要使用转义字符\来让它失去特殊意义才行。例如
grep -n 'o\{2\}' regular_express.txt
表示找到连续两个o的字符串
grep -n 'go\{2,5\}' regular_express.txt
表示查找g后面接2到5个o的字符串
grep -n ‘go\{2,\}’ regular_express.txt
表示g后面接至少两个o的字符串
基础正则表达式字符
^word 表示待查找的字符word在首行word$ 表示待查找的字符在结尾.(小数点)表示一定有一个任意字符的字符\表示转义字符,将特殊符号的特殊意义去掉*表示重复零个或无穷多个前一个字符[list]表示从字符集合list中找出想太选取的一个字符[n1-n2]表示从字符集中查找想要选取的字符范围[^n1-n2]表示从字符集中查找不要的字符串或范围{n,m}表示连续n到m个前一个字符,若为{n}表示连续n个前一个字符,{n,}表示连续n个以上前一个字符。
sed命令
sed命令可以将数据进行替换、删除、新增、选取特定行等sed [-nefr] [动作]其中-n表示使用安静模式,在一般sed用法中,所有来自STDIN的数据一般都会被列出在屏幕上,但如果加上-n参数后,则只有经过sed特殊命令处理的那一行才会被列出来。-e表示直接在命令行模式上进行sed的动作编辑-f表示直接将sed的动作写在一个文件内-r表示sed的动作支持的是扩展型的正则表达式,默认是基础型的正则表达式-i表示直接修改读取的内容,而不是由屏幕输出动作说明:[n1[,n2]] functionn1,n2:不一定会存在,一般代表选择进行动作的行function 有下面的参数a表示新增,a后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行)c表示替换,c的后面可以接字符串,这些字符串可以替换n1,n2之间的行d表示删除i表示插入,i后买呢可以接字符串,而这些字符串会在新的一行出现(目前的上一行)p表示打印,将某个选择的数据打印出来,通常会和参数-n一起运行s表示替换,可以直接进行替换工作,sed ‘s/要被替换的字符串/新的字符串/g'例如
n1 /etc/passwd
sed '2,5d'
表示将2到5行删除
n1 /etc/passwd
sed '3,$d'
表示删除第3行到最后一行
n1 /etc/passwd
sed '2a drink tea'
表示在第2行的后面增加一行,如果要在第2行的前面增加一行,使用参数i
如果要增加两行以上,则需要每行之间必须要以反斜杠\来进行新行的增加
n1 /etc/passwd
sed '2a drink tea
or ......\
drink bear ?'
n1 /etc/passwd
sed '2,5c
No 2-5 number'
表示将2到5行内容替换成No 2-5 number
awk 数据处理工具
awk是非常棒的数据处理工具。awk '条件类型1{动作1} 条件类型2{动作2} 条件类型3{动作3}....' filenameawk主要是处理每一行的字段内的数据,而默认的字段的分隔符是空格键或[tab]键。例如
last -n 5
表示仅取前5行
root
pts/1
192.168.1.100
still
logged
in
root
pts/1
192.168.1.100
(01:41)
root
pts/1
192.168.1.100
(00:00)
root
pts/1
192.168.1.100
(02:00)
root
pts/1
192.168.1.100
(03:00)
想要输出账号和ip
last -n 5
awk '{print $1 "\t" $3}'
表示输出以空格或tab键分开的第1和第3个字段,并且以tab键分割
$0表示一整行
awk内置变量有:
NF
表示每一行($0)拥有的字段总数
NR
表示目前awk所处理的是“第几行”的数据
FS
表示目前的分隔符,默认是空格键
例如:
last -n 5|awk
'{print $1 "\t lines:
" NR "\t columes: " NF}'
root
lines:1
columes: 6
root
lines:2
columes: 4
root
lines:3
columes: 4
root
lines:4
columes: 4
root
lines:5
columes: 4
awk的逻辑运算符
>
大于
<
小于
>=
大于或等于
<=
小于或等于
==
等于
!=
不等于
例如:
cat
/etc/passwd
awk
'{FS=":"} $3 < 10 {print $1 "\t " $3}'
输出:
root:x:0:0:root:/root:/bin/bash
bin
1
daemon
2
以下省略
表示用:分割,打印第三个字段小于10的行的1,3字段
我们发现上面会输出第一行奇怪的数据,是因为当读入第一行的时候,变量之间还是以空格键进行分隔的,所有,我们虽然定义了FS=":",但是却在第二行后开始生效,我们可以利用BEGIN这个关键字。
cat
/etc/passwd
awk
'BEGIN {FS=":"} $3<10 {print $1 "\t " $3}'
root
0
bin
1
daemon
2
使用awk进行计算统计例如
Name
1st
2nd
3th
VBird
23000
24000
25000
DMTsai
21000
20000
23000
cat pay.txt
awk 'NR==1{printf
"%10s
%10s
%10s
%10s
%10s\n",$1,$2,$3,$4,"Total"} NR>=2{total=$1+$2+$3 printf "%10s %10d %10d %10d %10.2f\n",$1,$2,$3,$4,total}'
输出如下:
Name
1st
2nd
3th
Total
VBird
23000
24000
25000
72000.00
DMTsai
21000
20000
23000
64000.00
格式输出中,在printf的格式设置中,务必加上\n,才能进行分行在awk中变量可以直接使用,不用加上$符号
循环执行的例行性工作调度
crontab进行工作调度crontab [-u username] [-l
-e
-r]-u表示只有root才能进行这个任务-e表示编辑crontab的工作内容-l表示查阅crontab的工作内容-r表示删除crontab的所有工作内容例如
crontab -e
0
12
*
*
*
mail
dmtsai
-s
"at 12:00"
<
/home/dmtsai/.bashrc
其中由6个字段组成分别表示的意义是:分钟 小时 日期 月份 周 命令0-59 0-23 1-31 1-12 0-7 命令其中周的0和7都表示星期日表示任意时刻,(逗号)表示分隔时段的意思,例如0 3,6 * * * commond,表示在3和6时执行-(减号)表示一段时间范围,例如20 8-12 * * * commond,表示8到12时之间每小时的20分执行。/n(斜线)表示每隔n单位间隔的意思,例如/5 * * * * commond,表示每隔5分钟执行一次。执行crontab -e这个crontab其实是/usr/bin/crontab这个执行文件。
Linux中的>和&
表示将输出重定向&表示任务在后台执行,不加表示临时运行,关闭窗口项目即停止运行几个基本符号及其含义:/dev/null 表示空设备文件0 表示stdin标准输入1 表示stdout标准输出2 表示stderr标准错误例如:command>/dev/null 表示将commond的标准输出重定向到设备文件/dev/null中2>&1表示将标准错误重定向到标准输出,&相当于等效于标准输出nohup命令即项目在运行前新建一个nohup.out文件用来记录该项目的运行日志情况。
scp -r 源文件路径 root@ip:目标文件路径
}

一、选择题
1.在创建Linux分区时,一定要创建( D )两个分区
A. FAT/NTFS B. FAT/SWAP C. NTFS/SWAP D.SWAP/根分区
2.在Red Hat Linux中,系统默认的(A)用户对整个系统拥有完全的控制权。
A. root B. guest C. administrator D.supervistor.
3. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B )
A. NIDB. PID C. UID D. CID
4. 下面哪个命令是用来定义shell的全局变量( D )
A. exportfs B. alias C. exports D. export
5. 哪个目录存放用户密码信息( B )
A. /boot B. /etc C. /var D. /dev
6. 默认情况下管理员创建了一个用户,就会在( B )目录下创建一个用户主目录。
A. /usrB. /home C. /root D. /etc
7. . 当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目录。
A. /home B. /bin C. /etc D. /dev
8. 如果要列出一个目录下的所有文件需要使用命令行( C )。
A. ls –l B. ls C. ls –a(所有) D. ls –d
9. 哪个命令可以将普通用户转换成超级用户(D )
A. super B. passwd C. tar D. su
10. 除非特别指定,cp假定要拷贝的文件在下面哪个目录下( D )
A. 用户目录 B. home目录 C. root目录D. 当前目录
11. 在vi编辑器里,命令"dd"用来删除当前的( A )
A. 行 B. 变量 C. 字 D. 字符
12. 当运行在多用户模式下时,用Ctrl+ALT+F*可以切换多少虚拟用户终端( B )
A. 3 B. 6 C. 1 D. 12
13. Linux启动的第一个进程init启动的第一个脚本程序是( B )。
A./etc/rc.d/init.d B./etc/rc.d/rc.sysinit C./etc/rc.d/rc5.d D./etc/rc.d/rc3.d
14. 按下(A )键能终止当前运行的命令
A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D
15. 下面哪个命令用来启动X Window ( C )
A. runx B. Startx C. startX D. xwin
16. 用来分离目录名和文件名的字符是( B )
A. dash (-) B. slash (/) C. period (.) D. asterisk(*)
17. 用 "rm -i",系统会提示什么来让你确认( B )
A. 命令行的每个选项B. 是否真的删除 C. 是否有写的权限 D. 文件的位置
18. 以下哪个命令可以终止一个用户的所有进程( D )
A. skillall B. skill C. kill D. killall
19.在Red Hat Linux 9中,一般用( D )命令来查看网络接口的状态
A. ping B. ipconfig C. winipcfg D ifconfig
20. vi中哪条命令是不保存强制退出( C )(第五章)
A. :wq B. :wq!C. :q! D. :quit
21.局域网的网络设备通常有(ABCDE )
A. 交换机 B. 路由器 C. 网桥 D. 双绞线 E. HUB
22.在下列分区中,Linux默认的分区是( B )
A. FAT32 B. EXT3 C FAT .D NTFS
23.若要将鼠标从VM中释放出来,可按 ( A )键来实现
A. Ctrl + Alt B. Ctrl +Alt +Del C. Ctrl +Alt +Enter D Ctrl +Enter
24.如果用户想对某一命令详细的了解,可用(C)
A. ls B. help (内部) C. man(列举的信息多) D dir
25. Samba服务器的配置文件是 (D )。
A httpd.conf B inetd.conf C rc.samba D smb.conf
选择题
1.用户编写了一个文本文件a.txt,想将该文件名称改为txt.a,下列命令__D____可以实现。
A. cd a.txt xt.a B. echo a.txt > txt.a
C. rm a.txt txt.a D. cat a.txt > txt.a
2.Linux文件权限一共10位长度,分成四段,第三段表示的内容是___C___ 。
A. 文件类型 B. 文件所有者的权限
C. 文件所有者所在组的权限 D. 其他用户的权限
3.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是___D__。
A. -m B. -d C. -f D. -p
4.下面关于i节点描述错误的是__A___ 。
A.i节点和文件是一一对应的
B.i节点能描述文件占用的块数
C.i节点描述了文件大小和指向数据块的指针
D.通过i节点实现文件的逻辑结构和物理结构的转换
5.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用__C____命令。
A. 上箭头 B. 下箭头 C. “.” D. “*”
6.某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为__D____ 。
A. 467 B. 674 C. 476 D. 764
7.在Redhat公司发布的Linux版本中,若要使得用户登录验证,需要修改以下__C____脚本。
A. /etc/inittab B. /etc/passwd
C. /etc/shadow D. /etc/group
8.下列不是Linux系统进程类型的是_D_____ 。
A. 交互进程 B. 批处理进程 C. 守护进程 D. 就绪进程
9.下列关于/etc/fstab文件描述,正确的是___D___ 。
A. fstab文件只能描述属于linux的文件系统
B. CD_ROM和软盘必须是自动加载的
C. fstab文件中描述的文件系统不能被卸载
D. 启动时按fstab文件描述内容加载文件系统
10.在Shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是__D___ 。
A. fold B. join C. tr D. read
选择题
1.Linux系统的开发模型是 __B____ 。
A.教堂模型 B.集市模型 C.层次模型 D.网状模型
2.在Linux中,进程优先级的相关参数有多个,与实时进程优先级相关的参数是 __D____ 。
A.policy B.counter C.priority D.rt_priority
3.__B___ 属于SYSTEM Ⅴ进程间通信方式。
A.管道 B.信号量 C.软中断信号 D.锁机制
4.在Linux系统中,每个进程都有4GB的虚拟地址空间,其中内核空间占用 __C___ 。
A.0~2GB-1 B.0~3GB-1 C.3GB~4GB-1 D.2GB~4GB-1
5.Linux文件系统中,文件在外存的物理地址放在 ___A___ 中。
A.i节点 B.用户打开文件表
C.系统打开文件表 D. 进程控制块
6.以长格式列目录时,若文件test的权限描述为:drwxrw-r--,则文件test的类型及文件主的权限是__A____ 。
A. 目录文件、读写执行 B. 目录文件、读写
C. 普通文件、读写 D.普通文件、读
7.当字符串用单引号(’’)括起来时,SHELL将 __C____ 。
A.解释引号内的特殊字符 B.执行引号中的命令
C.不解释引号内的特殊字符 D.结束进程
8./etc/shadow文件中存放 _B_____ 。
A.用户账号基本信息 B.用户口令的加密信息
C.用户组信息 D.文件系统信息
9.Linux系统中,用户文件描述符0表示 ____A__ 。
A.标准输入设备文件描述符 B.标准输出设备文件描述符
C.管道文件描述符 D.标准错误输出设备文件描述符
10.为卸载一个软件包,应使用 ___B__ 。
A.rpm -i B.rpm -e C.rpm -q D.rpm -V
单项选择题
1.若当前目录为/home,命令ls –l 将显示home目录下的。
A.所有文件 B.所有隐含文件
C.所有非隐含文件 D.文件的具体信息
2.下面关于文件 "/etc/sysconfig/network-scripts/ifcfg-eth0"的描述哪个是正确的? 。
A.它是一个系统脚本文件 B.它是可执行文件
C.它存放本机的名字 D.它指定本机eth0的IP地址
3. 如何快速切换到用户John的主目录下?
A.cd @John B.cd #John C.cd &John D.cd ~John
4.启动DNS服务的守护进程
A. httpd start B.httpd stop C. named start D. named stop
5. 若URL地址为http://www.nankai.edu/index.html,请问哪个代表主机名。
A.nankai.edu.cn B.index.html
C.www.nankai.edu/index.html D.www.nankai.edu
6.RED HAT LINUX 9默认使用的文件系统类型为
A.ext2 B.ext3 C.FAT D.swap
7.在LINUX中,要查看文件内容,可使用命令。
A.more B.cd C.login D.logout
8.光盘所使用的文件系统类型为。
A.ext2 B.ext3 C.swap D.ISO 9660
9.以下命令中,可以将用户身份临时改变为root的是。
A.SU B.su C.login D.logout
10.LINUX所有服务的启动脚本都存放在目录中。
A./etc/rc.d/init.d B./etc/init.d C./etc/rc.d/rc D./etc/rc.d
11.若要使用进程名来结束进程,应使用命令。
A.kill B.ps C.pss D.pstree
12.RED HAT LINUX所提供的安装软件包,默认的打包格式为。
A..tar B..tar.gz C..rpm D..zip
13.若要将当前目录中的myfile.txt文件压缩成myfile.txt.tar.gz,则实现的命令为。
A.tar –cvf myfile.txt myfile.txt.tar.gz
B.tar –zcvf myfile.txt myfile.txt.tar.gz
C.tar –zcvf myfile.txt.tar.gz myfile.txt
D.tar –cvf myfile.txt.tar.gz myfile.txt
14.LINUX交换分区的格式为。
15.以下文件中,只有root用户才有权存取的是
A.passwd B.shadow C.group D.password
16.usermod命令无法实现的操作是
A.账户重命名 B.删除指定的账户和对应的主目录
C.加锁与解锁用户账户 D.对用户密码进行加锁或解锁
17.LINUX用于启动系统所需加载的内核程序位于
A./ B./lib/modules/2.4.20_8/kernel C./boot D./proc
18.init进程对应的配置文件名为,该进程是LINUX系统的第一个进程,其进程号PID始终为1。
A./etc/fstab B./etc/init.conf C./etc/inittab.conf D./etc/inittab
19.在LINUX运行的7个级别中,X—WINDOWS图形系统的运行级别为。
A.2 B.3 C.5 D.6
20.若在文字界面下,需要键入何种指令才能进入图形界面(Xwindow)。
A. reboot B.startx
C.startwindow D.getinto
单项选择题
当安装linux操作系统时将选择下列那一个操作?
A. 选择 "图形登录方式" 设定系统开始运行级为4
B. 选择 "文本登录方式" 设定系统开始运行级为3
C. 选择 "文本登录方式" 设定系统开始运行级为5
D. 选择 "图形登录方式" 设定系统开始运行级为3
2.Linux通过VFS支持多种不同的文件系统。Linux缺省的文件系统是
A.VFAT B.ISO9660 C.Ext系列 D.NTFS
3.关闭linux系统(不重新启动)可使用命令。
A.ctrl+alt+del B.halt C.shutdown -r D.reboot
4.修改以太网mac地址的命令为。
A.ping B.ifconfig C.arp D.traceroute
5.在vi编辑器中的命令模式下,键入可在光标当前所在行下添加一新行。
A.<O> B.<o> C.<i> D.a
6. 以下选项中,哪个命令可以关机?
A. init 0 B. init 1 C. init 5 D. init 6
7.请选择关于 /etc/fstab 的正确描述。
A. 系统启动后,由系统自动产生
B. 用于管理文件系统信息
C. 用于设置命名规则,是否使用可以用 TAB 来命名一个文件
D. 保存硬件信息
8.你使用命令“vi /etc/inittab”查看该文件的内容,你不小心改动了一些内容,为了防止系统出问题,你不想保存所修改内容,你应该如何操作
A.在末行模式下,键入:wq B.在末行模式下,键入:q!
C.在末行模式下,键入:x! D.在编辑模式下,键入“ESC”键直接退出vi
9.删除文件命令为
A.mkdir B.move C.mv D.rm
10.显示已经挂装的文件系统磁盘inode使用状况的命令是 ?
A.df –i B.su –I C.du –I D.free –i
11.网络管理员对www服务器可进行访问、控制存取和运行等控制,这些控制可在文件中体现。A.httpd.conf B.lilo.conf C.inetd.conf D.resolv.conf
12.如果想在Linux下实现热启,应当修改/etc/inittab下的哪一行。
A.#Trap CTRL-ALT-DELETE
B.#ca::ctrlaltdel :/sbin/shutdown -t3 -r now
C.#id:3:initdefault:
D.#10:3:wait:/etc/rc.d/rc 3
13.启动samba服务器进程,可以有两种方式:独立启动方式和父进程启动方式,其中后者是在文件中以独立进程方式启动。
A./usr/sbin/smbd B./usr/sbin/nmbd C.rc.samba D./etc/inetd.conf
14下列哪个命令在建立一个 tar归档文件的时候列出详细列表。
A.tar -t b)tar -cv c)tar -cvf d)tar –r
15.假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是 。
A.fileB也随之被删除
B.fileB仍存在,但是属于无效文件
C.因为fileB未被删除,所以fileA会被系统自动重新建立
D.fileB会随fileA的删除而被系统自动删除
16.一个bash shell脚本的第一行是?
A.#/bin/csh B.#/bin/bash
C./bin/bash D.#!/bin/bash
17.改变文件所有者的命令为?A.chmod B.touch C.chown D.cat
18.在给定文件中查找与设定条件相符字符串的命令为。
A.grep B.gzip C.find D.sort
19.建立一个新文件可以使用的命令为。
A.chmod B.more C.cp D.touch
20. 存放Linux基本命令的目录是什么?
A. /bin B. /tmp C. /lib D. /root
选择题
1. 关于Linux内核版本的说法,以下错误的是。
A.表示为主版本号.次版本号.修正号 B.1.2.3表示稳定的发行版
C.1.3.3表示稳定的发行版 D.2.2.5表示对内核2.2的第5次修正
2. 自由软件的含义是。
A.用户不需要付费 B.软件可以自由修改和发布
C.只有软件作者才能向用户收费 D.软件发行商不能向用户收费
3. 系统引导的过程一般包括如下几步:a.MBR中的引导装载程序启动;b.用户登录;c.Linux内核运行;d.BIOS自检。正确的顺序是。
A.d,b,c,a B.d,a,c,b C.b,d,c,a D.a,d,c,b
4. 字符界面下使用shutdown命令重启计算机时所用的参数是。
A.-h B.-t C.-k D.-r
5. 下列设备属于块设备的是。
A.键盘 B.终端
C.游戏杆 D.硬盘
6. cd命令可以改变用户的当前目录,当用户键入命令“cd”并按Enter键后,。
A.当前目录改为根目录 B.当前目录不变,屏幕显示当前目录
C.当前目录改为用户主目录 D.当前目录改为上一级目录
7. 在UNIX/Linux系统添加新用户的命令是
A. groupadd B. usermod
C. userdel D. useradd
8. 添加用户时使用参数可以指定用户目录。
A. -d B. -p
C. -u D. -c
9. 修改用户自身的密码可使用
A. passwd B. passwd -d mytest
C. passwd mytest D. passwd -l
10. 设用户所使用计算机系统上有两块IDE硬盘,Linux系统位于第一块硬盘上,查询第二块硬盘的分区情况命令是:
A. fdisk -l /dev/hda1 B. fdisk -l /dev/hdb2
C. fdisk -l /dev/hdb D. fdisk -l /dev/hda
11. 统计磁盘空间或文件系统使用情况的命令是:
A. df B. dd
C. du D. fdisk
12. 用于文件系统直接修改文件权限管理命令为:
A. chown B. chgrp
C. chmod D. umask
13. 若使pid进程无条件终止使用的命令是。
A. kill -9 B. kill -15
C. killall -1 D. kill -3
14. 显示系统主机名的命令是
A. uname -r B. who am i
C. uname -n D. whoami
15. 查询已安装软件包dhcp内所含文件信息的命令是
A. rpm -qa dhcp B. rpm -ql dhcp
C. rpm -qp dhcp D. rpm -qf dhcp
16. Linux系统中用于打印队列查询的命令是。
A. lp B. lprm
C. lpr D. lpstat
17. 202.196.100.1是何类地址
A、A类 B、B类
C、C类 D、D类
18. 当IP地址的主机地址全为1时表示:
A、专用IP地址 B、对于该网络的广播地址
C、本网络地址 D、回送地址
19. 路由器最主要的功能是:
A、将信号还原为原来的强度,再传送出去B、选择信息包传送的最佳路径
C、连接互联网 D、集中线路
20. FTP传输中使用哪两个端口?
A、23和24 B、21和22
C、20和21 D、22和23
选择题:
1.以下哪一个是linux内核的稳定版本( B )
A.2.5.24 B. 2.6.17 C. 1.7.18 D. 2.3.20
2.怎样显示当前目录( A )。
A. pwd B. cd C. who D. ls
3.欲把当前目录下的 file1.txt 复制为 file2.txt,正确的命令是( D )。
A. copy file1.txt file2.txt B. cp file1.txt
file2.txt
C. cat file2.txt file1.txt D. cat file1.txt > file2.txt
4. 如果您想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么您可以使用的命令是( B )。
A. ls *.txt B. find . –name “.txt” C. ls –d .txt D. find . “.txt”
5. 如何删除一个非空子目录 /tmp( B )。
A. del /tmp/* B. rm -rf /tmp C. rm -Ra /tmp/* D. rm –rf /tmp/*
6. 存放用户帐号的文件是( C )。
A. shadow B. group C. passwd D. Gshadow
7.下面哪个系统目录中包含Linux使用的外部设备( B )。
A. /bin B. /dev C. /boot D. /home
8.一个文件名字为rr.Z,可以用来解压缩的命令是( D )
A.tar B. gzip C. compress D. uncompress
9. Linux通过VFS支持多种不同的文件系统。Linux缺省的文件系统是( C )
A.VFAT B. ISO9660 C. Ext系列 D. NTFS
10. 在vi编辑器中的命令模式下,键入( B )可在光标当前所在行下添加一新行
A. O B. o C. i D. a
11.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用( C )命令。
A.上箭头 B. 下箭头 C. . D. *
12.删除文件命令为(D)
A.mkdir B. move C. mv D. rm
13.如果想在Linux下实现热启,应当修改/etc/inittab下的哪一行( B )
A.#Trap CTRL-ALT-DELETE
B. ca::ctrlaltdel:/sbin/shutdown -t3 -r now
C. id:3:initdefault:
D. 10:3:wait:/etc/rc.d/rc 3
14.假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是( B)
A.fileB也随之被删除
B. fileB仍存在,但是属于无效文件
C. 因为fileB未被删除,所以fileA会被系统自动重新建立
D. fileB会随fileA的删除而被系统自动删除
15.在给定文件中查找与设定条件相符字符串的命令为( A )
A.grep B. gzip C. find D. sort
16.从后台启动进程,应在命令的结尾加上符号( A )
A.& B. @ C. # D. $
17. 如果执行命令 #chmod 746 file.txt,那么该文件的权限是( A )。
A. rwxr--rw- B. rw-r--r-- C. --xr—rwx D. rwxr--r—
18. Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令( C )
A.cat B. more C. less D. menu
19. 若一台计算机的内存为128MB,则交换分区的大小通常是( C )
A.64MB B. 128MB C. 256MB D. 512MB
20. 在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是( B )
A.-m B. -p C. -f D.-d
21. 用ls –al 命令列出下面的文件列表,是符号连接文件的是( D )
A.-rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello
B.-rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey
C.drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhang
D.lrwxr--r-- 1 hel users 7 Sep 12 08:12 cheng
22. 文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是( A )
A.chmod a+x, g+w exer1 B.chmod 765 exer1
C.chmod o+x exer1 D.chmod g+w exer1
23. 关闭linux系统(不重新启动)可使用-命令( C )
A.ctrl+alt+del B.shutdown -r C.halt D.reboot
24.对文件进行归档的命令为(B )
A.gzip B.tar C.dump D.dd
25. NFS是( C )系统
A.文件 CbPLinux联盟B 磁盘 CbPLinux联盟C.网络文件 CbPLinux联盟D.操作
26. 下列那一个指令可以设定使用者的密码( C )
A.pwd B.newpwd C.passwd D.password
27. 下列那一个指令可以切换使用者身份( D )
A.passwd B.log C.who D.su
28. 下列那一个指令可以显示目录的大小( C )
A.dd B.df C.du D.dw
29. 下列那一个不是压缩指令( D )
A.compress B.gzip C.bzip2 D.tar
30. 下列那一个指令可以用来切换至不同的 runlevels( B )
A.tel CbPLinux联盟B telinit CbPLinux联盟C.goto CbPLinux联盟D.reboot
31. 欲查询 bind 套件是否有安装,可用下列那一指令( D )
A.rpm -ivh bind*.rpm B.rpm -q bind*.rpm
C.rpm -U bind*.rpm D.rpm -q bind
32. 欲安装 bind 套件, 应用下列那一指令( A )
A.rpm -ivh bind*.rpm B.rpm -ql bind*.rpm
C.rpm -V bind*.rpm D.rpm -ql bind
33. 欲移除 bind 套件,应用下列那一指令( D )
A.rpm -ivh bind*.rpm B.rpm -Fvh bind*.rpm
C.rpm -ql bind*.rpm D.rpm -e bind
34. 下列那一个指令可以用来查看系统负载情形( A )
A.w B.who c C.load D.ps
35. 档案权限 755 , 对档案拥有者而言, 何义( A )
A.可读,可执行, 可写入 CbPLinux联盟B 可读 CbPLinux联盟C.可读,可执行 CbPLinux联盟D.可写入CbPLinux联盟CbPLinux联盟
36.下面哪个系统目录中存放了系统引导、启动时使用的一些文件和目录
( D )。
A./root B. /bin C. /dev D. /boot
37. 如何删除目录 /tmp下的所有文件及子目录( D )。
38.可以用来对文件xxx.gz解压缩的命令是( C )
A.compress B. uncompress C. gunzip D. tar
39.对文件重命名的命令为(C)
A.rm B. move C. mv D. mkdir
40. 一下哪个环境变量表示当前路径( B )。
A. PATH B. PWD C. HOME D.ROOT
}

我要回帖

更多关于 shell获取当前目录的绝对路径 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信