• Linux—系统基础一


    Linux系统基础(一)

    Linux的基本原则:

    • 由目的单一的小程序组成,组合小程序完成复杂任务;
    • 一切皆文件;
    • 配置文件保存为纯文本格式。

    1、shell

    1.1 shell简介

    Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

    常见的shell有两种,一种是图形界面,即GUI,一种是命令行终端,即CLI。

    常用的GUI:Graphic User Interface

    • Windows
    • X-Window
    • Gnome
    • KDE
    • Xfce

    常用的CLI:Command Line Interface

    • bash
    • sh
    • csh
    • zsh
    • ksh
    • tcsh

    Redhat 和 Centos使用的是:bash shell

    1.2 命令行界面

    命令行是可被用来输入指令到计算机系统中的基于文本的界面。 Linux的命令行是通过一个叫做shell程序提供。Redhat和Centos系统默认的shell为Bourne-Again Shell(bash)。 Bash是在类UNIX系统中,是Bourne shell(sh)使用的最成功的其中一个shell的改进版本。

    当shell被交互使用时,它将显示一个字符串时,它从用户等待一个命令。这就是所谓的shell提示符。当一个普通用户启动一个shell,默认提示以$字符结束。

    管理员用户:
    [root@localhost ~]#
    
    普通用户:
    [zsl@localhost ~]$
    

    2、Bash的特性:

    • 支持命令历史、命令补全
    • 支持管道、重定向
    • 支持命令别名
    • 支持命令行编辑
    • 支持命令行展开
    • 支持文件名通配
    • 支持变量
    • 支持编程

    Bash支持的引号:

    ""	    //双引号,弱引用,可以实现变量替换
    ''          //单引号,强引用,不完成变量替换
    ``	    //反引号,键盘左上角Esc下面的键,用于命令替换
    $()	    //与反引号用法相同
    

    Bash常用操作技巧之光标跳转

    Ctrl+a 		跳到命令行首 
    Ctrl+e 		跳到命令行尾 
    Ctrl+u 		删除光标至命令行首的内容 
    Ctrl+k 		删除光标至命令行尾的内容  
    Ctrl+l 		清屏
    

    Bash常用操作技巧

    //命令历史
        history         //查看命令历史
            -c              //清空命令历史
            -d OFFSET [n]   //删除指定位置的命令历史
            -w              //保存命令历史至历史文件~/.bash_history中
        //命令历史的使用技巧
            !n          	//执行命令历史中的第n条命令
            !-n         	//执行命令历史中倒数第n条命令
            !!          	//执行上一条命令
            !string     	//执行命令历史中最近一个以指定字符串开头的命令
            !$          	//引用前一个命令的最后一个参数
            esc,.       	//按下esc松开后按.,引用前一个命令的最后一个参数
    
    //tab键命令和路径补全
        在命令行输入命令时,如果只记得命令的开头几个字母,可使用tab键补全命令;如果有多个命令都是以某字母开头,按两次tab,可以列出所有以该字母开头的命令,供用户选择。
        在命令行输入文件路径时,如果忘记文件路径全称,则只需要输入文件路径开头几个字母,也可以使用tab键进行补全。
    
    //命令别名
    	alias 别名='命令 [选项] [参数]’
    
    在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围为当前的shell进程。
    
    //命令替换
    	把命令中某个子命令替换为其执行结果的过程被称作命令替换。
    	命令替换有两种方式:
    		$(命令)
    		'命令'
    
    //命令行展开
    	~:展开为用户的家目录
    	~USERNAME:展开为指定用户USERNAME的家目录
    	{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
    	/tmp/{a,b} = /tmp/a, /tmp/b 
    	/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
    
    //文件名通配符
        *       	    //匹配任意长度的任意字符
        ?       	    //匹配任意单个字符
        []      	    //匹配指定范围内的任意单个字符
            例如:[abc],[a-m],[0-9]
            [[:space:]]	//表示空白字符
            [[:punct:]]	//表示标点符号
            [[:lower:]]	//表示小写字母
            [[:upper:]]	//表示大写字母
            [[:alpha:]]	//表示大小写字母
            [[:digit:]]	//表示数字
            [[:alnum:]]	//表示数字和大小写字母
            [^]		//匹配指定范围之外的任意单个字符
    
    //环境变量
        PATH            //命令搜索路径
        HISTSIZE        //命令历史缓冲区大小
        SHELL           //当前shell
    
    折叠

    3、 Linux基础命令

    3.1命令格式

    <命令>  [选项]  [参数]
    
    选项:(可以有0个或多个) 
    	短选项:- 
    		多个选项可以组合: -a -b = -ab 
    	长选项:-- 
    		长选项通常不能组合 
    参数:命令的作用对象(可以有0个或多个)
    

    3.2命令类型

    Linux命令分为两种类型:

    • 内部命令:shell内置
    • 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
    type    //显示指定命令属于哪种类型
    [root@localhost ~]# type cd
    cd is a shell builtin
    

    3.3基础命令

    目录管理命令
     ls      //列出目录内容
            -l      //长格式
    	//以长格式显示的第一段含义:
                第一个字符:文件类型
                    -   //普通文件(f)
                    d   //目录文件
                    b   //块设备文件(block)
                    c   //字符设备文件(character)
                    l   //符号链接文件(symbolic link file)
                    p   //命令管道(pipe)
                    s   //套接字文件(socket)
                后面九位字符:文件权限        
    		9位,每3位一组,每一组:rwx(读,写,执行)
    	//以长格式显示的第二段含义:
                文件硬链接的次数
    	//以长格式显示的第三段含义:
                文件的属主(owner//以长格式显示的第四段含义:
                文件的属组(group//以长格式显示的第五段含义:
                文件大小(size),单位是字节
    	//以长格式显示的第六,七,八段含义:
                时间戳(timestamp),最近一次被修改的时间
                    访问      //access,访问的时间
                    修改      //modify,文件内容被修改的时间
                    改变      //change,metadata(元数据)变化的时间
             -h     //做单位转换
             -a     //显示以.开头的隐藏文件
                .       //表示当前目录
                ..      //表示父目录
             -d     //显示目录自身属性
             -i     //显示文件的inode(index node)
             -r     //逆序显示
             -R     //递归(recursive)显示
    
        cd      //切换目录
    
        pwd     //查看当前所在目录路径
    
        tree    //查看目录树
            -d          //只显示目录
            -L level    //指定显示的层级数目
            -P 字符串    //显示指定字符串匹配到的文件
    
    折叠
    文件管理命令
     mkdir   //创建目录
            -p      //创建目录时若父目录不存在则自动创建
            -v      //显示目录创建过程
    
        rmdir   //删除目录,只能删除空目录
    
        touch   //创建一个空文件,touch还有一个作用是修改文件的时间戮
    
        stat    //显示文件或文件系统的状态
    
        rm      //删除文件,删除命令默认会提示是否需要删除,如果要使用命令本身可以在命令前加一个\。
    	    例如:\rm,这样删除就不会有提示了
            -r      //递归删除,删除目录时必须使用此选项
            -f      //强制删除,不询问
    
        cp      //复制文件,一个文件到一个文件,多个文件到一个目录
            -r      //递归拷贝,拷贝目录时必须使用此选项
            -p      //拷贝时保留原权限
            -a      //相当于-rp
    
        mv      //移动文件
    
    文本内容查看命令
    cat     //将文件内容输出至标准输出(屏幕)
            -n      //显示行号
        注意:使用cat查看文件内容时会将文件的所有内容加载至内存,所以应避免使用cat打开巨大文件
    
        tac     //倒序打印文件内容至标准输出
    
        more    //全屏查看文本文件内容,只能从前往后,不能从后往前。
    	        //文件内容显示完后自动退出
    
        less    //全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用
    
        head    //从头部开始打印文件内容,默认打印10行
            -n      //指定要打印的行数,-n 可以是15也可以是-15
    
        tail    //查看文本文件尾部内容
            -n      //指定要打印的行数,可以是-n 15也可以是-15
            -f      //实时监测文件末尾内容
    
    主机管理命令
    //主机名管理
    
        hostname    //查看或临时修改主机名,重开终端有效,重启失效
    				如:hostname zsl
        hostnamectl //查看或永久修改主机名,重开终端生效,重启依然有效
        		如:hostnamectl set-hostname zsl
        		
    //其它
    
        time        //显示命令的执行时间,例如time ls /etc
    
        clear       //清屏
    
        whoami      //显示当前登录用户
       
        who         //查看当前在线用户
    
        w           //显示当前在线用户并显示其在运行的命令
    
        which       //显示指定命令的绝对路径
    
        date        //显示或设置日期与时间
            	//不带参数的date用于显示当前系统日期与时间
            //格式化输出时间:+
                %Y      //年
                %m      //月
                %d      //日
                %F      //年-月-日
                %H      //时
                %M      //分
                %S      //秒
            -s      //以字符串方式设置时间
    
        cal     	//打印日历
       
        ldd     	//查看指定程序有哪些依赖库文件
            程序组成:
                二进制程序
                库文件
                配置文件
                帮助文件
    
    折叠

    3.4如何获取命令帮助

    内部命令:
    	help COMMAND
    外部命令:
    	COMMAND –help
    man手册:
    	man COMMAND
    //man手册注意事项
    []:可选
    <>:必选
    …:可出现多次
    |:多选一
    {}:分组
    NAME:命令名称及功能简要说明
    SYNOPSIS:用法说明,包括可用的选项
    DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
    OPTIONS:说明每一个选项的意义
    FILES:此命令相关的配置文件
    BUGS:报告bug
    EXAMPLES:命令示例
    SEE ALSO:另外参照
    翻屏:空格(向后翻一屏),b键(向前翻一屏)
    查找:
    	/KEYWORD:从前往后查找KEYWORD
    	?KEYWORD:从后往前查找KEYWORD
    	n:下一个匹配的行
    	N:前一个匹配的行
    	q:退出
    
    折叠


    __EOF__

  • 本文作者: Alone-林
  • 本文链接: https://www.cnblogs.com/Alone-8712/p/16522872.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    ArcGIS中的Python入门知识点整理
    FANUC机器人_通过ROBOGUIDE从零开始做一个离线仿真项目(3)
    从瀑布模式到水母模式:ChatGPT如何赋能软件研发全流程
    k8s部署rook ceph
    【架构师】的修炼之道都需要学习哪些?看看这些就够了
    腾讯广告RACE曝光归因模型
    pandas基础-pandas之Series+ 读取外部数据+dataframe+dataframe的索引
    数据结构与算法--001--时间和空间复杂度
    Activiti工作流使用之SpringBoot整合Activiti
    基于SSM的校园驿站管理系统
  • 原文地址:https://www.cnblogs.com/Alone-8712/p/16522872.html