linux命令类型及执行顺序
一 为什么要使用命令行
当初级Linux用户面对缺乏图形界面的Linux时很多人都会抱怨:为何要死守命令行?为什么不采用人机互交好、更简单的图形界面呢?事实上,图形界面在某些任务方面确实高效而且简单,但是在某些任务面前,图形界面就望尘莫及了。例如批量的安装与批量的文件处理。
Linux是一款文本式驱动的操作系统,有点就是在于可以进行命令界面操作。相比图形界面来说,命令界面可以节省大量的物理内存空间并且可以避免在图形界面下出现的密密麻麻的列表;同时在命令界面可以完成相当复杂的运算。当然我们也可以把图形界面理解成命令行的图形运算外壳。
二 Linux命令行的重要作用
相比图形界面,Linux命令行才是Linux系统的真正核心,利用命令行可以对系统进行各种配置,要熟练并成功管理Linux操作系统就必须对Linux命令行有深入的了解。Linux下的命令行有助于初学者了解系统的运行情况和计算机的各种设备。比如:中央处理器、内存、磁盘驱动、各种输入和输出设备以及用户文件,都是在Linux系统管理命令下运行的。可以说Linux命令行对整个系统的运行以及设备与文件之间的协调都具有核心的作用。
虽然近些年个人计算机的潮流已经从命令行转向了图形界面方向,用户也热衷于图形界面的应用,但是在服务器应用与高级别使用上Linux命令行依然是核心应用。这取决于在字符界面下的操作具有更好的稳定性与安全性。
综上所述,不论是Linux的初学者还是一个正宗的Linux老鸟,Linux命令行都是必不可少的系统管理利器。需要记住的是命令行不是单纯的一段命令,它是一种工具,它也需要安装。
三 命令分类
Linux命令分为两类,具体为内部命令和外部命令
- 内部命令:指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type、echo、time、true等。
- 外部命令:指通过外部介质安装的命令工具包,如通过yum、rpm等方式安装,具体安装路径在$PATH下。
注:所有的内部命令在外部命令中都有存在,只是为了提高优先级而在shell中集成一部分
- 命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径 [root@localhost ~]# type time
time is a shell keyword
[root@localhost ~]# type date
date is /bin/date
四 命令执行顺序
单命令执行顺序
alias->shell>hash>PATH
多命令执行顺序
Linux多命令顺序执行连接符(; || && |) 当我们需要一次执行多个命令的时候,命令之间需要用连接符连接,不同的连接符有不同的效果。下面我们总结一下,加以区分。
(1) ;
分号,没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。
(2) ||
逻辑或,当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。
(3) &&
逻辑与,当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与 || 正好相反。
(4) |
管道符,当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。
例 ls | grep *.txt
五 内部命令与外部命令的产生和区别
- CentOs7 的shell是bash;在Linux使用时有一些命令的使用频率较高,若是总是从硬盘数据中读取比较浪费时间且占用资源。所以bash把这些使用频率高的命令集成到shell 当中,加快调用,称为内建命令。
- 所以内建命令在就是为了加快外部命令调用而在shell中的备份。即每个内建命令都在外部命令(硬盘上)存在的有。
二者区别:内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。
外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。
六 命令优先级
alias>shell内建>hash>外部路径
linux命令类型及执行顺序的更多相关文章
- 在linux命令行下执行php 程序
如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...
- Linux命令行上执行操作,不退回命令行的解决方法
问题描述: 如果你现在登录Centos执行了某个操作,但是操作一直占用命令行,命令行显示的也都是这个命令相关的操作,我想做其它事情 ,该怎么办呢 ? 解决方法: 根据<Linux命令行与Shel ...
- linux shell的配置文件执行顺序
shell配置文件的作用:初始化环境变量.设置命令提示符.指定系统命令路径等 shell配置文件分类: (1)系统级别配置文件: /etc下,比如/etc/profile./etc/bashrc (2 ...
- Linux 命令 - watch: 反复执行命令,全屏显示输出
watch 命令周期性地执行命令,全屏显示输出.可以通过 watch 命令反复执行某一程序来监视它的输出变化. 命令格式 watch [-dhvt] [-n <seconds>] [--d ...
- Linux命令-进程后台执行:nohup(就是不挂起的意思)
nohup 就是不挂起的意思( no hang up) 用途:LINUX命令用法,不挂断地运行命令. 语法: nohup Command [ Arg ... ] [ & ] 描述:nohup ...
- linux命令中,执行一个程序,后面加上&, 代表的意思是什么?
后台执行.也就是执行这个程序的同时,你的终端同时还能够做其他的事情,如果不加这个符号,那么你执行这个程序后,你的终端只能等这个程序执行完成才能够继续执行其他的操作 . 如:启动etcd: ./etcd ...
- linux命令了的查找顺序
$PATH,从左到右依次查找. 遇到第一个匹配的命令就立即停止查找.
- 查看linux命令类型
type type -a type type是内建变量 root@akayer-p6:~# type -a lsls 是 `ls --color=auto' 的别名ls 是 /bin/ls
- linux命令行下执行循环动作
在当前子目录下分别创建x86_64 for dir in `ls `;do (cd $dir;mkdir x86_64);done
随机推荐
- C#实现航班查询及预订
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- Image Style Transfer:多风格 TensorFlow 实现
·其实这是一个选修课的present,整理一下作为一篇博客,希望对你有用.讲解风格迁移的博客蛮多的,我就不过多的赘述了.讲一点几个关键的地方吧,当然最后的代码和ppt也希望对你有用. 1.引入: 风格 ...
- 关于在jsp中的路径问题
前言: jsp作为javaweb开发中常见的视图技术,我们平时在开发项目使用的过程中,经常会导入一些静态资源,比如css\js\jpg.png等图片格式的文件,这些文件的路径成了问题,经常会出现索引不 ...
- python学习:猜数字游戏
猜数字游戏 系统生成一个100以内的随机整数, 玩家有6次机会进行猜猜看,每次猜测都有反馈(猜大了,猜小了,猜对了-结束) 6次中,猜对了,玩家赢了. 否则系统赢了 #!/usr/bin/en ...
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)
第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 为Domain Model添加约束 前一部分, 我们已经把数据库创建出来了. 那么我们先看看这个数据库 ...
- RGB与HSV之间的转换公式及颜色表
RGB & HSV 英文全称 RGB - Red, Green, Blue HSV - Hue, Saturation, Value HSV --> RGB 转换公式 HSV --> ...
- hdu 2046递推
递推公式 F[N]=F[N-1]+F[N-2]; AC代码: #include<cstdio> const int maxn=55; long long ans[maxn]; void ...
- Effective Java 第三版——34. 使用枚举类型替代整型常量
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- 校验Linux程序是否被黑客修改
一个黑客突破你的层层防御后,修改你的程序或者覆盖了你的工具时.确定一个已安装程序的所有文件,有没有被修改过的途径之一就是使用RPM包校验功能 如果图片排版有任何错误,欢迎访问我的简书www.jians ...
- android/底层获取上下文对象
public class ContextUtils { private static Context applicationContext = null; public static Context ...