zoukankan      html  css  js  c++  java
  • Linux基础学习

    写在前面

    一方面,为了阿里云服务器的续费,开始学习Linux。另一方面, 近期学的很多东西都需要装到Linux服务器上,那么一些基本命令的学习显然是必要的。最近就抽了个时间来学习一下基本的Linux命令。写一篇博客权当记录,方便以后自己查询。

    命令的基本格式

    基本格式如下:

    COMMAND [OPTIONS..] [ARGUMENTS..]
    

    其中,COMANND代表命令的名字,如type,cd等等,option代表选项,分为短选项和长选项,如-l,-h 为短选项,--all,--human为长选项。arguments为参数,表示命令的作用对象,如文件名,用户名等等。

    多个选项以及多参数和命令之间用空白字符分割。

    要取消和结束命令的执行,可以使用ctrl+c或者ctrl+d,多个命令可以用分号(;)隔开,一个命令也可以用分成多行来输入

    Linux中的命令执行顺序

    在Linux中,通过Shell来将命令转换为计算机可以识别的二进制流,而在Shell中,不同的shell有不同的内部命令,我们可以通过type来查看,如:

    type cd
    

    就可以发现cd是一个shell的内部命令。当我们输入一条命令(在没有定义别名的前提下)时,shell会先寻找内部命令,如果没有则去hash表里寻找有没有已缓存的命令路径,如果没有则去$PATH下寻找命令。找不到则会报错。我们可以通过以下命令查看PATH变量的值

    echo $PATH
    

    日期和时间

    Linux中有两种时钟:

    • 系统时钟:由Linux内核通过CPU的工作频率进行的
    • 硬件时钟:主板

    相关的命令操作:

    data 显示和设置系统时间
     date +%s
     date -d
    hwclock ,clock:显示硬件时钟
    -s(--hctosys) 以硬件时钟为准,校正系统时钟
    -w(--systohc) 以系统时钟为准,校正硬件时钟
    时区: /etc/localtime 在centos7上还可以用timedatectl命令
    显示日历:cal (-y) 不加-y显示是当月,加了-y显示的是整年的日历 可以查看某年的日历,如cal 2019,可以显示某月的日历,如:cal 08 2008
    

    简单的基础命令

    • 关机:halt(不断电) poweroff

    • 重启:reboot -f(强制,不调用shutdown),-p(切断电源)

    • 关机或重启:shutdown[OPTION]...[TIME] [MESSAGE]

      -r:reboot,-h:halt,-c:cancel TIME:无指定,默认相当于+1。now:立刻,相当于+0。+m,相对时间表示法,几分钟之后。如+3。hh:mm 绝对时间表示,指明具体时间

    • whoami:显示当前登录的有效用户

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

      w:系统当前所有的登录会话及所做的操作

    • nano:文本编辑器

    • init:

      • init 0 关机
      • init 3 切换到命令行
      • init 5 切换到图形化界面
      • init 6 重启
    • alias:

      定义别名的命令,格式如下:

      alias aplianame=cmd
      

      其中alias是命令 aplianame是别名,等号后面的为原名

      如果想重启shell后还能使用,需要保存到文件(对当前用户就在~/.bashrc文件中定义,对于所有用户则在/etc/bashrc中定义。)中

      我们通过alias命令也可以直接查看已定义的别名

      我们也可以通过unalias来取消别名(但定义在文件里的需要删掉,若不删掉则重启shell后照样能用)

      如果别名和原命令同名,要执行原命令,可以使用:

      aliasname
      "aliasname"
      'aliasname'
      command aliasname
      /path/command
      

      其中最后一种只能在外部命令使用。

    • echo:

      echo命令用来显示字符,默认会换行。我们可以通过-n来不自动换行,输入-e来启动字符的解释功能,如a(警告声), (换行),类似于转义字符。

      在我们使用echo时,对字符串加单引号或双引号是不一样的意义的。单引号,被称作强引用,变量不会替换,如echo '$PATH' ,双引号被称作弱引用,变量会被替换。

      Tips:还有一种反向单引号(``),效果要更为强大,会把反单引号内的命令也执行。可以执行下列命令看看:

      echo `echo $PATH`
      

      执行结果如下:

      /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      

      这种写法一般用于命令嵌套的时候,前面的命令调用后面的结果,如:

      ls -l `echo $SHELL`
      

      同样的$()和反向单引号是同样的效果

    tab键补全

    在linux中命令过长时,可以使用tab键进行自动补全。如果命令只有一条,那么就会自动补全。如果有很多,则会弹出提示是否显示列表。

    同样的,路径也可以补全。如果唯一则会直接补全,不唯一则会提示是否显示列表

    获得帮助

    在Linux里的命令,有很多可以获得帮助的命令,如:

    whatis cd
    

    在whatis后面写上要查询的命令名称,就会显示出简短的解释了。

    但需要注意的是,whatis依赖于一个特别的数据库,在我们刚装上系统的时候是无法执行的。我们可以通过mandb(centos7)或者makewhatis(centos6)来立即构建数据库。

    对于内部命令,我们可以使用help命令,如下:

    help enable
    

    help后面加上命名名称,就会显示出详细的解释了。

    对于外部命令,我们可以使用命令后+ --help的方式获取帮助,如:

    date --help
    

    也可以使用man命令查看帮助,显示的要更为全面:

    man date
    

    man的用法有很多,具体可以通过搜素引擎查看,这里不再赘述了。

    查看历史命令

    要查看历史命令,我们直接使用history命令即可。当我们退出用户后,Linux系统会自动把我们这次登陆时写的命令存储到硬盘上,位置在(~/.bash_history),用于方便我们使用。要使用历史记录,用感叹号!加上命令的行数即可,如我通过history命令查看到:

       91  whatis xx
       92  whatis lang
       93  whatis cd
       94  whatis rem
       95  whatis rm
       96  makewhatis
       97  whatis ls
       98  mandb
       99  help enable
    

    我想要使用第91行的命令,我直接输入!91即可。

    我想要使用上一个命令,有四种方式:

    1. 使用上方向键,然后按回车执行
    2. 输入!!并按回车执行
    3. 输入!-1并回车执行
    4. 按ctrl+p回车执行

    其实,我们可以用上下方向键非常方便的选择历史记录。

    另外的,如果我想要使用man开头的命令,如上述的例子,则可以直接使用!man,因为历史里只有这一条的前缀是man。这就给我们的使用带来了很大的方便。

    但历史命令不可能永久的存储下去,我们可以通过查看HISTSIZE这个变量来查看内存中最大可存储的历史记录的量:

    echo $HISTSIZE
    

    默认值为一千,说明内存中只能存储最近一千条的历史记录。

    还有一个表示历史文件中存放的历史的条数的变量:

    echo $HISTFILESIZE
    

    要更改值当然也是可以的。我们可以修改在~/.bashrc里修改HISTSIZE和HISTFILESIZE的大小。

  • 相关阅读:
    c++局部变量在外可用的方法
    Git更新代码到本地
    Redis客户端断开重连功能要点
    android make
    cb-A10 调整分区
    linux内核学习:中断中推后执行的部分
    linux内核学习:中断
    linux内核学习:进程调度
    linux内核学习:进程管理
    ubuntu 安装android源码编译环境 遇到的问题
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/13388593.html
Copyright © 2011-2022 走看看