最近特别忙,估计十一也不能回家,网速也很卡,不过这都不会减少我为同学们讲解linux的热情,今天我们将学习linux的命令帮助及vim的使用,很重要哦!!

 学linux有困难找男人,也就是man,其实这主要是为了让大家能更好的记住这个命令,manual:手册

举个例子,比如ls命令,是查看当前目录下文件的,我们man一下它。


LS(1)                            User Commands                          LS(1)


NAME

       ls - list directory contents


SYNOPSIS

       ls [OPTION]... [FILE]...


DESCRIPTION

       List  information  about  the FILEs (the current directory by default).  Sort

       entries alphabetically if none of -cftuvSUX nor --sort.


       Mandatory arguments to long options are mandatory for short options too.


       -a, --all

              do not ignore entries starting with .


       -A, --almost-all

              do not list implied . and ..


       --author

              with -l, print the author of each file


       -b, --escape

              print octal escapes for nongraphic characters


       --block-size=SIZE

              use SIZE-byte blocks.  See SIZE format below


       -B, --ignore-backups

              do not list implied entries ending with ~


       -c     with -lt: sort by, and show, ctime (time of last modification of  file

              status  information)  with  -l: show ctime and sort by name otherwise:

              sort by ctime


       -C     list entries by columns


       --color[=WHEN]

              colorize the output.  WHEN defaults to ‘always’ or can be  ‘never’  or

              ‘auto’.  More info below


       -d, --directory

              list  directory  entries  instead  of contents, and do not dereference

              symbolic links


       -D, --dired

              generate output designed for Emacs’ dired mode


       -f     do not sort, enable -aU, disable -ls --color


       -F, --classify

              append indicator (one of */=>@|) to entries


       --file-type

              likewise, except do not append ‘*’


       --format=WORD

              across -x, commas -m, horizontal -x, long -l, single-column  -1,  ver-

              bose -l, vertical -C


       --full-time

              like -l --time-style=full-iso


       -g     like -l, but do not list owner


       --group-directories-first

              group directories before files.


              augment with a --sort option, but any use of --sort=none (-U) disables

              grouping


       -G, --no-group

              in a long listing, don’t print group names


       -h, --human-readable

              with -l, print sizes in human readable format (e.g., 1K 234M 2G)


       --si   likewise, but use powers of 1000 not 1024


       -H, --dereference-command-line

              follow symbolic links listed on the command line


       --dereference-command-line-symlink-to-dir

              follow each command line symbolic link that points to a directory


       --hide=PATTERN

              do not list implied entries matching shell PATTERN (overridden  by  -a

              or -A)


       --indicator-style=WORD

              append indicator with style WORD to entry names: none (default), slash

              (-p), file-type (--file-type), classify (-F)


       -i, --inode

              print the index number of each file


       -I, --ignore=PATTERN

              do not list implied entries matching shell PATTERN


       -k     like --block-size=1K


       -l     use a long listing format


       -L, --dereference

              when showing file information for a symbolic  link,  show  information

              for the file the link references rather than for the link itself


       -m     fill width with a comma separated list of entries


       -n, --numeric-uid-gid

              like -l, but list numeric user and group IDs


       -N, --literal

              print raw entry names (don’t treat e.g. control characters specially)


       -o     like -l, but do not list group information


       -p, --indicator-style=slash

              append / indicator to directories


       -q, --hide-control-chars

              print ? instead of non graphic characters


       --show-control-chars

              show  non graphic characters as-is (default unless program is ‘ls’ and

              output is a terminal)


       -Q, --quote-name

              enclose entry names in double quotes


       --quoting-style=WORD

              use quoting style  WORD  for  entry  names:  literal,  locale,  shell,

              shell-always, c, escape


       -r, --reverse

              reverse order while sorting


       -R, --recursive

              list subdirectories recursively


       -s, --size

              print the allocated size of each file, in blocks


       -S     sort by file size


       --sort=WORD

              sort by WORD instead of name: none -U, extension -X, size -S, time -t,

              version -v


       --time=WORD

              with -l, show time as WORD instead of  modification  time:  atime  -u,

              access  -u, use -u, ctime -c, or status -c; use specified time as sort

              key if --sort=time


       --time-style=STYLE

              with -l, show  times  using  style  STYLE:  full-iso,  long-iso,  iso,

              locale, +FORMAT.  FORMAT is interpreted like ‘date’; if FORMAT is FOR-

              MAT1FORMAT2, FORMAT1 applies to non-recent files and  FORMAT2

              to  recent  files;  if  STYLE  is  prefixed with ‘posix-’, STYLE takes

              effect only outside the POSIX locale


       -t     sort by modification time


       -T, --tabsize=COLS

              assume tab stops at each COLS instead of 8


       -u     with -lt: sort by, and show, access time with -l: show access time and

              sort by name otherwise: sort by access time


       -U     do not sort; list entries in directory order


       -v     natural sort of (version) numbers within text


       -w, --width=COLS

              assume screen width instead of current value


       -x     list entries by lines instead of by columns


       -X     sort alphabetically by entry extension


       -1     list one file per line


       SELinux options:


       --lcontext

              Display security context.   Enable -l. Lines will probably be too wide

              for most displays.


       -Z, --context

              Display security context so it fits on most displays.   Displays  only

              mode, user, group, security context and file name.


       --scontext

              Display only security context and file name.


       --help display this help and exit


       --version

              output version information and exit


       SIZE  may  be (or may be an integer optionally followed by) one of following:

       KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.


       Using color to distinguish file types is disabled both by  default  and  with

       --color=never.   With  --color=auto,  ls emits color codes only when standard

       output is connected to a terminal.  The LS_COLORS  environment  variable  can

       change the settings.  Use the dircolors command to set it.


   Exit status:

       0      if OK,


       1      if minor problems (e.g., cannot access subdirectory),


       2      if serious trouble (e.g., cannot access command-line argument).


AUTHOR

       Written by Richard M. Stallman and David MacKenzie.


REPORTING BUGS

       Report ls bugs to bug-coreutils@gnu.org

       GNU coreutils home page:

       General help using GNU software:

AUTHOR

       Written by Richard M. Stallman and David MacKenzie.


REPORTING BUGS

       Report ls bugs to bug-coreutils@gnu.org

       GNU coreutils home page:

       General help using GNU software:

       Report ls translation bugs to


COPYRIGHT

       Copyright 2010 Free Software Foundation, Inc.  License GPLv3+: GNU GPL ver-

       sion 3 or later .

       This is free software: you are free to change and redistribute it.  There  is

       NO WARRANTY, to the extent permitted by law.


SEE ALSO

       The full documentation for ls is maintained as a Texinfo manual.  If the info

       and ls programs are properly installed at your site, the command


              info coreutils 'ls invocation'


       should give you access to the complete manual.


GNU coreutils 8.4                  May 2016                              LS(1)

在这里完整的介绍了ls这个命令以及他的选项,都是英文的,可能对于刚开始学习的童鞋觉得英语是一个挑战,我想说是的,但其实计算机英语很好学习的,你不用像上学时那样去背去拼写,只要你认识他理解他的意思就好,因为我本身英文就不是很好~但只要你坚持每天都去背一些单词理解并认识它,相信不用很久就能学通了~

下面为大家简单总结了一下man命令的用法:

  [root@localhost ~]# man ls

或者回车:向下翻一行

:向上翻一行

按空格或者PageDown:向下翻一页

按PageUp:向上翻一页

关注的点

NAME:命令的名字

SYNOPSIS:语法

DESCRIPTION:简要的描述

EXAMPLES:例子 

man手册的搜索

/关键字: 

假设想要查找-r选项的帮助

/-r: 

输入n:继续查找下一个 next:下一个

输入N:向上搜索

man的级别:我们需要关注的级别

1 User Commands 用户命令

5 File Formats and Conventions 文件格式和约定

[root@localhost ~]# man passwd —— 查看的是passwd命令的帮助

[root@localhost ~]# man 5 passwd —— 查看的是/etc/passwd文件的帮助

除了man这个命令,我们linux还为你准备了help!救命~其实help更倾向于你本身掌握这个命令,但忘记了它的某些选项时使用的,它不像man那样详细。

这里引入一个概念:

内部命令:是shell本身自带的命令

外部命令:一般是用户安装软件之后产生的命令

[root@localhost ~]# ls --help

Usage: ls [OPTION]... [FILE]...

List information about the FILEs (the current directory by default).

Sort entries alphabetically if none of -cftuvSUX nor --sort.


Mandatory arguments to long options are mandatory for short options too.

  -a, --all                  do not ignore entries starting with .

  -A, --almost-all           do not list implied . and ..

      --author               with -l, print the author of each file

  -b, --escape               print octal escapes for nongraphic characters

      --block-size=SIZE      use SIZE-byte blocks.  See SIZE format below

  -B, --ignore-backups       do not list implied entries ending with ~

  -c                         with -lt: sort by, and show, ctime (time of last

                               modification of file status information)

                               with -l: show ctime and sort by name

                               otherwise: sort by ctime

  -C                         list entries by columns

      --color[=WHEN]         colorize the output.  WHEN defaults to `always'

                               or can be `never' or `auto'.  More info below

  -d, --directory            list directory entries instead of contents,

                               and do not dereference symbolic links

  -D, --dired                generate output designed for Emacs' dired mode

  -f                         do not sort, enable -aU, disable -ls --color

  -F, --classify             append indicator (one of */=>@|) to entries

      --file-type            likewise, except do not append `*'

      --format=WORD          across -x, commas -m, horizontal -x, long -l,

                               single-column -1, verbose -l, vertical -C

      --full-time            like -l --time-style=full-iso

  -g                         like -l, but do not list owner

      --group-directories-first

                             group directories before files.

                               augment with a --sort option, but any

                               use of --sort=none (-U) disables grouping

  -G, --no-group             in a long listing, don't print group names

  -h, --human-readable       with -l, print sizes in human readable format

                               (e.g., 1K 234M 2G)

      --si                   likewise, but use powers of 1000 not 1024

  -H, --dereference-command-line

                             follow symbolic links listed on the command line

      --dereference-command-line-symlink-to-dir

                             follow each command line symbolic link

                             that points to a directory

      --hide=PATTERN         do not list implied entries matching shell PATTERN

                               (overridden by -a or -A)

      --indicator-style=WORD  append indicator with style WORD to entry names:

                               none (default), slash (-p),

                               file-type (--file-type), classify (-F)

  -i, --inode                print the index number of each file

  -I, --ignore=PATTERN       do not list implied entries matching shell PATTERN

  -k                         like --block-size=1K

  -l                         use a long listing format

  -L, --dereference          when showing file information for a symbolic

                               link, show information for the file the link

                               references rather than for the link itself

  -m                         fill width with a comma separated list of entries

  -n, --numeric-uid-gid      like -l, but list numeric user and group IDs

  -N, --literal              print raw entry names (don't treat e.g. control

                               characters specially)

  -o                         like -l, but do not list group information

  -p, --indicator-style=slash

                             append / indicator to directories

  -q, --hide-control-chars   print ? instead of non graphic characters

      --show-control-chars   show non graphic characters as-is (default

                             unless program is `ls' and output is a terminal)

  -Q, --quote-name           enclose entry names in double quotes

      --quoting-style=WORD   use quoting style WORD for entry names:

                               literal, locale, shell, shell-always, c, escape

  -r, --reverse              reverse order while sorting

  -R, --recursive            list subdirectories recursively

  -s, --size                 print the allocated size of each file, in blocks

  -S                         sort by file size

      --sort=WORD            sort by WORD instead of name: none -U,

                             extension -X, size -S, time -t, version -v

      --time=WORD            with -l, show time as WORD instead of modification

                             time: atime -u, access -u, use -u, ctime -c,

                             or status -c; use specified time as sort key

                             if --sort=time

      --time-style=STYLE     with -l, show times using style STYLE:

                             full-iso, long-iso, iso, locale, +FORMAT.

                             FORMAT is interpreted like `date'; if FORMAT is

                             FORMAT1FORMAT2, FORMAT1 applies to

                             non-recent files and FORMAT2 to recent files;

                             if STYLE is prefixed with `posix-', STYLE

                             takes effect only outside the POSIX locale

  -t                         sort by modification time

  -T, --tabsize=COLS         assume tab stops at each COLS instead of 8

  -u                         with -lt: sort by, and show, access time

                               with -l: show access time and sort by name

                               otherwise: sort by access time

  -U                         do not sort; list entries in directory order

  -v                         natural sort of (version) numbers within text

  -w, --width=COLS           assume screen width instead of current value

  -x                         list entries by lines instead of by columns

  -X                         sort alphabetically by entry extension

  -1                         list one file per line


SELinux options:


  --lcontext                 Display security context.   Enable -l. Lines

                             will probably be too wide for most displays.

  -Z, --context              Display security context so it fits on most

                             displays.  Displays only mode, user, group,

                             security context and file name.

  --scontext                 Display only security context and file name.

      --help     display this help and exit

      --version  output version information and exit


SIZE may be (or may be an integer optionally followed by) one of following:

KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.


Using color to distinguish file types is disabled both by default and

with --color=never.  With --color=auto, ls emits color codes only when

standard output is connected to a terminal.  The LS_COLORS environment

variable can change the settings.  Use the dircolors command to set it.


Exit status:

 0  if OK,

 1  if minor problems (e.g., cannot access subdirectory),

 2  if serious trouble (e.g., cannot access command-line argument).


Report ls bugs to bug-coreutils@gnu.org

GNU coreutils home page:

General help using GNU software:

For complete documentation, run: info coreutils 'ls invocation'

和man相比是不是精简了许多呢~ 大家可以在虚拟机上试一试,如果你的练习能敲坏一个键盘,那你一定会有质的飞跃,所以多练习是学习linux的不二选择。

如何查看命令的类型? type

[root@localhost ~]# type cd ————内部命令

cd is a shell builtin //builtin:内建的

[root@localhost ~]# help cd

[root@localhost ~]# type if

if is a shell keyword //keyword:关键字 关键字也是内部命令

[root@localhost ~]# help if


[root@localhost ~]# type whoami ———— 外部命令

whoami is /usr/bin/whoami

[root@localhost ~]# whoami --help

[root@localhost ~]# ls --help

如何查看系统中有哪些内部命令?

[root@localhost ~]# help

2、 info 查看命令的来源、功能、选项等等

[root@localhost ~]# info ls

按空格向下翻页,按q退出

3、whatis 查看命令的用途的

[root@localhost ~]# whatis ls

ls (1) - list directory contents

ls (1p) - list directory contents

whatis查询时候使用的是whatis数据库

数据库文件/var/cache/man/whatis

/var :存放经常变化的数据,比如:日志、缓存等 variable:可变的、变量(忘记的复习上一节的目录结构)


命令的查看及获取帮助说完了,下面进入一个炒鸡重要的环节!vim!!! 他是linux下的文本编辑器,我们一定要熟练的使用它,以及linux文本处理三剑客,grep,sed,awk,这三个命令在以后的讲解中我们会详细的带你理解它,现在暂时不用去学习

说道vim,它和vi是什么关系呢?你可以把vim当做vi的升级版,如果你安装的虚拟机是minimal的,那你需要手动安装vim,如果是图形界面的,自带vim,建议大家前期学习都装带图形界面的,能让你有一个缓冲的时间。

vim有三种常见的工作模式

命令模式

编辑模式(插入模式)

末行模式(尾行模式)

这三种模式如何切换呢?我们看一下图片

linux获取命令的帮助及vi\vim的使用

在平时的使用中,打开文件后默认进入命令模式,按下aioAIO任意一个字母进入编辑模式,如果想要搜索或者设置一些选项按下Esc在按下“:”输入即可,比如我想为当前操作文本添加行号,那么我可以在末行模式下输入"set nu "回车,你会发现所有行最前面都有了标号,如果你想永久修改,需要更改配置文件:

 [root@localhost ~]# vim /etc/vimrc

在最后一行添加           set nu 

  如果你们没看懂没关系,下面为大家总结了一些基本的使用方式:

  [root@localhost ~]# vim /etc/passwd

-- 光标的移动

上:k

下:j

左:h

右:l

-- 行内跳转

快速到行首:【Home】 或者 ^(shift+6)

快速到行尾:【End】 或者 $(shift+4)

-- 行间跳转

快速回到文件的第一行:gg

到任意行: ngg (n为数字)

5gg:跳转到第5行

跳转到最后一行:G 

-- 删除、剪切 delete

dd:删除当前行 *

ndd:删除包含当前行在内的n行 *

d$:删除从光标所在位置到行尾 *

dG:删除从当前行到文件的最后一行 *

dw:删除从当前位置到一个单词结束

x:

x:删除当前字符 (一个字符) *

X:删除光标所在位置前面的一个字符

-- 复制 y yank

yy:复制当前行

nyy:复制从当前行开始的n行

-- 粘贴 p paste

p:粘贴到当前行的下一行 *

将第8行的内容剪切到第2行下面

8gg ——> dd ——> 2gg ——> p 

np:粘贴n次 

3p —— 粘贴3遍


d和p组合,相当于剪切粘贴

y和p组合,相当于复制粘贴

-- 撤销 u undo

u

-- 重做 redo

ctrl + r 对撤销的反撤销操作

-- 替换 replace

r:替换当前字符

按r,输入替换后的字符

x ——> 8

操作:r -- 8

R:替换从当前位置开始的一串字符,直到按下【Esc】为止

(二)编辑模式

i:在光标前面插入新的内容

I:在当前行的行首插入内容

a:在光标后面追加新的内容 append:追加

A:在当前行的行尾插入内容

o:在当前行的下一行插入新行

O:在当前行的上一行插入新行

(三)末行模式

w —— write 写 

q —— quit 退出

! —— 强制

x 也是保存

具体用法:

:wq —— 保存修改并退出 等价于 :x

:wq! —— 强制保存退出

:w —— 只保存,不退出

:1,5w /tmp/pass15 ##将文件的前5行另存到/tmp/pass15文件

:5,$w /tmp/pass666 # $表示最后一行

:q —— 不保存退出

:q! —— 不保存强制退出

:set nu —— 显示行号

:set nonu —— 取消显示行号

vim编辑器一定要用的十分熟练,以后我们搭建服务,写shell脚本等等都必不可少的,一定要多练习,以上是对于vim的一些基本的操作流程的总结,下面总结的是一些小技巧,在你将来批量修改的时候很适用!

vim的搜索

/关键字:正向搜索,从当前位置开始向下搜索

n:下一个

N:上一个


vim中的替换 ****

:s///

:s///g

:%s///

:%s///g

:5,8s///

:5,8s///g

g:全局的,替换的是一行中的多个

例子: 

:s/root/666/ 将当前行第一个匹配到的root替换成666

:s/root/666/g 将当前行中所有匹配到的root替换成666

:%s/root/666/ 将整篇文件每行第一个匹配到的root替换成666

:%s/root/666/g 将整篇文件中所有匹配到的root替换成666

:1,$s/root/666/g 将整篇文件中所有匹配到的root替换成666

:5,8s/bin/8888888/g 将第5行到第8行中所有的bin替换成8888888

/// ### %%% @@@ 等价的

样例文件

1 xixihaha/dou/hehe

2 xixihaha/dou/hehe

3 xixihaha/dou/hehe

4 xixihaha/dou/hehe

5 xixihaha/dou/hehe

6 xixihaha/dou/hehe

/dou/替换成mei/shi/xian/de

:%s@/dou/@mei/shi/xian/de@

插曲

只想替换bin,不替换sbin

:5,8s/\/8888888/g 

\<:词首定位符

\

bin binary

\>:词尾定位符

bin\>

sbin bin

\ 只能是bin

^:行首定位符

$:行尾定位符

vim的其他模式 

可视化模式、块选模式

删除每行的第一个字符

gg ——> Ctrl + v ——> G ——> x 或者 delete

给文件批量加注释

:%s/^/#/

用途之一:

[root@localhost ~]# cat douni.txt 

#xixihaha/dou/hehe

#xixihaha/dou/hehe

#xixihaha/dou/hehe

#xixihaha/dou/hehe

#xixihaha/dou/hehe

#xixihaha/dou/hehe

批量取消注释

gg ——> Ctrl + v ——> G ——> x 或者 delete

或者

:%s/^#//

大家可以复制一些文件用来练习,比如将passwd文件复制到tmp中用vim编辑器打开进行操作。

[root@localhost ~]# cp /etc/passwd /tmp

[root@localhost ~]# vim /tmp/passwd 

尽量不要去拿原来的配置文件玩耍,因为可能一不小心你的系统就起不来了~所以复制出来我们在玩耍。

cp :copy  复制的意思,后面加要复制的目录或文件  然后指定位置。

未来几天我们总的介绍一些linux入门所使用的一系列的基本命令,别着急,面包会有的,牛奶也会有的。