前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 基础上

Linux 基础上

作者头像
残浔
发布2023-05-11 19:50:08
7180
发布2023-05-11 19:50:08
举报
文章被收录于专栏:UQUQ

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

命令行界面

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

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

Linux基础命令

格式

代码语言:javascript
复制
命令  [选项]  [参数]

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

类型

  • 内部命令:shell内置
  • 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
  • type 显示那种类型
代码语言:javascript
复制
[root@C20230104840383 ~]# type cd
cd 是 shell 内嵌

目录管理命令

代码语言:javascript
复制
//目录管理

    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 字符串    //显示指定字符串匹配到的文件

文件管理

代码语言:javascript
复制
/文件管理

    mkdir   //创建目录
        -p      //创建目录时若父目录不存在则自动创建
        -v      //显示目录创建过程

    rmdir   //删除目录,只能删除空目录

    touch   //创建一个空文件,touch一个已经创建的文件修改时间戳

    stat    //显示文件或文件系统的状态

    rm      //删除文件,删除命令默认会提示是否需要删除。
	   
        -r      //递归删除,删除目录时必须使用此选项
        -f      //强制删除,不询问

    cp      //复制文件,一个文件到一个文件,多个文件到一个目录  可同时移动多个 最后必须为目的地
        -r      //递归拷贝,拷贝目录时必须使用此选项
        -p      //拷贝时保留原权限
        -a      //相当于-rp

    mv      //移动文件 可同时移动多个 最后必须为目的地

            //特殊用法 改名 在当前目录进行 mv 123 321

    install //复制文件并且设置属性
        -m MODE	 //复制时修改权限
        -o OWNER //复制时修改文件属主
        -g GROUP //复制时修改属组

主机管理

代码语言:javascript
复制
//主机名管理

    hostname    //查看或临时修改主机名,重开终端生效,重启失效

      hostname uquq   //临时修改主机名
   
    hostnamectl //查看或永久修改主机名,重开终端生效,重启依然有效
      hostnamectl set-hostname uquq  //永久修改主机名
 
    或者直接编辑配置文件 vim后续会继续说到
     vim /ect/hostname    //按i进行编辑光标在前一位进行输入或者按a进行编辑光标会自动往后移一位 一般用a方便插入      按之后最下面会显示 -- INSERT -- 
     可移动光标删除写入主机名   按ESC退出编辑 输入:wq保存退出
   
//其它

    time        //显示命令的执行时间,例如time ls /etc

    clear       //清屏

    whoami      //显示当前登录用户
   
    who         //查看当前在线用户

    w           //显示当前在线用户并显示其在运行的命令

    which       //显示指定命令的绝对路径

    date        //显示或设置日期与时间
        	//不带参数的date用于显示当前系统日期与时间
        //格式化输出时间:+
            %Y      //年
            %m      //月
            %d      //日
            %F      //年-月-日
            %H      //时
            %M      //分
            %S      //秒      如date "+%Y-%m-%d"
        -s      //以字符串方式设置时间如 date -y "+%Y-%m-%d"

    cal     	//打印日历
               cal -3 //打印三个月 上下一个月
               cal -y //打印一年
    
    bc      	//Linux中的计算器
	-l	//使用标准数学库
        echo 'scale=3;20/2'|bc -l
	//scale=3表示保留两位小数
        
    ldd     	//查看指定程序有哪些依赖库文件
        程序组成:
            二进制程序
            库文件
            配置文件
            帮助文件

获取命令帮助

代码语言:javascript
复制
//内部命令
    help COMMAND
//外部命令
    COMMAND --help
//在线文档
    info COMMAND    
//命令手册  manual
    man COMMAND
//文档
    /usr/share/doc 
    
whatis COMMAND      //用于查看COMMAND出现在man的哪一章节中。
		    //查询man帮助中此命令的作用

//man是分章节的,以下是每一章节的内容介绍:
    1   用户命令(/bin,/usr/bin,/usr/local/bin);
    2   系统调用;
    3   库调用;
    4   特殊文件(设备文件);
    5   文件格式(配置文件 的语法);
    6   游戏;
    7   杂项(Miscellaneous);
    8   管理命令(/sbin,/usr/sbin,/usr/local/sbin)
    
//man手册注意事项:
    []              //可选
    <>              //必选
    ...             //可以出现多次
    |               //多选一
    {}              //分组
    NAME            //命令名称及功能简要说明
    SYNOPSIS        //用法说明,包括可用的选项
    DESCRIPTION     //命令功能的详尽说明,可能包括每一个选项的意义
    OPTIONS         //说明每一个选项的意义
    FILES           //此命令相关的配置文件
    BUGS            //报告bug
    EXAMPLES        //使用示例
    SEE ALSO        //另外参照
    
//man翻屏
    SPACE	    //向后翻一屏
    b		    //向前翻一屏
    enter	    //向后翻一行
    k		    //向前翻一行
    
//查找
    /text	    //向后
    ?text           //向前
    n               //下一个
    N               //前一个
    q               //退出    

bash特性

bash支持以下特性:

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

bash支持的引号

代码语言:javascript
复制
""	    //双引号,弱引用,可以实现变量替换
''          //单引号,强引用,不完成变量替换
``	    //反引号,键盘左上角Esc下面的键,用于命令替换
$()	    //与反引号用

常用操作

代码语言:javascript
复制
//光标跳转
    Ctrl+a	//跳到命令行首
    Ctrl+e	//跳到命令行尾
    Ctrl+u	//剪切光标至命令行首的内容
    Ctrl+k	//剪切光标至命令行尾的内容
    Ctrl+<-	//光标定位到离自己最近的一个单词前面
    Ctrl+p	//重复上一次命令
    Ctrl+w	//剪切前面的字符至上一个空格处
    Ctrl+y	//粘贴或者恢复上次的删除。
    Ctrl+l	//清屏
    Ctrl+s	//暂时冻结当前shell的输入
    Ctrl+q	//解冻

//tab键命令和路径补全
    在命令行输入命令时,如果只记得命令的开头几个字母,可使用tab键补全命令;如果有多个命令都是以某字母开头,按两次tab,可以列出所有以该字母开头的命令,供用户选择。
    在命令行输入文件路径时,如果忘记文件路径全称,则只需要输入文件路径开头几个字母,也可以使用tab键进行补全。
    

//命令别名 
alias name="命令 参数"

[root@cx ~]# alias kkkk="ls /root"
[root@cx ~]# kkkk
anaconda-ks.cfg  iftop-1.0pre4 //例如


//命令行常见特殊符号
    ~       	    //展开为用户的家目录
    ~USERNAME       //展开为指定用户的家目录
    {}      	    //列表,可用于存放数据 例如创建5 0个文件 touch abc{1..50} 
    \		    //转义,使得后面一个特殊字符没有任何特殊含义
    &&		    //前面的命令执行成功后才执行后面的命令
    ||		    //前面的命令执行失败后才执行后面的命令
    ;		    //不管前面的命令执行成功还是失败都执行后面的命令

//文件名通配符
    *       	    //匹配任意长度的任意字符 例如看以1结尾的文件 ls *1以CX开头 ls CX*
    ?       	    //匹配任意单个字符 ls CX? 表示查看三个字符且以CX开头的文件
    []      	    //匹配指定范围内的任意单个字符
              // ls CX[0-9] 表示查看三个字符且以CX开头的文件且以0-9结尾的文件

        例如:[abc],[a-m],[0-9]
        [[:space:]]	//表示空白字符
        [[:punct:]]	//表示标点符号
        [[:lower:]]	//表示小写字母
        [[:upper:]]	//表示大写字母
        [[:alpha:]]	//表示大小写字母
        [[:digit:]]	//表示数字
        [[:alnum:]]	//表示数字和大小写字母
        [^]		//匹配指定范围之外的任意单个字符

//环境变量
    PATH            //命令搜索路径
    HISTSIZE        //命令历史缓冲区大小
    SHELL           //当前shell
//bash内置变量
    RANDOM          //保存着0-32768之间的随机数

//命令历史
    history         //查看命令历史
        -c              //清空命令历史
        -d OFFSET [n]   //删除指定位置的命令历史
        -w              //保存命令历史至历史文件~/.bash_history中

    //命令历史的使用技巧
        !n          	//执行命令历史中的第n条命令
        !-n         	//执行命令历史中倒数第n条命令
        !!          	//执行上一条命令
        !string     	//执行命令历史中最近一个以指定字符串开头的命令
        !$          	//引用前一个命令的最后一个参数
        esc .       	//按下esc松开后按. 引用前一个命令的最后一个参数
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年1月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • shell简介
  • 命令行界面
  • Linux基础命令
    • 格式
    • 类型
      • 目录管理命令
        • 文件管理
          • 主机管理
            • 获取命令帮助
              • bash特性
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档