第二章Linxu基础学习笔记

笔记开始整理时间:2018年3月29日19:22:02linux

本章内容:ios

        1.用户登陆shell

        2.终端数据库

        3.shell介绍windows

        4.执行命令缓存

        5.简单命令bash

        6.Tap键补全服务器

        7.命令行历史网络

        8.bash快捷键ide

        9.使用gnome-terminal

        10.whatis

        11.command --help

        12.man and info

        13.本地帮助文档/usr/share/doc/

        14.官网在线文档

        15.其余网站和搜索

        

用户登陆

        root用户

               uid=0

               一个特殊的管理帐户,也被称为超级用户

               root已接近完整的系统控制

               对系统谁还几乎有无限的能力

               除非必要,不要登陆为root

        普通(非特权)用户

               权限有限

               形成损害的能力比较有限

终端teirminal

        设备终端        键盘鼠标显示器

        物理终端        /dev/console

               控制台console

        虚拟终端(tty:teletypewriters,/dev/tty#,#为[1-6])

        图形终端(/dev/tty7)startx,xwindows)

               CentOS 6:ctrl+alt+F7

               CentOS 7:在哪一个终端启动,即位于哪一个虚拟终端

        串行终端(/dev/ttyS#)

               ttyS

        伪终端(pty:pseudo-tty,/dev/pts/#)

               pty,SSH远程链接

        查看当前的终端设备:tty

交互式接口

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

        GUI:Graphic User Interface

               X protocol,windowmanager,desktop

                     Desktop:

                            GNOME(C,图形库gtk),

                             KDE(C++,图形库qt)

                            XFCE  (轻量级桌面)

        Cli:Commmand Line Interface

               shell程序:sh,csh,tcsh,ksh,bash(bourn again  shell) GPL zsh

什么是shell

        shell是Linux系统的用户界面,提供了用户与内核进行交互操做的一种接口

        它接收用户输入的命令并把它送到内核去执行。

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

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

bash shell

        GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一

        目前也是Linux的标准shell,与sh兼容

        CentOS默认使用

        显示当前使用的shell    

               echo $SHELL

        显示当前系统使用的全部shell

               cat /etc/shells

命令提示符:prompt

        echo $PS1      显示提示符格式

        PS1="\[\e[1;35m\][\u@\h  \w]\\$\[\e[0m\]"

        

执行命令

        输入命令后回车

               提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后

               提交给内核分配资源将其运行起来

        在shell中可执行的命令有两类

               内部命令:由shell自带的,并且经过某命令形式提供

                     help 显示内部命令列表

                     enable    查看所有可用内部命令

                     enable -n cmd      禁用内部命令

                     enable cmd           启用内部命令

                     enable -n             查看全部禁用的内部命令

               外部命令:在文件系统路径下有对应的可执行程序文件

                     which  -a

                     which --skip-alias  

                      whereis

               区别指定的命令是内部或外部命令

                     type  cmd

 

执行外部命令

        hash缓存表

               系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找命令。

               找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释

               器首先会查看hash表,存在将执行之,若是不存在,将会去PATH路径下寻找。利

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

        hash常见用法

               hash             显示hash缓存

               hash -l           显示hash缓存,包含路径,可做为输入使用

               hash -p path name       将命令全路径path起别名为name

               hath -t name 显示hash中name的路径

               hash -r         清除hash缓存

命令别名

        alias 显示当前shell进程全部可用的命令别名

        alias NAME="VALUE"    定义别名NAME,其至关于执行命令VALUE

        例如:

               alias cdnet=‘cd  /etc/sysconfig/network-scripts/`

        unalias cdnet  取消别名cdnet

        unalias -a              取消全部别名

               PS:   在命令行中定义的别名,仅对当前shell进程有效,且注销以后失效

                     如想永久有效,需写入配置文件

                     .bashrc   仅对当前用户有效

                     /etc/.bashrc    修改对全部用户有效

                      编辑配置给出的新配置不会当即生效,需注销或者使用

                     . .bashrc  或者

                     source .bashrc      执行以后配置生效

命令格式

        COMMAND [OPTIONS] [ARGUMENTS..]   

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

        参数ARGUMENT,命令的做用对象,好比文件名,用户名等

               例如:

                     ls -a etc/       

                     rm -rf /etc/    -rf=-r -f

        PS:

               参数和选项能够多个,使用空白字符分隔

               命令运行过程可中断,使用ctrl+C,ctrl+D

               多个命令能够一行执行,使用;符号隔开,如:

                     pwd;ls;ifconfig

               一个命令能够分开成多行显示,用\分开,如

                     p\

                     w\

                     d +回车

日期和时间:

        Linux的两种时钟

        date 显示系统时间

        clock       硬件时间,即主板bios芯片时间

        date mmDDHHMMYYYY.ss 设置时间,格式为月日时分年。秒

        date -d "-2 day"          显示2天以前的时间

        date +%F               显示时间,按照2018-03-31格式显示

        date "+%F %T" 显示时间格式为2018-03-31 02:08:14

        date +%s 显示时间为1970年1月1日0点至今通过多少秒

        date -d @nnnn     将秒时间换成正常时间

        clock -s  硬件时间覆盖系统时间

        clock -w 系统时间覆盖硬件时间

        ll /etc/localtime       显示当前时区

        timedatectl list-timezones    显示所有时区

        timedatectl     set-timezones  Asia/Shanghai     设置时区为上海

        cal          显示日历

        cal   -y    显示全年日历

        cal 5 1978      显示1978年5月日历

               PS:更多用法能够参见date --help

 

简单命令

        halt,poweroff             关机

        init 0                             关机

        reboot / init 6        重启

        reboot -f               强制重启,不调用shutdown

        reboot -p                     切断电源,至关于关机

        shutdown                     1分钟以后关机

        shutdown -r 10     wall 10分钟后重启,且给全部用户发送提醒信息

        shutdown -c                 退出shutdown

        shutdown -now            当即关机

        shutdown -r 21:30 21:30重启

        PS:linux提供了不少种关机方式,有时会有细微的差异,实际工做中服务器的

               关机重启还需慎重。

        

        tty          查看当前在哪一个终端(tty1-6,pts/)

        who        查看当有全部的登陆会话

        whoami  查看本终端当前用户

        w             系统当前全部的登陆会话以及所作的操做

        

        ifconfig   查看网络连接

        nano /etc/motd      简单的文本编辑命令

        

        screen                          新建会话命令

        screen -S help              新建help会话

        screen -ls                     显示当前全部screen会话

        screen -x help               加入help会话

        ctrl+a,d                     脱离当前screen会话

        screen -r               恢复断开的screen会话

        exit                        离开会话

        PS:    screen命令的功能可使不一样终端使用同一个会话窗口,要求链接的终端

               接入同一台主机,且使用相同的帐号登陆。

        

        echo                            显示字符

        echo abc                显示abc,默认-E,会去掉\的解释做用

        echo -n  aaa                输出aaa,结束以后不换行

        echo -e  "aaa\a"          输出aaa且发出警告音,-e选项会开启\解释功能

               \b          退格键

               \c           最后不加换行字符,效果等于-n

               \n           换行且光标移到行首

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

               \t            插入tap

               \\            插入\字符

               \0nnn     插入八进制数nnn所表明的ASCII字符

               \xHH      插入十六进制数HH所表明的ASCII字符

        

单引号,双引号,反向单引号以及 $() 和 {} 的用法

        能够尝试查看执行如下命令观察输出

               echo echo $PS1     输出结果:echo \[\e[1;35m\][\u@\h \w]\$\[\e[0m\]

               echo "echo $PS1"   输出结果:同上

               echo 'echo $PS1'    输出结果:echo $PS1

               echo `echo $PS1`  输出结果:\[\e[1;35m\][\u@\h  \w]\$\[\e[0m\]

        能够看出:

               单引号之内皆为字符,不识别变量和命令

               双引号能够识别变量,但不识别命令操做

               反向单引号,可识别变量和命令

        可是若是须要嵌套输出命令结果:如:

               echo echo pwd      

               若是最终须要输出命令pwd的显示结果,

               echo `echo `pwd`` 是没法识别pwd的,即反向单引号没法嵌套使用

               echo `echo $(pwd)`       此为正确用法

               其中$(pwd) 等同于`pwd`   为调用命令输出的标准用法,且可嵌套

               如以上命令还能够写成:

               echo $(echo $(pwd))

        

        echo f{1,3,5}           显示f1 f3 f5

        touch f{1..10}          建立文件f1 f2..f10

        touch a{1..30..2}      建立文件a(1-30) 间隔为2

        rm file{00000..00100}      删除file00000-file00100

 

Tab键的使用

        命令补全:

        用户给定的字符串只有一条惟一对应的命令时候是,按tab键会直接补全命令

        如不惟一,单机tab无反应,再次按下tab键,则会给出全部匹配列表

        ifcon+tab键          ifconfig

        ifc+2tap         列出全部ifc开头的命令

        路径补全:

        在输入路径时如给出的字符串在上级目录对应惟一的一个目录或者文件,按下

        tap键,直接补全

        如不惟一,两下tap键会列出知足条件的全部目录或者文件列表

        

        cmd 2tap        全部子命令或文件补全

        ifc+2tap  全部以ifc开头的命令

        /2tap              显示全部根目录下一级目录,包括隐藏目录,但不显示文件

        ./2tap             当前目录下子目录,包括隐藏目录,不显示文件

        *2tap              当前目录下子目录,不包含隐藏目录,不显示文件

        ~2tap             显示全部用户列表

        $2tap              显示全部变量

        @2tap            /etc/hosts记录,sentos7不支持

        =2tap            至关于ls -A,sentos7不支持

 

命令行历史

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

               使用上方向键,并回车执行

               按!!,并回车执行

               输入!-1,并回车执行

               按ctrl+P,并回车执行,至关于上方向键

        !:0        执行前一条命令,去除参数

        ctrl+n     显示当前历史中的的下一条命令,但不执行,至关于下方向键

        ctrl+j       执行当前命令

        ctrl+r      在命令历史中搜索命令

        ctrl+g     从历史搜索模式中退出

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

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

        !l           重复前一个以l开头的命令

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

        !l:p        显示前一个以l开头的命令结果

        !$:p       打印输出!$(上一条命令的最后一个参数)的内容

        !*:p    打印输出!*(上一条命令的全部参数)的内容

        ^string   删除上一条命令中的第一个string字符串

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

        !:gs/string1/string2   将上一条命令中的全部string1换成string2

        

        !$          调用前一个命令中最后一个参数

        esc,. 调用前一个命令中最后一个参数      

        alt+. 调用前一个命令中最后一个参数

        

        cmd !^    利用上一个命令的第一个参数作cmd的参数

        cmd !$     利用上一个命令的最后一个参数做为cmd的参数

        cmd !*     利用上一个命令的所有参数做为cmd的参数

        cmd !:n    利用上一个命令的第n个参数最为cmd的参数

        cmd !n:^ 调用第n条命令的第一个参数

        cmd !n:$ 调用第n条命令的最后一个参数

        cmd !n:m        调用第n条命令的第m参数

        cmd !n:* 调用第n条命令的所有参数

 

history 命令

        history                   显示命令历史记录

        history -c               清空历史记录

        history    -d nnn   删除历史记录中的第nnn个命令

        history    n            显示最近的n条记录

        history -a              追加本次会话新执行的命令历史列表至历史文件

        history -r        读历史文本附加到历史列表

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

        history -n              读历史文本中未读过的行到历史列表

        history -p $(cmd)  执行命令cmd,不生成历史,如不加引号,

                                           会直接打印命令

        history -s cmd              生成记录cmd,可是不执行,如用$(),命令会执行,

                                           执行的结果会记录到历史

        HISTSEZE               命令历史就的条数

        HISTFILE         指定历史文件,默认为~/.bash_history

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

        HISTTIMEFORMAT="+%F %T“     历史记录显示时间

        HISTIGNORE="str1:str2*..."    忽略str1命令,str2开头的文件

        HISTCONTROL             环境变量

               =ignoredups 默认,忽略重复的命令,连续且相同为重复

               =ignorspace   忽略全部以空白开头的命令

               =ignoreboth  至关于dups+space

               erasedups      删除重复命令

        以上变量存放 /etc/profile 或~/.bashrc

 

bash的快捷键

        ctrl+l               清屏,至关于clear命令

        ctrl+o             执行当前命令,并从新显示本命令

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

        ctrl+q             容许屏幕输出

        ctrl+c             终止命令

        ctrl+z             挂起命令

        ctrl+a              光标移到命令行首,至关于Home

        ctrl+e              光标移动命令行尾,至关于end

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

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

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

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

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

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

        alt+r              删除当前整行

        PS:还有部分快捷键用法以及图形界面快捷键用法并未列出,alt组合键常常

        和其余软件冲突

 

得到帮助

        ##得到帮助的能力决定了技术的能力。

        ##Linux提供了多种得到帮助的方式

        

        whatis             显示命令的简短描述,如:

        whatis ls

        makewhatis   sentos6安装whatis

        mandb           sentos7安装whatis

        

        help cmd       内部命令用法介绍

        cmd --help     外部命令用法介绍,有些命令是-h

        

        man bash       所有内部命令用法接受

        man -f          简短描述,等于whatis

        man cmd               得到命令cmd的man帮助

        man 5 cmd    看命令man帮助的第5章节

        man -k keyword    列出全部匹配的页面,使用wahtis数据库

        

        

        

        man章节

               #1:用户命令

               #2:系统调用

               #3:C库调用

               #4设备文件及特殊文件。

               #5:配置文件格式

               #6:游戏

               #7:杂项

               #8:管理类的命令

               #9:Linux内核API

        man帮助段落说明

               NAME            名称及简要说明

               SYNOPSIS      用法格式说明

                     []     可选内容

                     <>   必选内容

                     a丨b      二选一

                      {}     分组

                     ...     同一内容可出现屡次

               DESCRIPTION 详细说明

               OPTIONS               选项说明

               FILES             相关文件

               AUTHOR        做者

               COPYRIGHT   版本信息

               REPORTING BUGS        bug信息

               SEE ALSO      其余帮助参考

        

        man文档查看相关操做

               space      向下翻屏

               b            向上翻屏

               G            跳转至文件尾部

               1G          翻至文件首部

               q            退出

        搜索方式:

        /keyword       从当前位置向文件尾部搜索,不区分字符大小写

               n:下一个

               N:上一个

        ?keyword      从当前位置向文件首部搜索,不区分字符大小写

               n:下一个,与搜索方向同向

               N:上一个,与搜索方向反向

        

        导航info页

        info cmd 打开info帮助文档

               Home     显示主题首部

               enter      进入选定连接

               tab键      移动到下一个连接

               d            显示主题目录

               n/p/u/l    进入下/前/上一层/最后一个连接

               s             文字文本搜索

               q            退出info

        

        其余得到帮助的途径

        经过本地文档获取帮助

        /usr/share/doc/     大多数安装了的软件包的子目录,包括了这些软件的

                                           相关原理说明

        在线文档获取帮助

               比较大型的软件,能够上官方网站获取官方文档说明

        经过发行版官方的文档光盘或者网站能够得到

               安装指南、部署指南、虚拟化指南等

               红帽知识库和官方在线文档

               红帽全球技术支持服务

               

 

笔记整理完成时间:2018年3月31日14:44:00