美文网首页
Linux 入门篇第四章

Linux 入门篇第四章

作者: 数据革命 | 来源:发表于2019-10-22 21:06 被阅读0次

    Linux 入门篇第四章

    文章导航

    • 上一章说了很多常用命令和一些Linux入门
    • 这一章继续linux入门

    命令类别

    • 在Linux使用命令,命令他是有类别的,也就是我们所说的内部命令外部命令
    • 那什么时候内部命令,所谓内部命令就是集成到shell,也就是集成在bash里面的命令就是内部命令
    • 有些命令是集成在硬盘里面的,叫外部命令
    • 那怎么查看内部命令
    [root@CentOS6 ~]#type cd   这是查看是否是内部命令
    cd is a shell builtin   出现这个就表示他是内部命令
    
    [root@CentOS6 ~]#type ifconfig   
    ifconfig is /sbin/ifconfig     出现这个就表示他是外部命令
    
    
    • 内部命令和shell集成在一块,外部命令都是一些的小程序
    • 内部命令依赖于shell类型,如果不是你要的shell,你可以自己安装一个
    • 大部分都是外部命令,内部命令都是一些常见命令
    [root@CentOS6 ~]#help    列出所有内部命令,help本身是内部命令
    
    [root@CentOS6 ~]#enable   也可以列出所有内部命令
    
    [root@CentOS6 ~]#type -a pwd  显示出所有内部和外部命令
    pwd is a shell builtin
    pwd is /bin/pwd 
    
    [root@CentOS6 ~]#type -P ls  显示外部命令的路径
    /bin/ls
    
    [root@CentOS7 ~]# which  ls         来查看外部命令的路径
    alias ls='ls --color=auto'
            /usr/bin/ls 
    [root@CentOS6 ~]#which -a pwd   显示所有PATH变量
    /bin/pwd
    
    [root@CentOS6 ~]#whereis ls  列出外部命令已经帮助文档路径
    ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
    
    
    • 内部命令不想用了还可以来禁用
    [root@CentOS6 ~]#enable -n   来禁用命令  还可以禁用多个命令
    
    [root@CentOS6 ~]#enable   在输入命令不需要加-n就启用被禁用的命令了
    
    [root@CentOS7 ~]# enable -n   列出所有被禁用的命令
    
    
    • 如果一个命令,内部和外部都有,内部命令优先级最高
    • 外部命令一般是存在硬盘的某个路径下
    • 外部命令都是一个一个的文件,那我敲一个命令他为什么这么块找到这么命令
    • 那是因为他是依靠下面这个路径
    [root@CentOS7 ~]# echo $PATH  这个很重要PATH路径
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    
    他依靠这写路径,如果找不到他就报错说找不到,如果他执行过一次以后他就放在内存里面了
    
    • 有的时候会出现这样的情况
    [root@CentOS7 ~]# which ls   如果出现这样的情况,这就是别名
    alias ls='ls --color=auto'
            /usr/bin/ls      
    
    [root@CentOS7 ~]# which --skip-alias ls  这个选项可以忽略别名
    /usr/bin/ls
    
    • 别名稍后在介绍

    Hash缓存表

    • 系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。
    • 利用hash缓存表可大大提高命令的调用速率
    [root@CentOS7 ~]# hash  这就是我用过的命令次数
    hits    command
       1    /usr/bin/tty
       2    /usr/bin/nano
       1    /usr/bin/rz
       1    /usr/sbin/init
       5    /usr/bin/cat
       2    /usr/bin/id
       3    /usr/bin/w
       2    /usr/bin/ls
       4    /usr/bin/clear
    
    
    • hash常见用法:

      • hash 显示hash缓存
        • hash –l 显示hash缓存,可作为输入使用
        • hash –p path name 将命令全路径path起别名为name
        • hash –t name 打印缓存中name的路径
        • hash –d name 清除name缓存
        • hash –r 清除所有缓存
    • 命令执行规律,首先看是外部命令还是内部命令,如果是内部命令就直接执行了,如果是外部命令就看哈希表根据缓存表里面去找,如果有就执行了,如果没有,就去PATH变量里面一个一个去找,找到了就执行,如果找不到就报错了

    别名

    • 所谓别名就是小名,昵称
    • 别名就是给别秒长的路径或经常用的路径给他取个名字,方便记忆
    [root@CentOS7 ~]# cd /etc/sysconfig/network-scripts/  比如我给这个路径取一个别名
    
    [root@CentOS7 ~]# alias cdnet="cd /etc/sysconfig/network-scripts/"    这就是我给他取的一个别名,cdnet,让后回车就可以了
    
    [root@CentOS7 ~]# cdnet
    [root@CentOS7 network-scripts]#   看直接来这个路径下了
    
    • alias 他本身是内部命令,如果直接输入alias他会显示出所有定义好的别名
    [root@CentOS7 ~]# alias  所有别名
    alias cdnet='cd /etc/sysconfig/network-scripts/'   这个是我刚加的
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    
    
    • 但是一退出就没有了,所以需要重新定义,我们要写到文件里
    [root@CentOS7 ~]# nano .bashrc    进入这个文件,在里面输入
    
    # .bashrc
    
    # User specific aliases and functions
    
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    alias cdnet='cd /etc/sysconfig/network-scripts'
    
    用 .  .bashrc  可以让你的文件生肖 不需要退出了
    
    [root@CentOS7 ~]# . .bashrc    必须要区分空格,让别名生效
    
    unalias   取消别名   -a取消所有别名
    
    • 让后保存,就可以了就算退出了,别名照样在
    • 也可以在下面这个路径下加,但是所有用户都会生效,不建议使用这个路径
    [root@CentOS6 ~]#vi /etc/bashrc   这个路径下,不建议改,如果改了会全部用户生效
    
    • 如果你使用了别名,一定要使用命运本身,你可以使用下面方式
    [root@CentOS6 ~]#'grep'      第一种方法
    
    [root@CentOS6 ~]#\grep        第二种方法
    

    命令语法格式

    • 命令格式总结
      • 执行命令的时候有时候他解决不了根本的问题,所以我们有时候我们就需要参数来帮我们来解决
      • 也就是参数方案 ,也就是命令 选项 参数
      • 选项在Linux里面有两种语法,一种是短格式,一种是长格式
    COMMAND [OPTIONS...] [ARGUMENTS...]
    选项:用于启用或关闭命令的某个或某些功能
    短选项:-c 例如:-l, -h
    长选项:--word 例如:--all, --human-readable
    参数:命令的作用对象,比如文件名,用户名等
    
    • 长格式用的很少,短格式用的很多
    • 比如我来实验一个短格式
    [root@CentOS6 ~]#ls
    anaconda-ks.cfg  Downloads           Music     Templates
    Desktop          install.log         Pictures  Videos
    Documents        install.log.syslog  Public    新建文本文档.txt
    
    • 长格式选项
    [root@CentOS6 ~]#ls --all
    .                .cshrc     .gtk-bookmarks      Public
    ..               .dbus      .gvfs               .pulse
    .abrt            Desktop    .ICEauthority       .pulse-cookie
    anaconda-ks.cfg  Documents  .imsettings.log     .ssh
    .bash_history    Downloads  install.log         .tcshrc
    .bash_logout     .esd_auth  install.log.syslog  Templates
    .bash_profile    .gconf     .local              Videos
    .bashrc          .gnome2    Music               .viminfo
    .cache           .gnote     .nautilus           .Xauthority
    .config          .gnupg     Pictures            新建文本文档.txt
    
    
    • 功能虽然一样,一般是短格式居多,容易理解
    • 但是不是所有命令都有短格式和长格式,注意区分
    • 有时候选项是可以写在一块的,注意区分,在有些场合下前后是由区别的,大部分没有区别
    • 选项和参数大部分是不区分,但是大部分区别如:
    [root@CentOS6 ~]#ls -l install.log
    -rw-r--r--. 1 root root 50698 Oct 20 19:13 install.log
    [root@CentOS6 ~]#ls  install.log  -l
    -rw-r--r--. 1 root root 50698 Oct 20 19:13 install.log
    
    • 但是为了习惯就,经量不要这么写
    • 短格式可以写到一起
    [root@CentOS6 ~]#ls -lh
    total 104K
    -rw-------. 1 root root 1.4K Oct 20 19:13 anaconda-ks.cfg
    drwxr-xr-x. 2 root root 4.0K Oct 20 23:46 Desktop
    drwxr-xr-x. 2 root root 4.0K Oct 20 23:46 Documents
    drwxr-xr-x. 2 root root 4.0K Oct 20 23:46 Downloads
    -rw-r--r--. 1 root root  50K Oct 20 19:13 install.log
    -rw-r--r--. 1 root root  10K Oct 20 19:11 install.log.syslog
    drwxr-xr-x. 2 root root 4.0K Oct 20 23:46 Music
    drwxr-xr-x. 2 root root 4.0K Oct 20 23:46 Pictures
    drwxr-xr-x. 2 root root 4.0K Oct 20 23:46 Public
    
    • 但是长格式和短格式是不能写到一起
    • 文件参数一般是文件比较多,还可以用用户,比如:
    [root@CentOS6 ~]#id -u root
    0
    
    • 如果要一直执行多条命令,如:
    [root@CentOS6 ~]#ls;pwd;hostname;alias
    anaconda-ks.cfg  Documents  install.log         Music     Public     Videos
    Desktop          Downloads  install.log.syslog  Pictures  Templates
    /root
    CentOS6.9
    alias cdnet='vi /etc/sysconfig/network-scripts/ifcfg-eth0'
    alias cp='cp -i'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias vi='vim'
    
    • 如果我一个命令写错了会出现这样结果
    [root@CentOS6 ~]#ls;pwd;hoame;aias    
    anaconda-ks.cfg  Documents  install.log         Music     Public     Videos
    Desktop          Downloads  install.log.syslog  Pictures  Templates
    /root
    -bash: hoame: command not found
    -bash: aias: command not found
    
    • 那我可以不可以一个命令一行,要这么干,但是这么做慎用
    [root@CentOS6 ~]#ls\
    > alias\
    > hostname\
    

    简单命令

    [root@CentOS6 ~]#clock        硬件时间  -s  覆盖内核时间  -w  覆盖硬件服务器
    
    [root@CentOS6 ~]#date       软件时间    
    
    [root@CentOS6 ~]#ntpdate  ntp1.aliyun.com   时间同步服务器  这个网址是阿里云的时间服务器,你额可以同步其他的时间服务器
    
    如果你想看中文时间需这样搞:
    [root@CentOS6 ~]#LANG="zh_CN.UTF-8"
    [root@CentOS6 ~]#date
    2019年 10月 22日 星期二 20:24:55 CST
    一般不用
    
    [root@CentOS6 ~]#cal        日历
        October 2019    
    Su Mo Tu We Th Fr Sa
           1  2  3  4  5
     6  7  8  9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30 31
    
    由一个1752年的可以去查找下为什么,有一个很有意思的故事
    [root@CentOS6 ~]#cal 09 1752 
       September 1752   
    Su Mo Tu We Th Fr Sa
           1  2 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30
    
    重启命令
    [root@CentOS6 ~]#reboot    -f 强制重启   -p  切断电源
    
    关机或重启:shutdown
    shutdown [OPTION]... TIME [MESSAGE]
    -r: 重启  now  马上重启
    -h: 定时关机  一分钟后关机   如果有+号就是特点时间管理 如  +10就是1你分钟以后关机   还可以定时关机 如18:00 关机  还可以发消息  如
    
    -c:取消关机
    
    

    其他链接

    相关文章

      网友评论

          本文标题:Linux 入门篇第四章

          本文链接:https://www.haomeiwen.com/subject/yaucvctx.html