Linux基本命令

基本命令

1、用户

1、  root  :超级用户

2、  普通用户(生产环境一般使用普通用户)

2、终端terminal

1、  设备终端 :鼠标、显示器

2、  物理终端 /dev/console):

1.       控制台

3、  虚拟终端(ttyteletypewriters,/dev/tty#  #[1-6]

1.       Tty  可以有n个,ctrl+alt+F[1-6]

4、  图形终端(/dev/tty7 startx,  xwindows

1.       Centos 6 :ctrl
+Alt+F[1-6]

2.       Centos 7
:
在哪个终端启动,即位于哪个虚拟终端

5、  串行端口(/dev/ttyS#

ttys

6、  伪终端(ptypseudo-tty/dev/pts/#

pts ssh 远程连接

7、  查看当前的终端设备:tty

8、  应用程序附件终端:

1、          支持多个“标签”shell的图形化终端模拟器

2、          Ctrl+shift+n  :创建新窗口

3、          Ctrl+shift+q  :关闭当前窗口

4、          Ctrl+shift+t  :创建一个标签页

5、          Ctrl+shift+w  :关闭一个标签页

6、          Ctrl+pgup/pgdn  :切换上一个/前一个标签页

7、          Ctrl+shift+c  :复制选中的文本

8、          Ctrl+shift+v  :把文本粘贴到当前光标处

3、交互式接口:启动终端后,在终端设备附加一个交互式应用程序

1、    GUI :  Graphic  User Interface

                                    i.              X  protocol,  window manager  ,desktop

                                  ii.              Desktop:  GNOME(C ,图形库gtk)

                                iii.              KDE  (C++,图形库qt)

                               iv.              XFCE(轻量级桌面)

2、    CLI:Command
Line  Interface

Shell 程序:sh bourn  csh   tcsh   ksh

4Shell  Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行

shell 也被称为LINUX 的命令解释器(command interpreter

shell 是一种高级程序设计语言

5GNU Bourne-Again Shell(bash) GNU 计划中重要的工

具软件之一,目前也是 Linux 标准的shell ,与sh 兼容

6、查看当前使用的shellecho ${SHELL}

7、显示当前系统使用的所有的shell   cat
/etc/shells

8、查看系统变量:env  export

9~ :代表家目录

   #  :代表超级目录

   $   :代表普通用户

10、显示提示符格式: echo   $PS1

修改命令提示符 PS1=”[\u@\h  \w]\\$”

PS1=”\[\e[31m\][\u@\h \w]\\$\[\e[0m\]”

\e : \033   \u:当前用户  \h:主机名简称  \H:主机名

\w :当前工作目录  \W:当前工作目录基名 \t :24小时时间格式

\T12小时时间格式  \!:命令历史数  \# :开机后命令历史数

11shell命令分两种:

一种是内部命令  :由内核直接提供

        Help 内部命令列表    

        Enable  command  可以启用命令 

        Enable   -n   command   禁用内部命令

        Enable   -n   查看所有禁用的内部命令

      一种是外部命令  :由系统上的某个二进制文件提供

        查看路径 which  -a  | –skip—alias  command

                   Whereis  command

       区别指定的命令是内部还是外部命令:

                   type  command

12hash hash缓存表

系统初始hash 表为空,当外部命令执行时,默认会从PATH

径下寻找该命令,找到后会将这条命令的路径记录到hash

中,当再次使用该命令时,shell 解释器首先会查看hash 表,

存在将执行之,如果不存在,将会去PATH 路径下寻找。利用

hash缓存表可大大提高命令的调用速率

   hash:会显示最近执行的命令

   hash  –l:显示hash缓存,可作为输入使用

   hash  –t  command:显示命令的路径

   hash  -r  :清除缓存  

13alias   :查询系统中已经存在的别名

           别名前加\ :代表执行其实的命令;单引号也可以;或直接在命令的路径下调用

           \COMMAND”

COMMAND’

/PATH/COMMAND

           alias  name =”name1”   仅在当前shell下有效

          当前用户  ~/.bashrc   所有用户:/etc/bashrc

          取消别名  unalias  name

16Enable  command  可以启用命令,只对内部命令有效,        Enable   -n   command   禁用内部命令

     Enable   -n   查看所有禁用的内部命令

17pwd :显示当前目录

18command  [options]   [argyments]

     选项:用于启用或者关闭命令的某个或某些功能

      短选项:-c  例如 -l  -h

      长选项:–word   ,例如 –all –human—readable

       参数 :命令的作用对象,比如文件名,用户名等

       注意:多选项,以及多参数和命令之间使用空白字符分隔

             取消和结束多个命令的执行:ctrl+c  ctrl+d

\ :一个命令可以用\分成多行

            多个命令可以用分号分开

19date :显示日期和时间

          Linux的两种时钟:系统时钟:由linux内核通过CPU的工作频率进行的

                           硬件时钟:主板

         Hwclock  clock  :显示硬件时钟

                 -s –hctosys  以硬件时钟为准

                 -w –sysytohc  以系统时间为准

         时区:/etc/localtime

         

      Date –s  :修改系统时间

        

       Date –d  :指定具体时间

          (两天前星期几)

      Date +%F  :  当前时间

        

      Date +%Y: m:月 d:日  H:时  M:分  S:秒

        

       Date –date=”3 days ago”

       反引号“ :将命令执行结果作为输出  双引号 、单引号:字符串输出

       Cal  :显示日历   cal  -y  :显示全年日历

20bc  :命令行的计算器

21nano:文本编辑器

22half poweroff   :关机

    Reboot  -f   强制,但不调用shutdown

               -p   切断电源

    Shutdown  :关机或重启

               -r  reboot

               -h  half 

               -c   :取消

               Time  now  :立刻关机

                      +m  :相当时间表示法,多久之后

                       Hhmm  :绝对时间表示,指明具体时间

   Init  0   :关机

        6   :重启

23、用户登录信息命令

    Whoami   :查看当前有效登录用户

    Who      :系统当前所有的登录会话

    W         :显示所有登录的用户以及连接

24screen  :屏幕 

        Screen  -s  name  :开启一个会话

         Screen  -x   name  :加入一个会话

         Ctrl  +   a   +  d  : 退出

        Screen  -r   :恢复刚刚的会话

         Screen  -ls   :显示所有已经打开的screen会话

25echo  :显示字符

       -E  :默认 不支持 \  解释功能

       -n   :不自动换行

        -e   :启用 \ 字符的解释功能

              启用命令选项-e ,若字符串中出现以下字符,则特

别加以处理,而不会将它当成一般文字输出

\a  发出警告声

\b  退格键

\c  最后不加上换行符号

\n  换行且光标移至行首

\r  回车,即光标移至行首,但不换行

\t  插入tab

\\  插入\ 字符

\0nnn  插入nnn (八进制)所代表的ASCII 字符

echo -e
‘\033[43;31;5mmagedu\033[0m’

\xHH 插入HH (十六进制)所代表的ASCII

     显示变量: echo  “$name”  变量会被替换,弱引用

                Echo   $name’变量不会被替换,强引用

26dirname  :获取文件的目录名

    Basename :获取问价你的基名

27uname   :功能说明:uname用来获取电脑和操作系统的相关信息

补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
           -m
或–machine 显示主机的硬件(CPU)
           -n
-nodename 显示主机在网络节点上的名称或主机名称
           -r
或–release 显示linux操作系统内核版本号
           -s
或–sysname 显示linux内核名称
           -v
显示显示操作系统是第几个 version 版本
           -p
显示处理器类型或unknown
           -i
显示硬件平台类型或unknown
           -o
显示操作系统名
         
help 获得帮助信息
         
version 显示uname版本信息

28、查看系统版本 cat /etc/redhat-release

    

29env  export :查看系统默认的变量

30hostname  :显示当前系统的主机名  定义系统当前的主机名

                仅仅对当前的环境生效

31、命令行扩展:$() “(反引号)  把一个命令的输出打印给另一个命令的参数

      

32、打印重复字符串的简化形式

     Echo  file{1,3,5}

     Echo  {1..10}

     Echo {a..z}

     Echo {000..20..2}

33、命令补全

       内部命令:

       外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜索以给定命令名命名的文件,第一次找到的命令即为要执行的命令

       用户给定的字符串只有一条唯一对应的命令,直接补全,否则再次tab会给出列表

       路径补全:把用户给出的字符串当作路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名,如果唯一,则直接补全,否则再次tab给出列表

      command 2Tab 所有命令行补全

string2Tab string 开头命令

/2Tab 显示所有根目录下一级目录,包括隐藏目录

./2Tab 当前目录下子目录,包括隐藏目录

*2Tab 当前目录下子目录,不包括隐藏目录

~2Tab 所有用户列表

$2Tab 所有变量

@2Tab /etc/hosts 记录 centos7 不支持)

=2Tab 相当于ls A

34、命令行历史 history

        历史命令一般记录在  .bash_history 文件中

        当前shell中的历史记录会被记录在内存,只有退出之后才会保存在 .bash_history

        History 默认最多记录1000

        最后一个退出的会写在配置文件中

         History  -c  :清空命令历史

                 -r  :读取历史文件,附加到历史文件

                 -w  :保存在历史列表到指定的历史文件

                 –p  :展开历史参数成多行,但不保存到历史列表中

                 -s   :展开历史参数成一行,附加到历史列表最后

                 -d  offset  :删除历史中指定的第offset个命令

         $HISTSIZE  :命令历史记录的条数

          $HISTFILE :指定历史文件的存放位置

          $HISTFILESIZE :命令历史文件记录的条数

          HISTTIMEFORMAT=”%F  %T”:显示每条命令的具体执行时间

          HISTIGNORE=”str1:str2:…” 忽略string1string2的历史

          控制命令历史的记录方式: 环境变量 HISTCONTROL 

                    

ignoredups :默认。忽略重复的命令,连续切相同为重复

                     ignorespace  :忽略所有以空白开头的命令

                     ignoreboth  :相当于ignoredupsignorespace 的组合

                     erasedups  : 删除重复命令

         重复前一个命令,有4种方法:

                    重复前一个命令使用上方向键

                    !!并回车执行

                    输入!-1并回车执行

                    ctrl+p 并回车执行

         n  执行history命令输出对应序号n的命令

         -n  执行history历史中倒数第n个命令

         string 重复前一个以“string”开头的命令

         !?string  重复前一个包含string的命令

         stringp 仅打印命令历史,而不执行

         $:p :打印输出!$的内容

               

         *:p 打印输出!*(所有参数)的内容

         ^string 删除上一条命令中的string

         ^string1^string2将上一条命令中的第一个string1替换为string2

         !!:gs/string1/string2 将上一条命令中所有的string1都替换为string2  

         Ctrl-r 在命令历史中搜索命令

         Ctrl+g :从历史搜索模式退出

         要重新调用前一个命令中的最后一个参数:

1、          !$

2、          ESC  ,  .
(
点击esc键后松开,然后点 . )

3、          ALT+.
(
按住alt的同时点击.)

          command !^ :利用上一个命令的第一个参数值

command $ :利用上一个参数的最后一个参数值

command * :利用上一个命令的全部参数

command !:n :利用上一个命令的第n个参数

command string^ :从命令历史中搜索以string开头的命令,并获取它的第一个参

command string:$ :从命令历史中搜索以string开头的命令,并获取它的最后一个参数

command string:n :从命令历史中搜索以string开头的命令,并获取它的第n个参数

command string* :从命令历史中搜索以string开头的命令,并获取它的所有参数

35、快捷键:

ctrl+l : 相当于clear

ctrl+s :阻止屏幕输出,锁定

ctrl+q :允许屏幕输出

ctrl+c :终止命令

ctrl+z : 挂起命令

ctrl+a :光标移动到命令行首,相当于home

ctrl+e :光标移动到行尾 ,相当于end

ctrl+f :光标向右移动一个字符

ctrl+b :光标向左移动一个字符

alt+f :光标向右移动一个单词尾

alt+b :光标向左移动一个单词首

ctrl+xx :光标在命令行首和光标之间移动

ctrl+u :从光标处删除至命令行首

ctrl+k :从光标删除至命令行尾

ctrl+d :删除光标处的一个字符

ctrl+y :将删除的字符粘贴到光标后

alt+c  :从光标处开始向右更改为首字母大写的单词

alt+u  :从光标处开始向右更改为全部大写的字母

alt+l  :从光标处更改为全部小写的单词

ctrl+t  :交换光标处和之前的字符位置

alt+t  :交换光标处和之前的单词位置

alt+N  :提示输入指定字符后,重复显示该字符N

36、变量的简单用法 export 变量名=“值”

         存放在 /etc/profile ~/.bash_profile

37whatis :显示命令的简短描述 ,跟man一样的帮助命令

       使用前需要:  makewhatis  |   mandb  制作数据库

38、命令帮助

1、内部命令帮助方法:help  command 

 man  command

2、外部命令帮助方法 command  –help  

                           Man
command

                           Info  command

                           程序自身的帮助文档

                           程序官方文档

                           发行版的官方文档

                           Google

              –help  :显示用法总结和参数列表

              Man命令:  man命令的配置文件:/etc/man.config man_db.conf

                 帮助手册中的段落说明:

 NAME 名称及简要说明

SYNOPSIS  用法格式说明

[] 可选内容

 <>  必选内容

a|b 二选一

{ } 分组

同一内容可出现多次

DESCRIPTION  详细说明

OPTIONS 选项说明

EXAMPLES  示例

FILES 相关文件

AUTHOR  作者

COPYRIGHT  版本信息

REPORTING BUGS bug 信息

SEE ALSO  其它帮助参考

                man 命令的操作方法:

使用less 命令实现

space, ^v, ^f, ^F:  向文件尾翻屏

b, ^b:  向文件首部翻屏

d, ^d:  向文件尾部翻半屏

u, ^u:  向文件首部翻半屏

RETURN, ^N, e, ^E or j or
^J: 
向文件尾部翻一行

y or ^Y or ^P or k or ^K :向文件首部翻一行

q:  退出

# :跳转至第#

1G:  回到文件首部

G

39tree  -L  1  –d  / 

Tree  用来查看目录结构(需要先安装)

 -L  指定层数   -d  只查看目录

40dmesg :查看启动的时候的内核日志

Last :登录成功的用户及ip

Lasb:登录失败的用户以及ip

Lastb :去查看哪些地址的服务器在扫描我们的机器,然后把这些ip加入到host_deny  iptables

41pwd  -L  :如果当前为链接路径的话,则显示链接路径

          -P :显示真实物理路径

42、绝对路径:

         以正斜杠开始

         完整的文件的位置路径

         可用于任何想指定一个文件名的时候

     相对路径名:

         不以斜杠开始

         指定相对于当前工作目录或某目录的位置

         可以作为一个简短的形式指定一个文件名   

43cd  改变目录

        使用绝对或者相对路径:

           Cd  /home/wang

           Cd  home/wang

            切换至父目录: cd..   

         切换至当前用户的主目录: cd

         切换至以前的工作目录:cd –

         选项:-p

          相关的环境变量:  PWD:当前目录路径

                            OLDPWD
:
上一次目录路径

44ls  :列出当前目录的内容或指定目录

       用法:ls  [options]  [files_or_dirs]

       Ls  –a 包含隐藏的文件

       Ls  –l 显示额外的信息

       Ls   -R 目录递归通过

       Ls   -ld   目录和符号链接信息

       Ls  -d   显示当前目录的详细信息,不显示目录下的内容

       Ls  -1  文件分行显示

       Ls  -S  按从大到小排序

       Ls  -t  mtime排序

       Ls  -u   配合-t选项显示并按atime从新到旧排序

       Ls  -U   按目录存放顺序显示

       Ls  -X   按文件后缀排序

45stat  :查看文件状态

      文件:metadata  data

      三个时间戳

           Access time :访问时间,atime,读取文件内容

           Modify  time  :修改时间  mtime ,改变文件内容(数据)

           Change  time  :改变时间,ctime,元数据发生改变(属性发生改变)

           Mtime改变,ctime也会跟着改变

           修改文件属性或者权限,则ctime也会跟着改变

           Atime 并不会实时发生改变,只有当mtimeatime新的时候才会改变

           使用编辑器打开文件可能造成atime的改变

           使用 touch –a  修改文件的访问时间也会造成ctime的改变

           

46touch -m 修改mtime,也会造成ctime的改变

             -c  修改ctime  如果文件不存在,则不予创建

             -a   修改atime  ,也会造成ctime的改变

             -t   [[cc]yy]MMDDhhmm[.ss]  指定atimemitime的时间戳

              结合-m -c –a  修改制定的时间

              Touch –m  -t  time 文件

47cp  :复制文件和目录

        Cp  a  b  :复制一个文件并命名为b

        Cp   a  tmp/   把多个文件源复制到目录下

        Cp  -r  目录1  目录2 :如果目录2不存在,则会把目录1重新拷贝一份并命名为目录2

                                如果目录2已经存在,则直接将目录1拷贝到目录2

        -i:覆盖前提示

        -r  -R  :递归复制目录以及内部的所有内容

        -d  :复制的时候,如果目录有链接文件,则只复制链接文件

         -p –preserv  复制的时候将文件的属性 一起复制

         -a  –pdr  把所有的目录以及所有的属性复制过去

         -v  :复制的时候显示详细过程

         -f   :强制复制,不管目标文件有没有

         Cp  -av

         Cp   -avf  强制复制

48mv  :移动和重命名文件

        常用选项: -I  交互式

                   -f  :强制,如果目标已经存在同名文件,则强制移动过去,不提示

         Mv  a  b   a重名为b  a有可能是文件或目录

         Mv  a  bd/   :将源文件a移动到目录bd

49rm  :删除

        常用选项: -i  :交互式

                   -f  :强制删除

                   -r   :递归

50tree  :显示目录树

      -d :只显示目录

      -L  数目  :指定显示的层级数目

      -p  pattern  :只显示由指定pattern匹配到的路径

51mkdir  :创建目录

       -p  :存在于不报错,且可自动创建所需的各目录(递归创建)

       -v  :显示详细信息

       -m  MODE  :创建目录是直接指定权限

52rmdir :删除空目录

      -p  :递归删除父空命令

      -v  :显示详细信息

53inode  :索引节点

      df   -i  :查看某个分区inode的使用

      ll   -i :查看某个文件的inode  

      Inode表中包含文件系统所有文件列表

      一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:文件类型,权限,UID,GID,链接数(指向这个文件名路径名称个数),该文件的大小和不同的时间戳,指向磁盘上文件的数据块指针,有关文件的其他数据

      Inode  根据系统上的inode号去找到对应的文件

      Inode 系统上的inode号会满,有可能是磁盘上的小文件过多

      Inode 是在磁盘格式化的时候已经确定

      为什么空间没满,但是我的数据写不进去,是因为小文件太多,造成inode用完了,解决方法就是把数据拷贝出来,重新格式化分区,重新指定inode

      一个文件只能有一个inode

      Cp 操作就是生成一个新的inode,然后把源文件的数据复制过去,同时把新的inode指过去

      Rm删除的时候只是删除inode,数据还在

      Mv的时候如果在同一个分区,那么mv的时候只是修改了文件路径,文件本身的inode没变

       如果目标文件和源文件位于不同的分区(文件系统),那么一般执行的是先cp后删除操作

    

            

54、链接文件

      硬链接 :创建硬链接会增加额外的记录项以引用文件

               对于同一个文件系统上的一个物理文件

                每个目录引用相同的indoe

                创建时链接数递增

                删除文件时: rm命令递减计数的链接

                             文件要存在,至少有一个连接数

                             当链接数为零时,该文件被删除

                不能跨驱动器或分区

                语法 ln  filename  被链接文件

       软(符号)链接

                 一个符号链接指向另一个文件

                 Ls –l  的显示连接的名称和引用的文件

                一个符号链接的内容是它引用文件的名称

                可以对目录进行

                 可以跨分区

                 指向的是另一个文件的路径;其大小 为指向的路径字符串的长度;不增加或减少目标文件indoe的引用计数

                语法 ln  -s  filename  被链接文件

                          -f :强制链接 ,无论原来的链接是否存在,强制她它指向一个新的位置

                          -n :把符号链接的目的目录视为一般文件

55file  :用来查看某个文件的文件类型

        -b  :不显示文件名称

        -f  a.txt 列出a.txt文件中所记录的文件对应的文件类型

        -F  使用指定分隔符号替换输出文件名后默认“:”分隔符

          

        -L   查看对应软链接对应文件的文件类型

56tr  :转换和删除字符

选项 -c  -C  –complement:取字符集的补集

       -d  –delete :删除所有属于第一字符集的字符

       -s –squeeze-repeats :把连续重复的字符以单独一个字符显示

       -t  –truncate –set1 :将第一个字符集对应字符转化为第二个字符集对应的字符

     Tr a-z’A-Z’  <  /etc/fstab

     Tr  -d  ‘0-9’ > /etc/fstab

     Tr –d –c ‘0-9’ < /etc/fstab

     Echo  “ssss” | tr  –s  ‘s’

57Less :一页一页地查看输入

         Ls –l  /etc  | less

58、文件查看命令:cat tacrev

      Cat  [option] ..  [file]..

           -E: 显示行结束符$

           -n :对显示出的每一行进行编号

           -A  –Vet :显示所有控制符

           -b :列出非空行编号

           -T : 显示制表符

           -v  :显示隐藏的特殊字符

           -s  :压缩连续的空行成一行

59tac:把文件倒过来显示

60more:分页查看文件

       More  -d  :显示翻页 以及退出提示(enter向下一行,space 向下一屏,b回到最开始的地方)

61less:一页一页的查看文件或STDIN输出

      查看时有用的命令包括: /文本 :搜索  文本

                             n / N 跳到下一个或上一个匹配

62head :显示文本前#(默认为10)行 

      Head  -c  #  :指定获取前#字节

               -n  #  :指定获取前#

                -#:指定行数

63tail :显示文本后#(默认是10)行

       Tail  -c  #  :指定获取后#字节

           -n  #   :指定获取后#

           #   :指定行数

           -f  :跟踪显示文件新追加的内容,常用日志监控

64cut :按列抽取文本

       Cut  -d”分隔符 : 指明分隔符,默认tab

            -f  # :第#个字段

            ###:离散的多个字符,例如1,3,9

           #-#  :连续的额多个字符

           -c  :按字符切割   

65paste :合并两个文件同行号的列到一行

      

       -d”分隔符  :指定分隔符,默认tab

       -s   :所有行合成一行显示

       

66wc  :收集文本统计数据,计算单词总数,行总数,字节总数和字符总数

          可以对文件或STDIN中的数据运行

          默认是统计行数、字数、字符数

          

         Wc  -l  :只统计行数

               -w  :只统计单词总数

               -c  :只统计字节总数

               -m  :多少字符

67sort :文本排序,把整理过的文本显示在STDOUT,不改变原始文件

          Sort  -r  :执行反方向(由上至下)整理

                 -n  :执行按数字大小整理

                 -f   :选项忽略(fold)字符串中的字符大小写

                 -u   :选项(独特,unique)删除输出中的重复行

                -t  c :使用c 作为字符界定符

                -k  num  :选择某个字段来进行排序

                         Cat /etc/passwd | sort –t “:” –k
3

          

68uniq  从输入中删除前后相接的重复的行

           Uniq  -c  :显示每行重复出现的次数

                    -d  :心啊是重复过的行

                   -u  :显示不曾重复的行

            sort  userlist.txt  |  uniq
–c

69、统计日志中频繁访问的前10ip

cat /log | cut -d” ” -f1 |
sort | uniq -c | sort -nr | head

70diff  :命令的输出被保存在一种叫做“补丁”的文件中

        使用 –u  选项来输出“统一的”diff格式文件,最适合于补丁文件(svn   git    
(主流)
:打补丁工具)

        diff -u foo.conf-broken foo.conf-works > foo.patch

71patch :复制在其他文件中进行的改变

        -b :来自动备份改变了的文件

         patch -b foo.conf-broken foo.patch

72grep  :文本过滤工具,根据用户指定的“模式”对目标文本进行匹配检查,打印匹配到的行

          Grep  egrep  fgrep(不支持正则表达式搜索)

          –color=auto :对匹配到的文本着色显示

          -v :显示不被pattern匹配到的行,相当于取反

          -i  :忽略字符串大小写

          -n  :显示匹配的行号

          -c  :  统计匹配到的行数

          -o  :仅显示匹配到的字符串

          -q  :静默模式,不输出任何信息

          -A#  :after ,后#

          -B#  :before  ,前#

          -C#   :CONTEXT  ,前后各#

          -e :实现多个选项间的逻辑or关系

            grep e cat -e dog file

          -w  :匹配整个单词

          -E  :使用ERE

          -F :相当于fgrep ,不支持正则表达式

73netstat -nat : 用来查看系统中正在监听的端口

lt+F[1-6]
2. Centos 7 :在哪个终端启动,即位于哪个虚拟终端
5、 串行端口(/dev/ttyS#)
ttys
6、 伪终端(pty:pseudo-tty,/dev/pts/#)
pts ,ssh 远程连接
7、 查看当前的终端设备:tty
8、 应用程序—附件—终端:
1、 支持多个“标签”shell的图形化终端模拟器
2、 Ctrl+shift+n :创建新窗口
3、 Ctrl+shift+q :关闭当前窗口
4、 Ctrl+shift+t :创建一个标签页
5、 Ctrl+shift+w :关闭一个标签页
6、 Ctrl+pgup/pgdn :切换上一个/前一个标签页
7、 Ctrl+shift+c :复制选中的文本
8、 Ctrl+shift+v :把文本粘贴到当前光标处
3、交互式接口:启动终端后,在终端设备附加一个交互式应用程序
1、 GUI : Graphic User Interface
i. X protocol, window manager ,desktop
ii. Desktop: GNOME(C ,图形库gtk);
iii. KDE (C++,图形库qt);
iv. XFCE(轻量级桌面)
2、 CLI:Command Line Interface
Shell 程序:sh (bourn) csh tcsh ksh
4、Shell 是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行
shell 也被称为LINUX 的命令解释器(command interpreter )
shell 是一种高级程序设计语言
5、GNU Bourne-Again Shell(bash) 是GNU 计划中重要的工
具软件之一,目前也是 Linux 标准的shell ,与sh 兼容
6、查看当前使用的shell:echo ${SHELL}
7、显示当前系统使用的所有的shell : cat /etc/shells
8、查看系统变量:env 或 export
9、~ :代表家目录
# :代表超级目录
$ :代表普通用户
10、显示提示符格式: echo $PS1
修改命令提示符 :PS1=”[\u@\h \w]\$”
PS1=”[\e[31m][\u@\h \w]\$[\e[0m]”
\e : \033 \u:当前用户 \h:主机名简称 \H:主机名
\w :当前工作目录 \W:当前工作目录基名 \t :24小时时间格式
\T:12小时时间格式 !:命令历史数 # :开机后命令历史数
11、shell命令分两种:
一种是内部命令 :由内核直接提供
Help: 内部命令列表
Enable command 可以启用命令
Enable -n command 禁用内部命令
Enable -n 查看所有禁用的内部命令
一种是外部命令 :由系统上的某个二进制文件提供
查看路径 :which -a | –skip—alias command
Whereis command
区别指定的命令是内部还是外部命令:
type command
12、hash :hash缓存表
系统初始hash 表为空,当外部命令执行时,默认会从PATH路
径下寻找该命令,找到后会将这条命令的路径记录到hash表
中,当再次使用该命令时,shell 解释器首先会查看hash 表,
存在将执行之,如果不存在,将会去PATH 路径下寻找。利用
hash缓存表可大大提高命令的调用速率
hash:会显示最近执行的命令
hash –l:显示hash缓存,可作为输入使用
hash –t command:显示命令的路径
hash -r :清除缓存
13、alias :查询系统中已经存在的别名
别名前加\ :代表执行其实的命令;单引号也可以;或直接在命令的路径下调用
“\COMMAND”
’COMMAND’
/PATH/COMMAND
alias name =”name1” 仅在当前shell下有效
当前用户 :~/.bashrc 所有用户:/etc/bashrc
取消别名 :unalias name
16、Enable command 可以启用命令,只对内部命令有效, Enable -n command 禁用内部命令
Enable -n 查看所有禁用的内部命令
17、pwd :显示当前目录
18、command [options] [argyments]
选项:用于启用或者关闭命令的某个或某些功能
短选项:-c 例如 :-l ,-h
长选项:–word ,例如 :–all ,–human—readable
参数 :命令的作用对象,比如文件名,用户名等
注意:多选项,以及多参数和命令之间使用空白字符分隔
取消和结束多个命令的执行:ctrl+c ;ctrl+d
\ :一个命令可以用\分成多行
; 多个命令可以用分号分开
19、date :显示日期和时间
Linux的两种时钟:系统时钟:由linux内核通过CPU的工作频率进行的
硬件时钟:主板
Hwclock ,clock :显示硬件时钟
-s ,–hctosys 以硬件时钟为准
-w ,–sysytohc 以系统时间为准
时区:/etc/localtime
Date –s :修改系统时间
Date –d :指定具体时间
(两天前星期几)
Date +%F : 当前时间
Date +%Y:年 m:月 d:日 H:时 M:分 S:秒
Date –date=”3 days ago”
反引号:将命令执行结果作为输出 双引号 、单引号:字符串输出
Cal :显示日历 cal -y :显示全年日历
20、bc :命令行的计算器
21、nano:文本编辑器
22、half 、poweroff :关机
Reboot : -f 强制,但不调用shutdown
-p 切断电源
Shutdown :关机或重启
-r :reboot
-h :half
-c :取消
Time :now :立刻关机
+m :相当时间表示法,多久之后
Hh:mm :绝对时间表示,指明具体时间
Init 0 :关机
6 :重启
23、用户登录信息命令
Whoami :查看当前有效登录用户
Who :系统当前所有的登录会话
W :显示所有登录的用户以及连接
24、screen :屏幕
Screen -s name :开启一个会话
Screen -x name :加入一个会话
Ctrl + a + d : 退出
Screen -r :恢复刚刚的会话
Screen -ls :显示所有已经打开的screen会话
25、echo :显示字符
-E :默认 不支持 \ 解释功能
-n :不自动换行
-e :启用 \ 字符的解释功能
启用命令选项-e ,若字符串中出现以下字符,则特
别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\ 插入\ 字符
\0nnn 插入nnn (八进制)所代表的ASCII 字符
echo -e '\033[43;31;5mmagedu\033[0m'
\xHH 插入HH (十六进制)所代表的ASCII字
显示变量: echo “$name” 变量会被替换,弱引用
Echo ‘$name’变量不会被替换,强引用
26、dirname :获取文件的目录名
Basename :获取问价你的基名
27、uname :功能说明:uname用来获取电脑和操作系统的相关信息
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操 作系统名称
-m或–machine 显示主机的硬件(CPU)名
-n或-nodename 显示主机在网络节点上的名称或主机名称
-r或–release 显示linux操作系统内核版本号
-s或–sysname 显示linux内核名称
-v 显示显示操作系统是第几个 version 版本
-p 显示处理器类型或unknown
-i 显示硬件平台类型或unknown
-o 显示操作系统名
–help 获得帮助信息
–version   显示uname版本信息
28、查看系统版本 :cat /etc/redhat-release
29、env 、 export :查看系统默认的变量
30、hostname :显示当前系统的主机名 定义系统当前的主机名
仅仅对当前的环境生效
31、命令行扩展:$() 或
(反引号) 把一个命令的输出打印给另一个命令的参数
32、打印重复字符串的简化形式
Echo file{1,3,5}
Echo {1..10}
Echo {a..z}
Echo {000..20..2}
33、命令补全
内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜索以给定命令名命名的文件,第一次找到的命令即为要执行的命令
用户给定的字符串只有一条唯一对应的命令,直接补全,否则再次tab会给出列表
路径补全:把用户给出的字符串当作路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名,如果唯一,则直接补全,否则再次tab给出列表
command 2Tab 所有命令行补全
string2Tab 以string 开头命令
/2Tab 显示所有根目录下一级目录,包括隐藏目录
./2Tab 当前目录下子目录,包括隐藏目录
2Tab 当前目录下子目录,不包括隐藏目录
~2Tab 所有用户列表
$2Tab 所有变量
@2Tab /etc/hosts 记录 (centos7 不支持)
=2Tab 相当于ls –A
34、命令行历史 :history
历史命令一般记录在 .bash_history 文件中
当前shell中的历史记录会被记录在内存,只有退出之后才会保存在 .bash_history
History 默认最多记录1000行
最后一个退出的会写在配置文件中
History -c :清空命令历史
-r :读取历史文件,附加到历史文件
-w :保存在历史列表到指定的历史文件
–p :展开历史参数成多行,但不保存到历史列表中
-s :展开历史参数成一行,附加到历史列表最后
-d offset :删除历史中指定的第offset个命令
$HISTSIZE :命令历史记录的条数
$HISTFILE :指定历史文件的存放位置
$HISTFILESIZE :命令历史文件记录的条数
HISTTIMEFORMAT=”%F %T”:显示每条命令的具体执行时间
HISTIGNORE=”str1:str2:…” 忽略string1,string2的历史
控制命令历史的记录方式: 环境变量 :HISTCONTROL
ignoredups :默认。忽略重复的命令,连续切相同为重复
ignorespace :忽略所有以空白开头的命令
ignoreboth :相当于ignoredups和ignorespace 的组合
erasedups : 删除重复命令
重复前一个命令,有4种方法:
重复前一个命令使用上方向键
按!!并回车执行
输入!-1并回车执行
按ctrl+p 并回车执行
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p :打印输出!$的内容
:p 打印输出!(所有参数)的内容
^string 删除上一条命令中的string
^string1^string2将上一条命令中的第一个string1替换为string2
!!:gs/string1/string2 将上一条命令中所有的string1都替换为string2
Ctrl-r 在命令历史中搜索命令
Ctrl+g :从历史搜索模式退出
要重新调用前一个命令中的最后一个参数:
1、 !$
2、 ESC , . (点击esc键后松开,然后点 . 键)
3、 ALT+. (按住alt的同时点击.键)
command !^ :利用上一个命令的第一个参数值
command !$ :利用上一个参数的最后一个参数值
command !
:利用上一个命令的全部参数
command !:n :利用上一个命令的第n个参数
command !string:^ :从命令历史中搜索以string开头的命令,并获取它的第一个参

command !string:$ :从命令历史中搜索以string开头的命令,并获取它的最后一个参数
command !string:n :从命令历史中搜索以string开头的命令,并获取它的第n个参数
command !string:* :从命令历史中搜索以string开头的命令,并获取它的所有参数
35、快捷键:
ctrl+l : 相当于clear
ctrl+s :阻止屏幕输出,锁定
ctrl+q :允许屏幕输出
ctrl+c :终止命令
ctrl+z : 挂起命令
ctrl+a :光标移动到命令行首,相当于home
ctrl+e :光标移动到行尾 ,相当于end
ctrl+f :光标向右移动一个字符
ctrl+b :光标向左移动一个字符
alt+f :光标向右移动一个单词尾
alt+b :光标向左移动一个单词首
ctrl+xx :光标在命令行首和光标之间移动
ctrl+u :从光标处删除至命令行首
ctrl+k :从光标删除至命令行尾
ctrl+d :删除光标处的一个字符
ctrl+y :将删除的字符粘贴到光标后
alt+c :从光标处开始向右更改为首字母大写的单词
alt+u :从光标处开始向右更改为全部大写的字母
alt+l :从光标处更改为全部小写的单词
ctrl+t :交换光标处和之前的字符位置
alt+t :交换光标处和之前的单词位置
alt+N :提示输入指定字符后,重复显示该字符N次
36、变量的简单用法 :export 变量名=“值”
存放在 /etc/profile 或~/.bash_profile
37、whatis :显示命令的简短描述 ,跟man一样的帮助命令
使用前需要: makewhatis | mandb 制作数据库
38、命令帮助
1、内部命令帮助方法:help command
man command
2、外部命令帮助方法 : command –help
Man command
Info command
程序自身的帮助文档
程序官方文档
发行版的官方文档
Google
–help :显示用法总结和参数列表
Man命令: man命令的配置文件:/etc/man.config 或 man_db.conf
帮助手册中的段落说明:
NAME 名称及简要说明
SYNOPSIS 用法格式说明
[] 可选内容
必选内容
a|b 二选一
{ } 分组
… 同一内容可出现多次
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT 版本信息
REPORTING BUGS bug 信息
SEE ALSO 其它帮助参考
man 命令的操作方法:
使用less 命令实现
space, ^v, ^f, ^F: 向文件尾翻屏
b, ^b: 向文件首部翻屏
d, ^d: 向文件尾部翻半屏
u, ^u: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行
y or ^Y or ^P or k or ^K :向文件首部翻一行
q: 退出
# :跳转至第#行 行
1G: 回到文件首部
G
39、tree -L 1 –d /
Tree 用来查看目录结构(需要先安装)
-L 指定层数 -d 只查看目录
40、dmesg :查看启动的时候的内核日志
Last :登录成功的用户及ip
Lasb:登录失败的用户以及ip
Lastb :去查看哪些地址的服务器在扫描我们的机器,然后把这些ip加入到host_deny iptables中
41、pwd -L :如果当前为链接路径的话,则显示链接路径
-P :显示真实物理路径
42、绝对路径:
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
相对路径名:
不以斜杠开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
43、cd 改变目录
使用绝对或者相对路径:
Cd /home/wang
Cd home/wang
切换至父目录: cd..
切换至当前用户的主目录: cd
切换至以前的工作目录:cd –
选项:-p
相关的环境变量: PWD:当前目录路径
OLDPWD :上一次目录路径
44、ls :列出当前目录的内容或指定目录
用法:ls [options] [files_or_dirs]
Ls –a 包含隐藏的文件
Ls –l 显示额外的信息
Ls -R 目录递归通过
Ls -ld 目录和符号链接信息
Ls -d 显示当前目录的详细信息,不显示目录下的内容
Ls -1 文件分行显示
Ls -S 按从大到小排序
Ls -t 按mtime排序
Ls -u 配合-t选项显示并按atime从新到旧排序
Ls -U 按目录存放顺序显示
Ls -X 按文件后缀排序
45、stat :查看文件状态
文件:metadata ,data
三个时间戳 :
Access time :访问时间,atime,读取文件内容
Modify time :修改时间 ,mtime ,改变文件内容(数据)
Change time :改变时间,ctime,元数据发生改变(属性发生改变)
Mtime改变,ctime也会跟着改变
修改文件属性或者权限,则ctime也会跟着改变
Atime 并不会实时发生改变,只有当mtime比atime新的时候才会改变
使用编辑器打开文件可能造成atime的改变
使用 touch –a 修改文件的访问时间也会造成ctime的改变
46、touch : -m 修改mtime,也会造成ctime的改变
-c 修改ctime 如果文件不存在,则不予创建
-a 修改atime ,也会造成ctime的改变
-t [[cc]yy]MMDDhhmm[.ss] 指定atime和mitime的时间戳
结合-m 或-c 或 –a 修改制定的时间
Touch –m -t “time” 文件
47、cp :复制文件和目录
Cp a b :复制一个文件并命名为b
Cp a tmp/ 把多个文件源复制到目录下
Cp -r 目录1 目录2 :如果目录2不存在,则会把目录1重新拷贝一份并命名为目录2
如果目录2已经存在,则直接将目录1拷贝到目录2下
-i:覆盖前提示
-r 或-R :递归复制目录以及内部的所有内容
-d :复制的时候,如果目录有链接文件,则只复制链接文件
-p :–preserv 复制的时候将文件的属性 一起复制
-a :–pdr 把所有的目录以及所有的属性复制过去
-v :复制的时候显示详细过程
-f :强制复制,不管目标文件有没有
Cp -av
Cp -avf 强制复制
48、mv :移动和重命名文件
常用选项: -I 交互式
-f :强制,如果目标已经存在同名文件,则强制移动过去,不提示
Mv a b 将a重名为b a有可能是文件或目录
Mv a bd/ :将源文件a移动到目录bd下
49、rm :删除
常用选项: -i :交互式
-f :强制删除
-r :递归
50、tree :显示目录树
-d :只显示目录
-L 数目 :指定显示的层级数目
-p pattern :只显示由指定pattern匹配到的路径
51、mkdir :创建目录
-p :存在于不报错,且可自动创建所需的各目录(递归创建)
-v :显示详细信息
-m MODE :创建目录是直接指定权限
52、rmdir :删除空目录
-p :递归删除父空命令
-v :显示详细信息
53、inode :索引节点
df -i :查看某个分区inode的使用
ll -i :查看某个文件的inode号
Inode表中包含文件系统所有文件列表
一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:文件类型,权限,UID,GID,链接数(指向这个文件名路径名称个数),该文件的大小和不同的时间戳,指向磁盘上文件的数据块指针,有关文件的其他数据
Inode 根据系统上的inode号去找到对应的文件
Inode 系统上的inode号会满,有可能是磁盘上的小文件过多
Inode 是在磁盘格式化的时候已经确定
为什么空间没满,但是我的数据写不进去,是因为小文件太多,造成inode用完了,解决方法就是把数据拷贝出来,重新格式化分区,重新指定inode
一个文件只能有一个inode
Cp 操作就是生成一个新的inode,然后把源文件的数据复制过去,同时把新的inode指过去
Rm删除的时候只是删除inode,数据还在
Mv的时候如果在同一个分区,那么mv的时候只是修改了文件路径,文件本身的inode没变
如果目标文件和源文件位于不同的分区(文件系统),那么一般执行的是先cp后删除操作
54、链接文件
硬链接 :创建硬链接会增加额外的记录项以引用文件
对于同一个文件系统上的一个物理文件
每个目录引用相同的indoe号
创建时链接数递增
删除文件时: rm命令递减计数的链接
文件要存在,至少有一个连接数
当链接数为零时,该文件被删除
不能跨驱动器或分区
语法 :ln filename 被链接文件
软(符号)链接 :
一个符号链接指向另一个文件
Ls –l 的显示连接的名称和引用的文件
一个符号链接的内容是它引用文件的名称
可以对目录进行
可以跨分区
指向的是另一个文件的路径;其大小 为指向的路径字符串的长度;不增加或减少目标文件indoe的引用计数
语法 :ln -s filename 被链接文件
-f :强制链接 ,无论原来的链接是否存在,强制她它指向一个新的位置
-n :把符号链接的目的目录视为一般文件
55、file :用来查看某个文件的文件类型
-b :不显示文件名称
-f a.txt: 列出a.txt文件中所记录的文件对应的文件类型
-F 使用指定分隔符号替换输出文件名后默认“:”分隔符
-L 查看对应软链接对应文件的文件类型
56、tr :转换和删除字符
选项 :-c -C –complement:取字符集的补集
-d –delete :删除所有属于第一字符集的字符
-s –squeeze-repeats :把连续重复的字符以单独一个字符显示
-t –truncate –set1 :将第一个字符集对应字符转化为第二个字符集对应的字符
Tr ‘a-z’’A-Z’ /etc/fstab
Tr –d –c ‘0-9’ foo.patch
71、patch :复制在其他文件中进行的改变
-b :来自动备份改变了的文件
patch -b foo.conf-broken foo.patch
72、grep :文本过滤工具,根据用户指定的“模式”对目标文本进行匹配检查,打印匹配到的行
Grep ,egrep ,fgrep(不支持正则表达式搜索)
–color=auto :对匹配到的文本着色显示
-v :显示不被pattern匹配到的行,相当于取反
-i :忽略字符串大小写
-n :显示匹配的行号
-c : 统计匹配到的行数
-o :仅显示匹配到的字符串
-q :静默模式,不输出任何信息
-A# :after ,后#行
-B# :before ,前#行
-C# :CONTEXT ,前后各#行
-e :实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w :匹配整个单词
-E :使用ERE
-F :相当于fgrep ,不支持正则表达式
73、netstat -nat : 用来查看系统中正在监听的端口

原创文章,作者:2547221149,如若转载,请注明出处:http://www.178linux.com/73588

(0)
25472211492547221149
上一篇 2017-04-17
下一篇 2017-04-17

相关推荐

  • linux 入门基础 (二)

    主要内容包含有 文件查找、压缩和正则表达式,以及包是管理和安装。

    2017-09-10
  • iptables

    一、前言 什么是iptables?当我们启动iptables时,使用service命令可以启动iptables。但是并非使用service启动的iptables就能说明其是一个服务。Iptables是一个便以我们写规则的工具,真正起作用的是内核中的netfilter一个框架。Netfilter内置了5个hook函数,当一个数据包交由此机器时,经过这5个hoo…

    Linux干货 2015-10-27
  • http请求过程

    1、浏览器根据访问的域名找到其IP地址。DNS查找过程如下: 1.浏览器缓存:浏览器会缓存DNS记录一段时间。 2.系统缓存:如果在浏览器缓存里没有找到需要的域名,浏览器会查系统缓存中的记录。 3.路由器缓存:如果系统缓存也没找到需要的域名,则会向路由器发送查询请求。 4.ISP DNS缓存:如果依然没找到需要的域名,则最后要查的就是ISP缓存DNS的服务器…

    Linux干货 2017-10-23
  • Docker 简介

    Docker在现有云计算虚拟化中是非常火的一个项目,那么他和虚拟化有什么不同呢 从上图来看,好像和我们之前说到的虚拟化并没有什么不同,但这里需要说明的是在各guest主机上,是没有操作系统的,他们共用Host主机上的内核空间,只对用户空间进行了隔离。 因此在这种环境下我们不把他称为虚拟化而称作容器。 此种方式的实现主要基于了linux内核自带的两项技术,分别…

    2017-03-19
  • 配额限制、RAID、LVM

    配置配额系统 在内核中执行以文件系统为单位启用,对不同组或者用户的策略不同; 根据块或者节点进行限制 软限制(soft limit) 硬限制(hard limit) 初始化(/home) 分区挂载选项( /etc/fstab ):usrquota、grpquota 创建数据库: 将selinux调为禁用状态:Permissive quotacheck -cu…

    Linux干货 2017-04-26
  • 关于生命中的根

    关于生命中的根    擦干心中的血和泪痕    留住我们的根 关于生命中的根 鸿蒙初辟,万物生于根 寻根之旅 根就是根 我即为根 路在何方 鸿蒙初辟,万物生于根    自linux老祖Torvalds创根之始至今,根一直为linux之本,而FHS(Filesystem Hierarchy Stand…

    Linux干货 2016-10-27