0
点赞
收藏
分享

微信扫一扫

Linux基本命令操作练习

实验环境

  • 为了提高使用Linux操作系统的效率和熟练度,安装好操作系统以后,需要进一步学习操作系统中基本的文件和目录管理命令

查看及切换目录:

[root@localhost /]# pwd
/
[root@localhost /]#
[root@localhost /]# cd /boot/grub
[root@localhost grub]# pwd
/boot/grub
[root@localhost grub]# ls -ld
drwxr-xr-x. 2 root root 27 6月 25 00:34 .
[root@localhost grub]# du -sh /var/log
4.4M /var/log

创建目录和文件:

[root@localhost /]# mkdir public_html
[root@localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt proc public_html root run sbin srv sys tmp usr var
[root@localhost /]#
[root@localhost /]# touch 123.mp4
[root@localhost /]# ls
123.mp4 bin boot dev etc home lib lib64 media mnt opt proc public_html root run sbin srv sys tmp usr var
[root@localhost /]#
[root@localhost /]#
[root@localhost /]# mkdir /bin/wx
[root@localhost /]# ln -s /bin/bzip2 /bin/wx
[root@localhost /]# ls -lh /bin/wx/bzip2
lrwxrwxrwx. 1 root root 10 6月 27 16:13 /bin/wx/bzip2 -> /bin/bzip2
[root@localhost /]#

复制、删除、移动、目录和文件:

[root@localhost /]# cp /bin/touch ./mytouch
[root@localhost /]# ls
123.mp4 bin boot dev etc home lib lib64 media mnt mytouch opt proc public_html root run sbin srv sys tmp usr var
[root@localhost /]#
[root@localhost /]# rm -rf public_html/grub
[root@localhost /]# ls public_html/
[root@localhost /]#
[root@localhost /]#
[root@localhost /]# mv mytouch mkfile
[root@localhost /]# ls
123.mp4 bin boot dev etc home lib lib64 media mkfile mnt opt proc public_html root run sbin srv sys tmp usr var
[root@localhost /]#

查找目录和文件:

[root@localhost /]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost /]#
[root@localhost /]# find /etc -name "res*.conf"
/etc/resolv.conf
[root@localhost /]#

使用man, --help选项查看find命令的帮助信息

[root@localhost /]# man find
FIND(1) General Commands Manual FIND(1)

NAME
find - 递归地在层次目录中处理文件

总览 SYNOPSIS
find [path...] [expression]

描述 DESCRIPTION
这个文档是GNU版本 find 命令的使用手册。 find 搜索目录树上的每一个文件名,它从左至右运算给定的表达式,按照优先规则(见运 算符OPERA‐
TORS一节)进行匹配,直到得出结果(左边运算在 '与' 操作中得出假, 在'或' 操作中得出真),然后 find 移向下一个文件名。

第一个以 '-' , '(' , ')' , ',' 或 '!' 这些字符起始的参数是表达式的开始; 在它之前的任何参数是要搜索的路径,在它之后的任何参数都是表达式的余下部分。
如果没有路径参数,缺省用当前目录。如果没有表达式,缺省表达式 用 '-print'.

当所有文件都成功处理时 find 退出并返回状态值0。如果发生错误则返回一个大于0的值。

表达式 EXPRESSIONS
表达式是由选项(选项总是影响所有的操作, 而不仅仅是一个指定的文件的处 理, 而且总是返回真值),测试(测试返回一个真值或一个假值),还有动 作(动作有side
effects, 返回一个真值或假值) 组成。它们都以运算符分开.忽 略运算符的时候,默认使用 -and 连接. 如果表达式没有包含 -prune 以外的动
作,当表达式为真时会执行 -print 动作。

选项 OPTIONS
所有的选项都总是返回真值,它们总会被执行,除非放在表达式中执行不到的地方。 因此,清楚起见,最好把它们放在表达式的开头部分。

-daystart
从当日起始时开始而不是从24小时之前,计算时间(for -amin, -atime, -cmin, -ctime, -mmin, and -mtime)。

-depth 先处理目录的内容再处理目录本身。

-follow
不检索符号链接。隐含了 -noleaf。

-help, --help
列出 find 的命令行用法的概要,然后退出。

-maxdepth levels
进入命令行参数指定的目录下层目录时,最深不超过levels(一个非负整数) 层。`-maxdepth 0' 意味着只在命令行参数指定的目录中执行测试和动作。

-mindepth levels
不在levels(一个非负整数)层之内执行任何测试和动作。`-mindepth 1'意 味着处理所有的文件,除了命令行参数指定的目录中的文件。

-mount 不进入处于其它文件系统之上的目录。可以用-xdev代替,从而和一些其他版本的 find 兼容。

-noleaf
不为“目录中子目录数量比硬连接数少2”这种假设做优化。这个选项在搜索那些不遵 循UNIX文件系统链接约定的文件系统时用,比如CD-ROM,MS-
DOS文件系统或AFS卷的 加载点。在普通的UNIX文件系统中,每个目录至少有两个硬连接,它的名字和它 的 '.' 条目。另外,它的子目录(假如有)还会各有一个
'..' 链接到它。在 find 检索一个目录时,发现子目录数比它的连接数少二时,它就知道目录中的其他条目
并非目录(而是目录树中的叶(`leaf')节点)。除非需要检索的是这个叶节点,否则 没必要去处理它。这样可以带来很大的搜索速度提升。

-version, --version
打印find的版本号然后退出。

-xdev 不进入处于其他文件系统之上的目录。






[root@localhost /]# find --help
用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

默认路径为当前目录;默认表达式为 -print
表达式可能由下列成份组成:操作符、选项、测试表达式以及动作:

操作符 (优先级递减;未做任何指定时默认使用 -and):
( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2

positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
--version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race

比较测试 (N 可以是 +N 或 -N 或 N): -amin N -anewer FILE -atime N -cmin N
-cnewer 文件 -ctime N -empty -false -fstype 类型 -gid N -group 名称
-ilname 匹配模式 -iname 匹配模式 -inum N -ipath 匹配模式 -iregex 匹配模式
-links N -lname 匹配模式 -mmin N -mtime N -name 匹配模式 -newer 文件
-nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
-readable -writable -executable
-wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
-used N -user NAME -xtype [bcdpfls]
-context 文本


操作: -delete -print0 -printf 格式 -fprintf 文件 格式 -print
-fprint0 文件 -fprint 文件 -ls -fls 文件 -prune -quit
-exec 命令 ; -exec 命令 {} + -ok 命令 ;
-execdir 命令 ; -execdir 命令 {} + -okdir 命令 ;

通过 findutils 错误报告页 http://savannah.gnu.org/ 报告错误及跟踪修定过程。如果您无法浏览网页,请发电子邮件至 <bug-findutils@gnu.org>。
[root@localhost /]#

使用man工具查看man本身的手册信息,并保持为man.txt文本文件

[root@localhost /]# man man | col -b > man.txt
<standard input>:114: warning [p 1, 7.2i]: cannot adjust line
<standard input>:118: warning [p 1, 7.7i]: cannot adjust line
<standard input>:183: warning [p 2, 2.7i]: cannot adjust line
<standard input>:184: warning [p 2, 2.8i]: cannot adjust line
<standard input>:185: warning [p 2, 3.0i]: cannot adjust line
[root@localhost /]#
[root@localhost /]# ls
123.mp4 bin boot dev etc home lib lib64 man.txt media mkfile mnt opt proc public_html root run sbin srv sys tmp usr var
[root@localhost /]# cat man.txt
man(1) General Commands Manual man(1)



NAME
man - 格式化并显示在线帮助手册页
manpath - 定义用户查找man手册页的路径


man [-acdfFhkKtwW] [-m 系统名] [-p <前处理程序>] [-C <配置文件>] [-M <路径>] [-P <浏览方式>] [-S <区段清单>] [区段名称] 帮助主题 ...


man 格式化并显示在线帮助手册页面。此版本支持 MANPATH 和 (
手册页并决定使用哪个程序来显示此格式的页面。如果定义了区段, man 将只查找在指定区段内的文档。你也可以通过命令行或环境变量来指定查找区段
的顺序和预定义将要执行的程序。如果主题中有“/”符号,则将其作为文件名的一部分处理 ,也就是说你可以用 man ./foo.5 也可以用 man /cd/foo/bar.1.gz



-C 配
定义man.conf供使用;默认使用的是 /etc/man.config 。(参见 man.conf(5))

-M 路
定义一组查找man手册页的目录。如果没有指定此参数,系统环境变量 MANPATH将
文件中指定的查找。一个空的 MANPATH 子字 符串表示使用默认清单。

-P 浏
定义浏览的方式。此选项将覆盖 MANPAGER 环境变量(此变量将覆盖 PAGER 变量)。若不指定 此参数,则使用 MANPAGER 或 PAGER
环境变量中的设置。此选项的预设的显示方式为 /usr/bin/less-is。

-S 区
该清单是一组用冒号分隔的欲查找的手册清单。此选项将覆盖 MANSECT 环境变量。
有些指令或程序可能有一个以上的主题,它们位于不同的区段中。因此,要查看较后的区 段,你可以在此指定 man 查找区段的顺序。具体区段划分如下所示:
区段1:用户指令
区段2:系统调用
区段3:程序库调用
区段4:设备
区段5:文件格式
区段6:游戏
区段7:杂项
区段8:系统指令
区段9:内核内部指令
区段n:Tcl或Tk指令

-a 默认情况下,man在显示完每一个所查到的man手册页时会自动退出程序。而使用此选项
,则可使man显示所有与此主题相匹配的手册页内容,而不仅仅是第一项。

-c 即使已存在最近已排版过的帮助文件(即以前曾查询过该主题的帮助文档),使用该参
数后仍会再次执行一次排版操作。此参数适用于已排版过的帮助文件已损坏或屏幕的行列数有 改变时。

-d 不显示帮助文档的具体内容,只显示调试排错信息。

-D 既显示帮助文档内容,同时又显示调试排错信息。

-f 相当于运行whatis 的操作。即:显示工具指令与工具程序的简单说明。

-F" 或
只进行格式化操作,而不真正的显示出来。

-h 显示man的语法和参数说明,执行完成后退出程序。

-k 查当于使用 apropos 命令。

-K 在所有的帮助文件中查找包含有指定关键字的帮助文档。此操作可能很慢,所以在使用 此参数时最好配合-s
的参数来查找指定区段。(这只是一个粗略的概念,在作者本人的机器 上每分钟可查500个man文档。)

-m 系统名 定义所要查找的man文档所属的系统名。

-p 字串 定义在排版帮助文件这前所要执行的预处理程序的次序。不是所有的安装都有完整预处理
程序组。一般有6个预处理程序,它们是:eqn(e)、grap(g)、pic(p)、tbl(t)、vgrind(v)和 reger(r)。此参数将覆盖环境变量MANROFFSEQ。

-t 使用 /usr/bin/groff - Tps - mandoc 来排版man手册页,并输出到标准输出。从 /usr/bin/groff - Tpa - madoc
输出的内容可能需要某些其它过滤才能真正输出到标准输出打印。

-w" 或
不显示帮助文档的具体内容而只显示相应帮助主题文件的位置。如果没有给定参数,则将 在标准输出显示一组由man所查到的相匹配的man
文档所在目录。如果命令manpath是一个到m an的链接,那么执行“manpath”就相当于执行“man --path”。

-W 相当于-w参数,但所显示的内容以分行方式显示。此参数方便其它指定或程序对其输出 做进一步处理,如: man -aW man | xargs ls -l

CAT页
Man 会试着对所查的文档进行保存,为的是便于下次使用此帮助页时可节约格式化时间。传 统上,被格式化的DIR/manX文档会被存储在DIR/catX中,但你可以在
/etc/man.config 配置文 件中指定其它的目录。如果所需的cat目录不存在时,系统就不对格式化后的man文档进行保存 。

对于使用man命令的人,man命令可能对其进行setuid的操作。因此,如果一个cat目录属于
man并且其模式是0755(只有man对其有写的权限),而且,cat文件也属于man和其模式是064
4或0444(只有man对其有写权限或根本就没有写权限),则普通用就不能更改cat文档页,也
不能在此目录中存放其它文件。而如果man没有执行setuid的操作,那么,为了能使所有用户 都能存放cat页到cat目录,则必须将这个cat目录设置成0777模式。

参数 -c 可以强制生成一个新的man页,既使已经有一个cat页存在。


MANPATH
如果 MANPATH 有定义,那么它的值将在查找man文档页时做为搜索路径来使用。

MANROFFSEQ
如果 MANROFFSEQ 有定义,则此变量的值将用来决定在nroff或troff执行前将要执行的预处
理程序的次序。默认情况下,手册页会在nroff处理前选取进行表格处理。

MANSECT
如果 MANSECT 有定义,它的值将决定man有搜索时的查找区段。

MANWIDTH
如果MANWIDTH有定义,它的值将决定显示man手册页时的宽度。否则,将是以全屏的方式来 显示。

MANPAGER
如果 MANPAGER 有定义,它的值将指定用来显示man文档的程序。如果没有在此指定,那么将
使用由PAGER变量指定的程序。如果还是没有指定,那么会默认使用/usr/bin/less -is 。

LANG 如果 LANG 有定义,它的值将指定man在查找文档时首先查找的子目录。因此,命令“LAN G=dk man 1
foo”会使man在查找man页时首先查找../dk/man1/foo.1,如果在其中没有找到相 关文档,则查找../man/foo.1,此目录是由查找路径指定的。

NLAPATH,
环境变量 NLAPATH 和 LC_MESSAGES (或当后一个不存在时使用 LANG )充当了定位文档目录的
角色。(但英文信息是编译进命令的,所以针对英文而言,就没有目录存在)。注意,象col (1)这样被man调用的程序也使用象 LC_CTYPE 这样的变量。

PATH 变量 PATH 是在解释查找man手册页路径时使用的。

SYSTEM 变量 SYSTEM 是用来得到默认的系统名(用-m参数可以得到同样的效果)。


apropos(1),whatis(1),less(1),groff(1).


BUGS
选项 -t 只能使用在装有类troff程序的环境中。 如果在你的显示中出现高亮度的255或<AD>这样的字符而不是连字符,请在你的配置文件中 写入“LESS‐
CHARSET=latin1”这样的环境变量。


如果你在你的 .emacs 文件中加入(global-set-key[(f1)](lambda()(interactive)(manuale ntry(current-
word))))这一行,则当你按F1键时会自动跳出当前鼠标指向的相应程序的man手册页。


[中


译者: 所罗门 <solomen@email.com.cn>

[中
2003/05/13 第一版


http://cmpp.linuxforum.net



September 2, 1995 man(1)
[root@localhost /]#
举报

相关推荐

0 条评论