Linux中命令整理
- (一)关于设备管理:
- (二)系统管理:
- (三)磁盘管理:
- (四)文件管理:
(一)关于设备管理:
-
:poweroff 命令用于关闭计算器并切断电源。(使用权限:系统经理。
-
:shutdown命令可用于关机程序,并在关机前向所有用户发送信息,shutdown 也可用于重启。(使用权限:系统经理。
shutdown(选项)(参数)
:
-c:当执行“shutdown -h 11:50指令时,只需按下 关机指令可中断; -f:重启时不执行fsck; -F:重启时执行fsck; -h:关闭系统; -k:只向所有用户发送信息,但不会实际关闭; -n:不调用init程序关机,而由shutdown自己进行; -r:shutdown重新开始; -t<秒数>:在发送警告信息和删除信息之间延迟多少秒。
[时间]:设置多长时间后执行shutdown指令; [警告信息]:向所有登录用户发送信息。
指定现在立即关机 : > shutdown -h now 指定5分钟后关机,并向登录用户发送警告信息:>shutdown 5 “System will shutdown after 5 minutes”
-
reboot命令用于重新启动计算机。如果系统 runlevel 为 0 或 6 ,否则重新启动,否则以 shutdown 指令(加上 -r 取代参数。
reboot [-n] [-w] [-d] [-f] [-i]
-n : 重启前不要做把记忆材料写回硬盘的动作 -w : 它不会真正重启,只是写下记录 /var/log/wtmp 档案里 -d : 不要写记录 /var/log/wtmp 档案里(-n 包含此参数 -d) -f : 强迫重启,不呼叫 shutdown 这个指令 -i : 重启前停止所有网络相关设备
重新启动:
#reboot
-
若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则 shutdown 指令(加上 -h 取代参数。 使用权限:系统理。
halt [-n] [-w] [-d] [-f] [-i] [-p]
-n : 关机前不要把记忆材料写回硬盘。 -w : 不会真的关机,只是写记录 /var/log/wtmp 文件里 -d : 不要写记录 /var/log/wtmp 文件里(-n 包含此参数 -d) -f : 强迫关机,不呼叫 shutdown 这个指令 -i : 关机前停止所有网络相关装置 -p : 关机时,顺便关掉电源(poweroff)的动作
关闭系统: #:halt 关闭系统并关闭电源: #: halt -p 关闭系统,但不留记录: #: halt -d
-
clear命令用于清除屏幕。
(二)系统管理:
-
who显示系统中哪些用户使用命令,显示的数据包含用户 ID、使用的终端,从哪里连接,上线时间,呆滞时间,CPU 使用量、动作等。(使用权限:所有用户均可使用。
who(选项)(参数)
-H 或 --heading:显示各栏标题信息列; -i 或 -u 或 --idle:显示闲置时间,如果用户在前一分钟内做任何动作,将标记为"."如果用户24小时以上没有任何动作,则标示出"old"字符串; -m:此参数的效果和指定"am i"字符串相同; -q 或--count:只显示登录系统的帐户名和总数; -s:该参数将被忽略,不予处理,仅负责解决who指示其他版本的兼容性; -w 或-T或--mesg或--message或--writable:显示用户信息状态栏; --help:在线帮助; --version:显示版本信息。
显示当前登录系统的用户: #: who 显示标题栏: #: who -H 显示用户登录来源: #: who -l -H 显示终端属性: #: who -T -H 只显示当前用户: #: who -m -H 简化模式显示: #: who -q
-
whoami该命令用于显示自己的用户名。显示自己的用户名相当于执行该指令"id -un"指令。
whoami [–help][–version]
--help 在线帮助。 --version 显示版本信息。
显示用户名: #: whoami
-
su(英语全拼:swith user)除非命令用于改变其他用户的身份 root 此外,还需要输入用户的密码。(使用权限:所有用户。
su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]]
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh -m -p 或 --preserve-environment 执行 su 不改变环境变数 -c command 或 --command=command 变更为帐号 USER 并执行指令(command)然后变回原用户 -s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内部的用户(USER) shell --help 显示说明文件 --version 显示版本信息 -l 或 --login 这个参数加了之后,好像又重新开始了。 login 和用户一样,大多数环境变数(HOME SHELL USER等等)都是用户(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root USER 用户帐号想要改变 ARG 传入新的 shell 参数
变更帐号为 root 并在执行 ls 退出指令后变回原用户: #:su -c ls root 变更帐号为 root 并传入 -f 新执行的参数 shell: #:su root -f 变更帐号为 clsung 并将工作目录改为 clsung 的家目录(home dir): #:su - clsung 切换用户: #:su root //切换到root用户
-
man 查阅一些命令的帮助信息。一般使用man 可以简单查询命令名称的格式。
man ([[ [-c ] [-t ] [Section] ] | [-k | -f ] ] [-F] [-m] [ -MPath ] [ -r ] [ -a ]) (需要查询的命令)
-c 显示使用 cat 命令手册信息。 -t 使用 troff 命令格式化手册信息。如果手册页面在超文本信息基中找到,则忽略了该标志。 -k 显示关键字数据库中包含与最终参数给定的字符匹配标题的字符串的每一行。 可输入多个标题,中间用空间隔开。 要使用 -k 标志,root 以前必须输入用户catman -w 以建立 /usr/share/man/whatis 文件。 -f 显示在关键字数据库中仅与作为最终参数给定的命令名相关的项。可以输入多个命令名,中间用空格隔开。 使用该标志仅搜索命令物件。 要使用 -f 标志,root 用户必须以前已输入 catman -w 以建立 /usr/share/man/whatis 文件。 -F 只显示首个匹配项。 -m 只在 MANPATH 或 -M 中指定的路径中搜索。 -MPath 更改 man 命令搜索手册信息的标准位置。路径是用冒号隔开的路径的列表,其中,可以使用以下特殊符号: %D - 联机帮助页的缺省 AIX? 路径。 %L-与当前语言环境的 LC_MESSAGES 类别相对应的特定于语言环境的目录位置。 %L-与当前 LC_MESSAGES 类别的首 2 个字符相对应的特定于语言环境的目录位置。 -r 手册信息的远程搜索。如果出于某个原因,远程搜索失败,则 man 将执行本地搜索以获取请求的联机帮助页。 -a 显示所有匹配项。
1要显示关于 grep 命令的信息,请输入: man grep 2要显示包含“mkdir”字符串的/usr/share/man/whatis 关键字数据库中的所有项,请输入:man -k mkdir 此输出等同于 apropos命令,即:apropos mkdir 3要显示 /usr/share/man 或 /usr/share/man/local 路径中的所有与ftp 命令相关的物件,请输入:manM/usr/share/man:/usr/share/man/local ftp< /pre> 4要显示所有匹配项,输入以下命令:man –aTitle< /pre> 5只要显示首个匹配项,输入以下命令:man –FTitle< /pre> 6只要在 MANPATH 或 –M 中指定的路径中搜索,输入以下命令: man -m –M PATH Title< /pre> 7要在用户定义的 PATH 中搜索,输入以下命令: man –MPATH Title< /pre>
-
help() 函数用于查看函数或模块用途的详细说明。
help([object])或(命令)- -help
bject – 对象;
查看 sys 模块的帮助: #:help(‘sys’) 查看ls命令的使用方法: #:ls --help
-
whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上,相当于 man -f
whatis 命令/系统调用/库函数/特殊文件名
利用whatis命令查看w命令的作用。命令执行及结果如下: root@localhost ~]# whatis w w (1) - Show who is logged on and what they are doing
-
whereis命令用于查找文件。 该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。 该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
whereis [-bfmsu][-B <目录>…][-M <目录>…][-S <目录>…][文件…]
-b 只查找二进制文件。 -B<目录> 只在设置的目录下查找二进制文件。 -f 不显示文件名前的路径名称。 -m 只查找说明文件。 -M<目录> 只在设置的目录下查找说明文件。 -s 只查找原始代码文件。 -S<目录> 只在设置的目录下查找原始代码文件。 -u 查找不包含指定类型的文件。
使用指令"whereis"查看指令"bash"的位置,输入如下命令: #: whereis bash 上面的指令执行后,输出信息如下所示: bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz 注意:以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。 如果用户需要单独查询二进制文件或帮助文件,可使用如下命令: #: whereis -b bash #: whereis -m bash 输出信息如下: #: whereis -b bash #显示bash 命令的二进制程序 bash: /bin/bash /etc/bash.bashrc /usr/share/bash # bash命令的二进制程序的地址 #: whereis -m bash #显示bash 命令的帮助文件 bash: /usr/share/man/man1/bash.1.gz #bash命令的帮助文件地址
-
alias命令用于设置指令的别名。用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名。
alias[别名]=[指令名称]
若不加任何参数,则列出目前所有的别名设置。
给命令设置别名: #: alias lx=ls
-
unalias命令用于删除别名。unalias为shell内建指令,可删除别名设置。
unalias [-a][别名]
-a 删除全部的别名。
删除别名: #:alias lx //显示别名 alias lx=‘ls’ #: unalias lx //删除别名
-
date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下: 时间方面:
% : 印出 % %n : 下一行 %t : 跳格 %H : 小时(00…23) %I : 小时(01…12) %k : 小时(0…23) %l : 小时(1…12) %M : 分钟(00…59) %p : 显示本地 AM 或 PM %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M) %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00…61) %T : 直接显示时间 (24 小时制) %X : 相当于 %H:%M:%S %Z : 显示时区
日期方面:
%a : 星期几 (Sun…Sat) %A : 星期几 (Sunday…Saturday) %b : 月份 (Jan…Dec) %B : 月份 (January…December) %c : 直接显示日期与时间 %d : 日 (01…31) %D : 直接显示日期 (mm/dd/yy) %h : 同 %b %j : 一年中的第几天 (001…366) %m : 月份 (01…12) %U : 一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形) %w : 一周中的第几天 (0…6) %W : 一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形) %x : 直接显示日期 (mm/dd/yy) %y : 年份的最后两位数字 (00.99) %Y : 完整年份 (0000…9999) 若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。
使用权限:所有使用者。
当您不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date ‘+%-H:%-M:%-S’ 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。
当您以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
date [-u] [-d datestr] [-s datestr] [–utc] [–universal] [–date=datestr] [–set=datestr] [–help] [–version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
-d datestr : 显示 datestr 中所设定的时间 (非系统时间) --help : 显示辅助讯息 -s datestr : 将系统时间设为 datestr 中所设定的时间 -u : 显示目前的格林威治时间 -version : 显示版本编号
显示当前时间: #: date 显示完整的时间: #: date ‘+%D’ 按自己的格式输出: #: date ‘+usr_time: $1:%M %P -hey’ usr_time: $1:16 下午 -hey 显示时间后跳行,再显示目前日期: #: date ‘+%T%n%D’ 显示月份与日数: #: date ‘+%B %d’ 显示日期与设定时间(12:34:56): #: date --date ‘12:34:56’
-
cal 用于显示当月日历
-
pwd(英文全拼:print work directory) 命令用于显示工作目录。执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。 pwd [–help][–version] –help 在线帮助。 –version 显示版本信息。
查看当前所在目录: #: pwd
-
ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。 ls [-a-l-r-t-A-F-R] [name…]
-a 显示所有文件及目录 (. 开头的隐藏文件不会列出) -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 -r 将文件以相反次序显示(原定依英文字母次序) -t 将文件依建立时间之先后次序列出 -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录) -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/" -R 若目录下有文件,则以下之文件亦皆依序列出
列出根目录()下的所有目录: #: ls / 列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 : #: ls -ltr s* 将 /bin 目录以下所有目录及文件详细资料列出 : #: ls -lR /bin 列出目前工作目录下所有文件及目录;目录于名称后加 “/”, 可执行档于名称后加 “*” : #: ls -AF
-
cd(英文全拼:change directory)命令用于切换当前工作目录。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, … 则表示目前目录位置的上一层目录。
cd [dirName]
dirName:要切换的目标目录。
跳到 /usr/bin/ : #: cd /usr/bin 跳到自己的 home 目录 : #: cd ~ 跳到目前目录的上上两层 : #: cd …/…
(三)关于磁盘管理:
-
mkdir(英文全拼:make directory)命令用于创建目录。
mkdir [-p] dirName
-p 确保目录名称存在,不存在的就建一个。
在工作目录下,建立一个名为 runoob 的子目录 : #: mkdir runoob 在工作目录下的 runoob2 目录中,建立一个名为 test 的子目录。若 runoob2 目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 runoob2 目录不存在,则产生错误。) #:mkdir -p runoob2/test
-
rmdir(英文全拼:remove directory)命令删除空的目录。
rmdir [-p] dirName
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
将工作目录下,名为 AAA 的子目录删除 : #: rmdir AAA 在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。 #: rmdir -p BBB/Test
-
du (英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][–block-size][–exclude=<目录或文件>][–max-depth=<目录层数>][–help][–version][目录或文件]
-a或-all 显示目录中个别文件的大小。 -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 -D或--dereference-args 显示指定符号连接的源文件大小。 -h或--human-readable 以K,M,G为单位,提高信息的可读性。 -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。 -k或--kilobytes 以1024 bytes为单位。 -l或--count-links 重复计算硬件连接的文件。 -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。 -m或--megabytes 以1MB为单位。 -s或--summarize 仅显示总计。 -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 --exclude=<目录或文件> 略过指定的目录或文件。 --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。 --help 显示帮助。 --version 显示版本信息。
显示目录或者文件所占空间: #: du 只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小 显示指定文件所占空间 #: du log2012.log 方便阅读的格式显示test目录所占空间情况: #: du -h test
(四)关于文件管理:
-
cp(英文全拼:copy file)命令主要用于复制文件或目录。
cp (选项)(参数)
-a:此参数的效果和同时指定"-dpR"参数相同; -d:当复制符号连接时,把目标文件或目录也建立为符号 连接,并指向与源文件或目录连接的原始文件或目录; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件之前先询问用户; -l:对源文件建立硬连接,而非复制文件; -p:保留源文件或目录的属性; -R/r:递归处理,将指定目录下的所有文件与子目录一并处理; -s:对源文件建立符号连接,而非复制文件; -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的操作。
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项; 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
①如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点…的形式。例如,下面的命令将指定文件复制到当前目录下: #:cp …/mary/homework/assign . ②所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。 将文件file复制到目录/usr/men/tmp下,并改名为file1 #: cp file /usr/men/tmp/file1 ③将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中 #: cp -r /usr/men /usr/zh ④交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中 #: cp -i /usr/men m*.c /usr/zh ⑤复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。 #:cp -r aaa/* /bbb ⑥复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认,但是没有忽略子目录。 #:cp -r -a aaa/* /bbb ⑦依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。 #:\cp -r -a aaa/* /bbb
-
mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。
mv [options] source dest mv [options] source… directory
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。 -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。 -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。 -n: 不要覆盖任何已存在的文件或目录。 -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
mv source_file(文件) dest_file(文件) | 将源文件名 source_file 改为目标文件名 dest_file |
---|---|
mv source_file(文件) dest_directory(目录) | 将文件 source_file 移动到目标目录 dest_directory 中 |
mv source_directory(目录) dest_directory(目录) | 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory |
mv source_directory(目录) dest_file(文件) | 出错 |
将文件 aaa 改名为 bbb : #: mv aaa bbb 将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。 #: mv info/ logs 再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为: #: mv /usr/runoob/* .
-
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。ls -l 可以显示档案的时间记录。
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][–help][–version][文件或目录…]
-a 改变档案的读取时间记录。 -m 改变档案的修改时间记录。 -c 假如目的档案不存在,不会建立新的档案。与 --no- create 的效果一样。 -f 不使用,是为了与其他 unix 系统的相容性而保留。 -r 使用参考档的时间记录,与 --file 的效果一样。 -d 设定时间与日期,可以使用各种不同的格式。 -t 设定档案的时间记录,格式与 date 指令相同。 -no-create 不会建立新档案。 -help 列出指令格式。 -version 列出版本讯息。
使用指令"touch"修改文件"testfile"的时间属性为当前系统时间,输入如下命令: #: touch testfile #修改文件的时间属性 首先,使用ls命令查看testfile文件的属性,如下所示: #: ls -l testfile #查看文件的时间属性 执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示: #: touch testfile #修改文件时间属性为当前系统时间 #: ls -l testfile #查看文件的时间属性 使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令: #: touch file #创建一个名为“file”的新的空白文件
-
rm(英文全拼:remove)命令用于删除一个文件或者目录。
rm [options] name…
-i 删除前逐一询问确认。 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。
删除文件可以直接使用rm命令,若删除目录则必须配合选 项"-r",例如: #: rm test.txt rm:是否删除 一般文件 “test.txt”? y #: rm homework rm: 无法删除目录"homework": 是一个目录 #: rm -r homework rm:是否删除 目录 “homework”? y 删除当前目录下的所有文件及目录,命令行为: #:rm -r *
-
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
cat [-AbeEnstTuv] [–help] [–version] fileName
-n 或 --number:由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。 -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。 -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。 -E 或 --show-ends : 在每行结束处显示 $。 -T 或 --show-tabs: 将 TAB 字符显示为 ^I。 -A, --show-all:等价于 -vET。 -e:等价于"-vE"选项; -t:等价于"-vT"选项;
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里: #:cat -n textfile1 > textfile2 把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里: #: cat -b textfile1 textfile2 >> textfile3 清空 /etc/test.txt 文档内容: #:cat /dev/null > /etc/test.txt cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入: #:cat /dev/fd0 > OUTFILE 相反的,如果想把 image file 写到软盘,输入: #:cat IMG_FILE >/dev/fd0
注:
1、OUTFILE 指输出的镜像文件名。 2、IMG_FILE 指镜像文件。 3、若从镜像文件写回 device 时,device 容量需与相当。 4、通常用制作开机磁片。
-
tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示。
tac(选项)(参数)
-a或——append:将内容追加到文件的末尾; -i或——ignore-interrupts:忽略中断信号。
-
more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames…]
-num 一次显示的行数 -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声 -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能 -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料 -s 当遇到有连续两行以上的空白行,就代换为一行的空白行 -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同) +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示 +num 从第 num 行开始显示 fileNames 欲显示内容的文档,可为复数个数
逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。 #:more -s testfile 从第 20 行开始显示 testfile 之文档内容。 #:more +20 testfile
●Enter 向下n行,需要定义。默认为1行 ●Ctrl+F 向下滚动一屏 ●空格键 向下滚动一屏 ●Ctrl+B 返回上一屏 ●= 输出当前行的行号 ●:f 输出文件名和当前行的行号 ●V 调用vi编辑器 ●!命令 调用Shell,并执行命令 ●q 退出more
-
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
less [参数] 文件
-b <缓冲区大小> 设置缓冲区的大小 -e 当文件显示结束后,自动离开 -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -g 只标志最后搜索的关键词 -i 忽略搜索时的大小写 -m 显示类似more命令的百分比 -N 显示每行的行号 -o <文件名> 将less 输出的内容在指定文件中保存起来 -Q 不使用警告音 -s 显示连续空行为一行 -S 行过长时间将超出部分舍弃 -x <数字> 将"tab"键显示为规定的数字空格 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b 向上翻一页 d 向后翻半页 h 显示帮助界面 Q 退出less 命令 u 向前滚动半页 y 向前滚动一行 空格键 滚动一页 回车键 滚动一行 [pagedown]: 向下翻动一页 [pageup]: 向上翻动一页
1、查看文件 #:less log2013.log 2、ps查看进程信息并通过less分页显示 #:ps -ef |less 3、查看命令历史使用记录并通过less分页显示 #:history | less 22 scp -r tomcat6.0.32 4、浏览多个文件 #:less log2013.log log2014.log (说明: 输入 :n后,切换到 log2014.log 输入 :p后,切换到log2013.log)
1.全屏导航 ctrl + F - 向前移动一屏 ctrl + B - 向后移动一屏 ctrl + D - 向前移动半屏 ctrl + U - 向后移动半屏 2.单行导航 j - 向前移动一行 k - 向后移动一行 3.其它导航 G - 移动到最后一行 g - 移动到第一行 q / ZZ - 退出 less 命令 4.其它有用的命令 v - 使用配置的编辑器编辑当前文件 h - 显示 less 的帮助文档 &pattern - 仅显示匹配模式的行,而不是整个文件 5.标记导航 当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置: ma - 使用 a 标记文本的当前位置 'a - 导航到标记 a 处
-
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。
head [参数] [文件]
-q 隐藏文件名 -v 显示文件名 -c<数目> 显示的字节数。 -n<行数> 显示的行数。
要显示 runoob_notes.log 文件的开头 10 行,请输入以下命令: #:head runoob_notes.log 显示 notes.log文件的开头 5 行,请输入以下命令: #: head -n 5 runoob_notes.log 显示文件前 20 个字节: #:head -c 20 runoob_notes.log
-
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。 tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
tail [参数] [文件]
-f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示文件的尾部 n 行内容 --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束 -q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
要显示 notes.log 文件的最后 10 行,请输入以下命令: #:tail notes.log 要跟踪名为 notes.log的文件的增长情况,请输入以下命令: #:tail -f notes.log 此命令显示 notes.log 文件的最后 10行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。显示文件 notes.log 的内容,从第 20 行至文件末尾: #:tail +20 notes.log 显示文件 notes.log 的最后10 个字符: #:tail -c 10 notes.log
-
cut命令用于显示每行从开头算起 num1 到 num2 的文字。
cut [-bn] [file] cut [-c] [file] cut [-df] [file]
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c :以字符为单位进行分割。 -d :
自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。 -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的 范围之内,该字符将被写出;否则,该字符将被排除
当你执行who命令时,会输出类似如下的内容: #: who rocrocket :0 2009-01-08 11:07 rocrocket pts/0 2009-01-08 11:23 (:0.0) rocrocket pts/1 2009-01-08 14:15 (:0.0) 如果我们想提取每一行的第3个字节,就这样: #: who|cut -b 3 c c
-
sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][–help][–verison][文件]
-b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 -f 排序时,将小写字母视为大写字母。 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -m 将几个排序好的文件进行合并。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -u 意味着是唯一的(unique),输出的结果是去完重了的。 -o<输出文件> 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t<分隔字符> 指定排序时所用的栏位分隔字符。 +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。 --help 显示帮助。 --version 显示版本信息。
在使用sort命令以默认的式对文件的行进行排序,使用的命令如下: #:sort testfile sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。 使用 cat命令显示testfile文件可知其原有的排序如下: #: cat testfile //(testfile文件原有排序) test 30 Hello 95 Linux 85 使用sort命令重排后的结果如下: #: sort testfile //重排结果 Hello 95 Linux 85 test 30
-
uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。uniq 可检查文本文件中重复出现的行列。
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][–help][–version][输入文件][输出文件]
-c或--count 在每列旁边显示该行重复出现的次数。 -d或--repeated 仅显示重复出现的行列。 -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。 -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。 -u或--unique 仅显示出一次的行列。 -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。 --help 显示帮助。 --version 显示版本信息。 [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据; [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。
文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令: #:uniq testfile testfile中的原有内容为: #: cat testfile //(原有内容) test 30 test 30 test 30 Hello 95 Hello 95 Hello 95 Hello 95 Linux 85 Linux 85 使用uniq命令删除重复的行后,有如下输出结果: #: uniq testfile #删除重复行后的内容 test 30 Hello 95 Linux 85
-
wc命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
wc [-clw][–help][–version][文件…]
-c或--bytes或--chars 只显示Bytes数。 -l或--lines 只显示行数。 -w或--words 只显示字数。 --help 在线帮助。 --version 显示版本信息。
使用 wc统计,结果如下: #: wc testfile # testfile文件的统计信息
3 92 598testfile # (testfile文件的行数为3、单词数92、字节数598)
-
locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。一般情况我们只需要输入 locate your_file_name 即可查找指定文件。
locate [-d ][–help][–version][范本样式…]
-b, --basename -- 仅匹配路径名的基本名称 -c, --count -- 只输出找到的数量 -d, --database DBPATH -- 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db -e, --existing -- 仅打印当前现有文件的条目 -1 -- 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。 -0, --null -- 在输出上带有NUL的单独条目 -S, --statistics -- 不搜索条目,打印有关每个数据库的统计信息 -q -- 安静模式,不会显示任何错误讯息。 -P, --nofollow, -H -- 检查文件存在时不要遵循尾随的符号链接 -l, --limit, -n LIMIT -- 将输出(或计数)限制为LIMIT个条目 -n -- 至多显示 n个输出。 -m, --mmap -- 被忽略,为了向后兼容 -r, --regexp REGEXP -- 使用基本正则表达式 --regex -- 使用扩展正则表达式 -q, --quiet -- 安静模式,不会显示任何错误讯息 -s, --stdio -- 被忽略,为了向后兼容 -o -- 指定资料库存的名称。 -h, --help -- 显示帮助 -i, --ignore-case -- 忽略大小写 -V, --version -- 显示版本信息
> 查找 passwd 文件,输入以下命令: > #:locate passwd 搜索 etc 目录下所有以 sh 开头的文件 : > #:locate /etc/sh 忽略大小写搜索当前用户目录下所有以 r 开头的文件 : > #:locate -i ~/r
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。 locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为: #:updatedb 默认情况下 updatedb 每天执行一次。
-
find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find path -option [ -print ] [ -exec -ok command ] {} ;
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。 expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。 -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 -amin n : 在过去 n 分钟内被读取过 -anewer file : 比文件 file 更晚被读取过的文件 -atime n : 在过去n天内被读取过的文件 -cmin n : 在过去 n 分钟内被修改过 -cnewer file :比文件 file 更新的文件 -ctime n : 在过去n天内被修改过的文件 -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写 -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写 -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。 -type c : 文件类型是 c 的文件。 d: 目录 c: 字型装置文件 b: 区块装置文件 p: 具名贮列 f: 一般文件 l: 符号连结 s: socket -pid n : process id 是 n 的文件 你可以使用 ( ) 将运算式分隔,并使用下列运算。 exp1 -and exp2 ! expr -not expr exp1 -or exp2 exp1, exp2
将目前目录及其子目录下所有延伸档名是 c 的文件列出来。 #: find . -name "*.c" 将目前目录其其下子目录中所有一般文件列出 #: find . -type f 将目前目录及其子目录下所有最近 20 天内更新过的文件列出 #: find . -ctime -20 查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们: #: find /var/log -type f -mtime +7 -ok rm {} \; 查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件: #: find . -type f -perm 644 -exec ls -l {} \; 为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径: #: find / -type f -size 0 -exec ls -l {} \;
-
grep 命令用于查找文件里符合条件的字符串。grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][–help][范本样式][文件或目录…]
-a 或 --text : 不要忽略二进制的数据。 -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。 -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。 -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。 -c 或 --count : 计算符合样式的列数。 -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。 -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。 -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。 -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。 -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。 -F 或 --fixed-regexp : 将样式视为固定字符串的列表。 -G 或 --basic-regexp : 将样式视为普通的表示法来使用。 -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。 -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。 -i 或 --ignore-case : 忽略字符大小写的差别。 -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。 -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。 -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。 -o 或 --only-matching : 只显示匹配PATTERN 部分。 -q 或 --quiet或--silent : 不显示任何信息。 -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。 -s 或 --no-messages : 不显示错误信息。 -v 或 --invert-match : 显示不包含匹配文本的所有行。 -V 或 --version : 显示版本信息。 -w 或 --word-regexp : 只显示全字符合的列。 -x --line-regexp : 只显示全列符合的列。 -y : 此参数的效果和指定"-i"参数相同。
在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令: grep test *file 结果如下所示: #: grep test test* #(查找前缀有“test”的文件包含“test”字符串的文件) testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行 testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行 testfile_2:Linux test #列出testfile_2 文件中包含test字符的行 以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为: #:grep -r update /etc/acpi 输出结果如下: $ grep -r update /etc/acpi #以递归的方式查找“etc/acpi” #下包含“update”的文件 /etc/acpi/ac.d/85-anacron.sh:#(Things like the slocate updatedb cause a lot of IO.) Rather than /etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.) Rather than /etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update 反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。 查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为: grep -v test *test* 结果如下所示: $ grep-v test* #查找文件名中包含test 的文件中不包含test 的行 testfile1:helLinux! testfile1:Linis a free Unix-type operating system. testfile1:Lin testfile_1:HELLO LINUX! testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. testfile_1:THIS IS A LINUX TESTFILE! testfile_2:HELLO LINUX! testfile_2:Linux is a free unix-type opterating system.
-
dd命令用于读取、转换并输出数据。dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
dd(选项)
bs=<字节数>:将 ibs(输入)与 obs(输出)设成指定的字节数; cbs=<字节数>:转换时,每次只转换指定的字节数; conv=<关键字>:指定文件转换的方式; count=<区块数>:仅读取指定的区块数; ibs=<字节数>:每次读取的字节数; obs=<字节数>:每次输出的字节数; of=<文件>:输出到文件; seek=<区块数>:一开始输出时,跳过指定的区块数; skip=<区块数>:一开始读取时,跳过指定的区块数; --help:帮助; --version:显示版本信息。
-
file命令用于辨识文件类型。通过file指令,我们得以辨识该文件的类型。
**语法:**file [-bcLvz][-f <名称文件>][-m <魔法数字文件>…][文件或目录…]
-b 列出辨识结果时,不显示文件名称。 -c 详细显示指令执行过程,便于排错或分析程序执行的情形。 -f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。 -L 直接显示符号连接所指向的文件的类别。 -m<魔法数字文件> 指定魔法数字文件。 -v 显示版本信息。 -z 尝试去解读压缩文件的内容。 [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
显示文件类型: #: file install.log 不显示文件名称: #:file -b install.log 显示MIME类别: #: file -i install.log
-
stat命令用于显示inode内容。stat以文字的格式来显示inode的内容。
stat [文件或目录]
查看 testfile 文件的inode内容内容,可以用以下命令: #: stat testfile
-
ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。 注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。
ln(选项)(参数)
-b或--backup:删除,覆盖目标文件之前的备份; -d或-F或——directory:建立目录的硬连接; -f或——force:强行建立文件或目录的连接,不论文件或目录是否存在; -i或——interactive:覆盖既有文件之前先询问用户; -n或--no-dereference:把符号连接的目的目录视为一般文件; -s或——symbolic:对源文件建立符号连接,而非硬连接; -S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它; -v或——verbose:显示指令执行过程; -V<备份方式>或--version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串; --help:在线帮助; --version:显示版本信息。 源文件:指定连接的源文件。如果使用-s选项创建符号连接,则“源文件”可以是文件或者目录。创建硬连接时,则“源文件”参数只能是文件; 目标文件:指定源文件的目标连接文件。
将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c #:cd /usr/mengqc #:ln /mub1/m2.c /usr/liu/a2.c 在执行ln命令之前,目录/usr/liu中不存在a2.c文件。执行ln之后,在/usr/liu目录中才有a2.c这一项,表明m2.c和a2.c链接起来(注意,二者在物理上是同一文件),利用ls -l命令可以看到链接数的变化。 在目录/usr/liu下建立一个符号链接文件abc,使它指向目录/usr/mengqc/mub1 ln -s /usr/mengqc/mub1 /usr/liu/abc 执行该命令后,/usr/mengqc/mub1代表的路径将存放在名为/usr/liu/abc的文件中。
-
vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
用户刚刚启动 vi/vim,便进入了命令模式。 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令: -i 切换到输入模式,以输入字符。 -x 删除当前光标所在处的字符。 -: 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。 命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
在命令模式下按下i就进入了输入模式。 在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符 ENTER,回车键,换行 BACK SPACE,退格键,删除光标前一个字符 DEL,删除键,删除光标后一个字符 方向键,在文本中移动光标 HOME/END,移动光标到行首/行尾 Page Up/Page Down,上/下翻页 Insert,切换光标为输入/替换模式,光标将变成竖线/下划线 ESC,退出输入模式,切换到命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。 在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序 w 保存文件
按ESC键可随时退出底线命令模式。