zoukankan      html  css  js  c++  java
  • 乱七八糟想到什么记什么6

    执行命令

    • runlevel
      用来显示run在那层
      用 init 0 3 5 6来切换 0关机 6 重启
    • reboot
      重启计算机
    • lscpu
      查看cpu详情
    • exit推出 logout注销
      -echo
      显示PS1 显示SHELL类型

    程序执行的逻辑:

    输入字符串->提交给shell->shell首先判断是不是bash中自带的程序
    ls /bin/bash
    系统启动的时候已经加载到内存中了

    • 内部命令:bash中集成了很多内部命令,随着shell放在内存里了。-
    • 外部命令:不属于shell的独立的程序文件,并不集成在bash中,属于外部命令
      bin下一大堆外部命令
      用type判断是内部命令还是外部命令
    [07:53:49 2u@u20[ /]$type echo
    echo is a shell builtin  ##内部命令builtin
    [07:57:18 2u@u20[ /]$type ls
    ls is aliased to `ls --color=auto'  ##别名
    [07:57:27 2u@u20[ /]$type init
    init is /usr/sbin/init  ##显示路径的是外部命令
    

    外部命令存放规则

    外部命令的存放是有规范的,并不是任何一个磁盘文件都可以成为外部命令。

    [07:57:50 2u@u20[ /]$echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
    

    存放外部命令文件夹搜索次序,如果找到了,就将其加载到内存中运行。命令为二进制可执行文件。
    如果找不到,就提示错误。

    内部命令优先执行,效率更高

    哈希

    为了加速访问,Linux中有个逻辑,第一次执行之后,就会将执行路径记录到内存里边,成为哈希。

    hash
    曾经执行过的外部命令的路径

    [08:01:39 2u@u20[ /]$hash
    hits	command
       1	/usr/bin/lscpu
       1	/usr/bin/hostname
       1	/usr/sbin/runlevel
       5	/usr/bin/who
       1	/usr/bin/whoami
       1	/usr/bin/tty
       1	/usr/bin/sudo
       2	/usr/bin/file
       1	/usr/bin/free
       3	/usr/bin/ls
       6	/usr/bin/cat
    

    Hash缓存表
    系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的
    路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不
    存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率
    hash 命令常见用法

    • hash 显示hash缓存
    • hash -l 显示hash缓存,可作为输入使用
    • hash -p path name 将命令全路径path起别名为name
    • hash -t name 打印缓存中name的路径
    • hash -d name 清除name缓存
    • hash -r 清除缓存

    help

    用来显示内部命令的帮助,同时也显示了所有的内部命令

    enable

    列出所有可用的内部命令
    enable COMMD
    enable -n 禁用内部命令

    . source

    让我们写的配置文件生效

    env.sh
    env是英文单词环境的简写

    [14:18:52 root@C8[ ~]#cat /etc/profile.d/env.sh 
    PS1="[e[1;32m][	 [e[1;33m]u[e[35m]@h
    [e[1;31m] W[e[1;32m]][e[0m]\$"
    

    改文件不会立即生效,重启或重新登录,才会重新读取配置文件。
    . /etc/profile.d/env.sh 系统重新读取新内容让他生效

    如果外部命令和内部命令重名,优先执行内部命令
    在内部命令失效的情况下,可以执行外部命令。

    which

    显示出外部命令的路径
    which -a |--skip-alias 跳过别名

    whereis

    显示的内容更多,不但显示出外部命令的路径还能显示出外部命令帮助文档的路径

    * * * 胖并快乐着的死肥宅 * * *
  • 相关阅读:
    使用TransactionScope实现事务
    CYQ.Data 框架系列
    MVP
    DYCOM用于开发网络应用程序的通信部分功能的快速开发
    架构师要了解
    Entity Framework资源
    Sina Blogs
    关于TransactionScope出错:“与基础事务管理器的通信失败”的解决方法总结
    在西方的程序员眼里,东方的程序员是什么样的?
    net2.0事务学习
  • 原文地址:https://www.cnblogs.com/bpzblog/p/12813957.html
Copyright © 2011-2022 走看看