目录

一.Linux基础命令

二.Linux help、man帮助命令

三.目录及文件基本操作

一.Linux基础命令

(一).Shell

  Linux系统中运行的一种特殊的程序

  在用户和内核之间充当“翻译官”

  用户登录Linux系统时,自动加载一个Shell程序

  Bash是Linux系统中默认的Shell程序

Linux常用命令_hash表


Shell换句话说就是 用户操作的指令给shell,shell将指令内核可以识别的计算机语音传递给内核,内核根据指令调动硬件完成命令。

Shell是Linux系统中后台运行的一种特殊的程序,也可理解成一种特殊法人软件,提供了用户与内核进行交互操作的一种接口,用户使用应用程序发布指令(如用浏览器访问页面),Shell去通知操作系统需要完成什么样的操作(相当于解释层),内核相当于操作系统去指挥硬件,硬件才能工作,否则无法执行交互。

Linux下一切皆是文件。

(二).Linux命令的分类
1.内部命令和外部命令的区别

内部命令:

  1.集成于Shell解释器内部的一些特殊的指令,也称为内建指令

  2.属于Shell的一部分

  3.没有单独对应的系统文件

  4.自动载入内存,可以直接使用

外部命令:

  1.Linux  系统中能够完成特定功的脚本文件或者二进制程序

  2.属于Shell解释器之外的命令

  3.每个外部命令对应了系统中的一个文件

  4.必须知道其对应的文件位置,由Shell加载后才能执行

​(三).如何查看内部命令

  1.内部命令help-

    查看Shell内部命令的帮助信息命令的“--help”选项

  2.enable:用于开启或关闭shell内建指令

   如要执行的文件名称与shell内建指令相同,可用enable -n来关闭       shell内建指令,若不加-n参数,enable可重启关闭的指令

   语法 enable [-n] [-all] 内嵌指令。

   参数说明:-n 关闭指定的内建命令。

                    -all 显示shell左所有关闭与启动的内建指令

   3.type -a 命令   内嵌为内部命令

                          显示目录文件为外部命令

   4.示例:

        [root@ky17 yz]# type -a ls

        ls 是 `ls --color=auto' 的别名

       ls 是 /usr/bin/ls

       [root@ky17 yz]# type cd

       cd 是 shell 内嵌


       [root@ky17 yz]# cd /opt/

      [root@ky17 opt]# enable -n cd    禁用内部命令cd

      [root@ky17 opt]# cd /opt/       

      [root@ky17 opt]# enable cd      重启cd命令

      [root@ky17 opt]# cd /home/

      root@ky17 home]#

    5.hash(哈希)命令

     Linux系统下会有一个hash表,当刚开机是hash表为空,每当你执     行完一个命令时,hash表会记录下这个命令的路径,就相当于缓存     一样。第一次去执行命令Shell解释器默认从PASH路径下寻找该命       令    的路径,当第二次使用该命令时,shell解释器就会首先查看         hash表,没有该命令才会去PASH路径去查找。

       作用:大大提高了命令的调用速率

         -l 显示hash表内容  (也可不加,直接hash 前面的数字表示使用次数)

         -r 清除hash表

        -d 删除表中某一条

        -t 查看命令路径

        -p /usr/bin/   往hash表中增加一条

       6.Linux命令行的格式

             通用的命令行使用格式

            命令字  [选项]  [参数]    (英文字符区分大小写)

            命令字:是整条命令最关键的一步(就是你要做什么)

            唯一确定的一条命令

            选项: 短格式选项  使用“-”符号引导 (多个单字符选项可以组合一起使用)

            长格式      使用“--”符号引导  (所有参数信息都在里面)

     参数:命令字的处理对象,可以是文件名,目录(路径)或用户名等内容,个数可以是0到多个。

     7.编辑Linux命令行的辅助操作

           Tab键 :    自动补齐

          反斜杠 \ :    强制换行

          Ctrl+U:     清空至行首

          Ctrl+K:     清空至行尾

Ctrl+A:     光标跳至行首

Ctrl+E:     光标跳至行尾

Ctrl+L:      清屏

Ctrl+C:      撤销本次命令编辑

二.Linux help、man帮助命令

(一).help

   内部命令 help 查看shell内部命令的帮助信息

 (二).--help

   适用于大多数Linux外部命令

   ls--help  查看ls命令的所有使用说明

 (三).man

   使用上下方向键滚动文本

   使用up、down键翻页

   按住Q或者q退出

   按\查找内容

​          (四).导出man手册

               [root@ky17 home]# man ls

              [root@ky17 home]# man ls |col -b > lshelp.txt

              [root@ky17 home]# ls

              ceshi.tar.gz  kgc  lshelp.txt  shaosen

              导出文件到桌面

              第一种:点击传输按键

              第二种:sz lshelp.txt

              (五).示例

                  man ls |col -b > lshelp.txt

                在这个例子中,col是一个命令程序,用于过滤文本中的一些特殊的控制字符,另外还使用了“|”和“>”符号。这是Shell环境中两种特殊的功能应用,分别称为管道符和定向输出,其含义如下:

                管道:使用竖杠符号“|”表示,用于将前面的命令的屏幕输出结果作为后面命令的操作对象(输入)

                定向输出:用“>”表示,前面的命令成功执行以后,其屏幕输出结果将保存到>后面指定的文件中,而不是直接输出到桌面,因此成为重定向

    三.目录及文件基本操作

   (一).pwd

       查看当前的工作目录,显示当前所在的工作目录位置

       pwd    文件名

     (二).cd

       切换工作目录

      将用户的工作目录切换到其他位置

        cd   目标位置      切换到目标位置

        cd ~

        cd        若不指定目标位置,切换到当前用户宿主目录

        cd -       切换到上一次执行cd命令之前所在的目录

        cd ../      切换到上一次目录(父目录)

         cd ../../      切换到父目录的父目录  

       相对路径:不以根为开始

       绝对路径:以根为开始

      (三).ls

​      英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

       语法

       ls [选项] [文件或目录]

      选项 :

      -l 将文件信息属性详细列出。除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出,通常直接使用ll,因为设置了别名

      -R 递归显示,比如一个目录下还有文件,则把那个文件一起列出

      -d 查看目录本身信息,不显示目录下的内容

      -i 显示inode值(节点)

      -h 友好显示文件大小

     -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)

     -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)

     -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

     -r 将文件以相反次序显示(原定依英文字母次序)

    -t 将文件依建立时间之先后次序列出

    --color:  颜色

(四).通配符

      “?”匹配文件名中一个未知字符

      “*”匹配文件中的任意多个字符

         通配符扩充:

       符号             | 效果                                                          

        | ?             | 匹配一个字符    f?.txt                                         

        | *              | 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件 |

       |{1..10}          |1到10                                                        

       |{a..z}           | a b c ...z                                                   

       |{A..Z}           | A B C .....Z                                                 

       |[123]           | 取其中之一有就显示没有也无所谓                                  

       |[a-z]            |范围需要注意

       |[0-9]           | 匹配数字范围(0123456789)                                       

       |\              | 转义符,表示原来的意思                                          

       | [[:lower:]]      | 小写字母表示 a-z                                               

       | [[:upper:]]      | 大写字母表示 A-Z                                               

      | [^zhou]        | 匹配列表中的所有字符以外的字符                                      | [[:digit:]]       | 任意数字,相当于0-9  

(五).示例

[root@localhost ~]# ls -ahl

total 28K

dr-xr-x---.  2 root root  135 Dec 16 02:34 .

dr-xr-xr-x. 17 root root  224 Dec 14 01:38 ..

-rw-------.  1 root root 1.3K Dec 14 01:38 anaconda-ks.cfg

-rw-------.  1 root root 1.2K Dec 16 02:34 .bash_history

-rw-r--r--.  1 root root   18 Dec 28  2013 .bash_logout

-rw-r--r--.  1 root root  176 Dec 28  2013 .bash_profile

-rw-r--r--.  1 root root  176 Dec 28  2013 .bashrc

-rw-r--r--.  1 root root  100 Dec 28  2013 .cshrc

-rw-r--r--.  1 root root  129 Dec 28  2013 .tcshrc

从上面可以看到,每一行都有7列,分别是:

第一列共10位,第1位表示文档类型,d表示目录文件directory,-表示普通文件,l表示链接文件link,b 块设备文件block (硬盘,U盘等),p管道文件 pipe, s套接文件socket, c表示一次性读取设备,如鼠标、键盘等。

后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,

权限顺序为:readable、writable、excutable。如:-r-xr-x---的含义为当前文档

是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限。

第二列表示链接数,表示有多少个文件链接到inode号码。

第三列表示拥有者

第四列表示所属群组

第五列表示文档容量大小,单位字节

第六列表示文档最后修改时间,注意不是文档的创建时间哦

第七列表示文档名称。以点(.)开头的是隐藏文档

(六).Alias

通过别名机制简化常用或者比较长的命令

alias  命名别名=‘命令’

示例:alias xyz=‘vi /etc/sysconfig/neiwork-stripts/ifcfg-ens33’

将‘vi /etc/sysconfig/neiwork-stripts/ifcfg-ens33’设置为别名xyz

永久添加别名:vim/root/.bashrc 进入再把alias xyz=‘vi /etc/sysconfig/neiwork-stripts/ifcfg-ens33’输一遍,输入init 6重启即可完成。

别名>内部>hash>外部命令  (先查找别名  再查找内部命令,再到缓存,最后外部命令)

(七).du

​  统计指定目录或文件所占磁盘空间的大小

 du [选项] [文件或目录]

     常见选项:

  -a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录

  -h 显示每一个文件以及大小,单位只KB ,MB,GB

  -s 显示文件或整个目录的大小,而不会把他们都显示出来 默认单位是KB

 du -sh * 生产环境常这样搭配使用统计当前目录下所有文件的大小并显示出来,常用于磁盘水位过高的情况 (不显示隐藏文件)

  示例:统计出/var/log目录所占空间的大小 并以友好的方式显示

      [root@ky17 /]# du -sh /var/log

8.9M /var/log

[root@ky17 /]#

(八).mkdir

      创建新的空目录

      mkdir [选项] 目录位置及名称

      选项:

    -p: 一次性创建嵌套的多层目录

     示例:在当前目录下创建名为 ceshi 的子目录

mkdir ceshi

  [root@ky17 aa]# mkdir a b c d e

  [root@ky17 aa]# ls

  a  b  c  d  e

 在当前目录下一次性创建a.b.c.d.e目录

(九).touch

更新文件的时间标志

   经常用于创建多个新的空文件

touch 文件

      示例:

   [root@ky17 aa]# touch 789

[root@ky17 aa]# ls

1  3  5  aa  bb  d  789 xuexi2  xuexi4

2  4  a  b   c   e  xuexi1      xuexi3  xuexi5

在aa目录下创建789文件

[root@ky17 aa]# touch yz{1..5}

[root@ky17 aa]# ls

1  4  aa  c      e     yz3  789  

2  5  b   d     yz1 yz4      

3  a  bb    yz2  yz5        

[root@ky17 aa]#

  一次性创建yz为名的1-5个文件

(十).echo

   创建新文件

   echo “haohaoxuexi” > shaopengyu1

   创建shaopengy1文件,并将haoahoxuexi内容输入进去

   示例:

root@ky17 aa]# echo "haohaoxuexi" > shaopengyu1

[root@ky17 aa]# ll

总用量 4

(十一).ln

   ln命令用于为文件或目录建立链接文件(类似于Windows系统中的     快捷方式),提高用户定位文件或定位目录的效率。

   链接文件包括软链接和硬链接两种类型,其中软链接又称为符号链     接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基     本相同

   ln -s  创建软链接,相当于创建一个快捷方式

   ln     创建硬链接,相当于复制了一份副本

   软硬链接的区别:

   硬链接不能跨分区建立连接 无法对文件夹创建

   删除硬件连接可以继续访问硬链接

   软连接可以跨设备  可以支持文件夹

   软连接删除源文件不能访问

(十二).cp

  将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录

   cp 【选项】…源文件或目录…目标文件或目录…

   -f:覆盖目标同名的文件或目录时不进行提醒,而直接强制复制。

   -i:覆盖目标同名的文件或目录时提醒用户确认。

   -p:复制时保存文件的权限、属主及时间标记等属性不变。

   -r:复制目录时必须使用此选项,表示递归复制所有文件及子目录。

   -a:保留权限,复制软链接本身,递归复制

   注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在。

(十三).rm

删除指定的文件或目录

rm【选项】要删除的文件或目录

-f:删除文件或目录时不进行提醒,而直接强制删除。

-i:删除文件或目录时提醒用户确认。(y表示删除,n表示不删除)

-r:删除目录时必须使用此选项,表示递归删除整个目录树(谨慎使用)

注:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。

删除目录下文件时建议最好先切换到目录下再执行rm -rf命令。

(十四).mv

将指定文件或目录转移位置

mv 【选项】…源文件或目录…目标文件或目录

示例:

mv aa/  bb  把当前目录下的aa 移动到当前目录命名为bb(相当于重命名)

mv aa  /opt/bb  把当前目录下的aa 移动到opt下 命名为bb

(十五).which

搜索范围由环境变量PATH决定(echo$PATH)

让系统能识别命令所在文件位置的环境变量PATH

which 命令/程序名 //默认当查找到第一个目标后不再继续查找

which -a 命令/程序名 //在所有搜索路径中查找

示例:

   which ls

   which cd

(十六).find

   采用递归的方式,根据目标的名称、类型、大小等不同属性进行精细查找

find [查找范围] [查找条件表达式]

[查找范围] :查找文件或子目录的目录位置

[查找条件表达式] :查找条件类型

 -name 按名称查找:

       -size 按大小查找:

       -user 按文件属主:

   使用find命令实现多个查找条件

   各表达式之间使用逻辑运算符

    -a表示 而且(and)

    -o表示 或者 (or)

总结

查看及切换目录(pwd、cd、ls、du)

创建目录和文件(mkdir、touch、ln)

复制、删除、移动目录和文件(cp、rm、mv)

查找目录和文件(which、find)