Shell以其稳定、高效和灵活称为系统管理员的首选。下面将介绍Shell的基本命令,包括目录切换、查找并查看文件、查看用户信息等。

1、Shell简介

    Shell是一个程序,它在用户和操作系统之间提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的shell把命令转换成指令码发给操作系统。

2、印刷约定

    $:表示用户输入

    #:表示正在以root身份执行命令

3、浏览你的硬盘

-- 进入根目录(cd命令)并查看根目录下的目录结构(ll命令)
csv-cbweb01-cbossweb%cd /
Directory: /
csv-cbweb01-cbossweb%ll
总用量 220
drwxr-xr-x    2 root root   4096  5月  5 2010 selinux/
drwxr-xr-x    2 root root   4096  5月  5 2010 mnt/
drwx------    2 root root  16384  7月 30 2013 lost+found/
drwxr-xr-x   13 root root   4096  7月 30 2013 usr/
drwxr-xr-x    4 root root   4096  7月 30 2013 srv/
drwxr-xr-x   15 root root   4096  7月 30 2013 var/
drwxr-xr-x    3 root root   4096  7月 30 2013 opt/
drwxr-xr-x    4 root root   4096  7月 31 2013 home/
drwxr-xr-x   13 root root   4096  9月 10 2015 lib/
drwxr-xr-x    8 root root  12288  9月 10 2015 lib64/
drwxr-xr-x    2 root root   4096  9月 10 2015 bin/
drwxr-xr-x    3 root root  12288  9月 10 2015 sbin/
drwxr-xr-x    4 root root   4096  9月 10 2015 boot/
drwxr-xr-x    2 root root   4096  9月 11 2015 media/
drwxr-xr-x   18 1000 1000   4096  9月 16 2015 Python-2.7.10/
drwxr-xr-x   24 root root   4096 12月 21 01:31 ../
drwxr-xr-x   24 root root   4096 12月 21 01:31 ./
dr-xr-xr-x  164 root root      0 12月 21 09:31 proc/
drwxr-xr-x   12 root root      0 12月 21 09:31 sys/
drwxr-xr-x   16 root root   4160 12月 21 09:32 dev/
drwx------   22 root root   4096  2月 18 10:42 root/
drwxr-xr-x    5 root root   4096  2月 18 11:05 app/
drwxr-xr-x  107 root root  12288  2月 18 11:05 etc/
drwxrwxrwt 1792 root root 102400  5月 27 12:30 tmp/
csv-cbweb01-cbossweb%cd /home
Directory: /home
csv-cbweb01-cbossweb%ll
总用量 16
drwxr-xr-x  5 bsm  users 4096  7月 30 2013 bsm/
drwxr-xr-x  6 zjwg users 4096  7月 30 2013 zjwg/
drwxr-xr-x  4 root root  4096  7月 31 2013 ./
drwxr-xr-x 24 root root  4096 12月 21 01:31 ../
csv-cbweb01-cbossweb%

-- 用Tab制表符自动补全

4、查看目录和文件

-- 显示当前目录 pwd
csv-cbweb01-cbossweb%cd /usr/local/bin/
Directory: /usr/local/bin
csv-cbweb01-cbossweb%pwd
/usr/local/bin

-- 改变系统目录 cd
csv-cbweb01-cbossweb%cd /usr/local/bin/
Directory: /usr/local/bin
csv-cbweb01-cbossweb%pwd
/usr/local/bin
csv-cbweb01-cbossweb% cd ../
Directory: /usr/local
csv-cbweb01-cbossweb%pwd
/usr/local

-- 列出目录内容 ls和ls -l
csv-cbweb01-cbossweb%ls
csv-cbweb01-cbossweb%ls -l

-- 查看文件cat|more[filename]
-- cat命令会一次将所有内容全部显示在屏幕上。因此不常用
-- more命令会一页一页来显示内容。空格键翻页,enter键滚行,Q键退出
csv-cbweb01-cbossweb%more fbst

-- 阅读文件的开头和结尾
-- head用于显示文件的开头用-n参数指定显示的行数
-- tail用于显示文件的结尾,用法与head相同

5、更好的文本阅读工具:less

less的more非常相似,只是功能更加强大。less在屏幕底部显示一个冒号:等待用户的输入命令。空格向下翻页,B键向上翻页。使用"/"查找想要的内容,Q键退出

6、查找文件内容:grep

grep[options] pattern[file...]
-- 为了在文件day中查找包含un的行
grep un day

7、在指定范围内找到文件:find

find[OPTION] [path...][expression]
-- 在user/bin目录中查找zip命令
csv-cbweb01-cbossweb%cd /
Directory: /
csv-cbweb01-cbossweb%find /usr/
bin/               lib/               sbin/              [email protected]
games/             lib64/             share/             X11R6/
include/           local/             src/               x86_64-suse-linux/
csv-cbweb01-cbossweb%find /usr/bin/ -name zip -p
path   perm   print  print0 printf prune  
csv-cbweb01-cbossweb%find /usr/bin/ -name zip -print
/usr/bin/zip
csv-cbweb01-cbossweb%
--find命令还能够指定文件的类型,通过type参数来定位文件类型。
    -type -b快设备文件    -c 字符设备文件     -d 目录文件
          -f普通文件    -p命名管道    l符号链接

8、快速定位文件

-- 查看所有doc文件的路径
locate *.doc

9、查找特定程序:whereis

    whereis命令主要用于查找程序文件

csv-cbweb01-cbossweb%whereis find
find: /usr/bin/find /usr/bin/X11/find /usr/share/man/man1p/find.1p.gz /usr/share/man/man1/find.1.gz

10、用户及版本信息查看

--who命令查看当前系统中有那些人登陆
csv-cbweb01-cbossweb%who
cbossweb pts/0        2016-05-27 12:28 (10.73.141.8)
cbossweb pts/1        2016-05-26 10:42 (10.73.141.43)
cbossweb pts/4        2016-05-26 16:26 (10.73.141.43)
-- 如果忘记了自己是以什么身份登陆到系统,用whoami
csv-cbweb01-cbossweb%whoami 
cbossweb
-- uname -a 查看当前系统的版本信息
csv-cbweb01-cbossweb%uname -a
Linux csv-cbweb01 3.0.101-63-default #1 SMP Tue Jun 23 16:02:31 UTC 2015 (4b89d0c) x86_64 x86_64 x86_64 GNU/Linux
csv-cbweb01-cbossweb%uname -r
3.0.101-63-default

11、寻求帮助 -- man命令

    man命令可以方便地获取某个命令的帮助信息

csv-cbweb01-cbossweb%man find
Man: 寻找所有匹配的手册页
 * find (1)
   find (1p)
Man: 您需要什么手册页?
...

12、获取命令简介 -- whatis和apropos

    man手册中的长篇大论显得太罗嗦了,很多时候我们只是想了解一个命令是干嘛的,用whatis查看

csv-cbweb01-cbossweb%whatis find
find (1p)            - find files
find (1)             - search for files in a directory hierarchy

    与之相反的命令是apropos,这个命令可以通过使用手册中反查到命令。例如,如果用户想要搜索一个文件,而又想不起来应该使用哪一个命令的时候,可以求助apropos

apparmor.d           applydeltaiso        apt
csv-cbweb01-cbossweb%apropos search
anemotaxis (6x)      - directional search on a plane.
apropos (1)          - search the manual page names and descriptions
ausearch (8)         - a tool to query audit daemon logs
ausearch-expression (5) - audit search expression format
badblocks (8)        - search a device for bad blocks
bsearch (3)          - binary search of a sorted array
bsearch (3p)         - binary search a sorted table
bzgrep (1)           - search possibly bzip2 compressed files for a regular ...
Class::ISA (3pm)     - report the search path for a class's ISA tree
CPANPLUS::Internals::Search (3pm) - (δ)
find (1)             - search for files in a directory hierarchy
getgrnam (3p)        - search group database for a name
getgrnam_r (3p)      - search group database for a name
getpwnam (3p)        - search user database for a name
getpwnam_r (3p)      - search user database for a name
getpwuid (3p)        - search user database for a user ID
getpwuid_r (3p)      - search user database for a user ID
gnome-search-tool (1) - the GNOME Search Tool
grep (1p)            - search a file for a pattern
grepjar (1)          - search files in a jar file for a pattern
hcreate (3p)         - manage hash search table
hdestroy (3p)        - manage hash search table
...
-- 可以看到apropos命令将包含“search”的条目一并列出,用户能够从中找到自己想要的那个

13、总结

  • 命令行是Linux的精华部分。所有的系统管理操作都可以在Shell下完成

  • 有很多不同的Shell可供选择。目前Linux上使用最广泛的是BASH

  • 可以使用命令行补全和通配符提高使用Shell的效率

  • pwd命令用于显示当前目录信息

  • cd命令在目录键切换,这是linux中使用最频繁的命令之一

  • ls命令提供了大量选项供用户查看目录内容

  • dir和vdir是ls命令的简化版

  • 使用cat命令查看文件(全部文件内容)。more命令可以分页显示一个较长文本文件

  • 使用head和tail命令显示一个文件头和文件尾,-n指定显示多少行

  • less命令提供了查看文件的更高级功能。man命令就是通过调用less显示帮助手册信息的。

  • grep程序时查找文件内容的利器

  • find命令可以按需查找某个特定文件

  • locate命令快速定位文件位置

  • whereis命令查找某个特定程序的所在位置

  • who查看当前系统中有那些人登陆

  • uname用于显示当前系统信息

  • whatis和apropos命令能够从man手册中提取简要信息