Linux入门

目录

   Root用户
   终端
   交互式接口(图形化界面和命令行)
   什么是Shell(bash)
   命令提示符
   内部命令和外部命令 enable,hash
   命令别名
   命令格式
   Nano(一个简单的编辑器)
   一些命令

Root用户

权限:无限大
  这是一个特殊的管理用户,在Linux系统中,他拥有无限大的权限,大到可以删除系统本身,因此,这个账号是相当危险的,一般使用者只能给他们普通用户账号,只有极个别必须使用root权限的时候,才会赋予普通用户部分root权限,并且用完立即收回root权限。

终端

  对于计算机来说,终端我给分成了两种,一种是输入输出设备,键盘、鼠标、显示器等,我们称它们是终端设备。还有一种是计算机的控制接口,在Linux中,终端是我们能够进行操控其操作系统的界面。包括:
物理终端:
  /dev/console

当我们切换到单用户模式下的时候,我们就能看到物理终端的提示符

虚拟终端:
  tty(teletypewriters) /dev/tty/N N=1-6
虚拟终端依旧是在物理机上的端口,在Linux中,我们可以使用Ctrl+Alt+【F1-F6】之间进行切换虚拟终端,以方便我们使用。



图形界面:
  正如我们所知道的,windows 和IOS 上,开机之后,我们看到的是都是精美的界面,而不是黑乎乎的命令行。同样的,Linux一样也有图像界面,并且,我们可以在图形化界面和命令终端之间进行切换:startx,xwindows切换到图形界面
串行终端:
  现在我们已经用不到串行终端,所以在这里我就不在进行介绍
伪终端:
  pty(pseudo-tty) /dev/pts/N N=number
  就是我们平时用的远程连接方式,才会显示出伪终端,因为它不是真正的终端,只是由于使用需要进行远程控制的模拟终端

  查看使用什么终端
    命令:tty

交互式接口

图形化界面

GUI:Graphic User Interface
在Linux中我们使用到的图像化界面有:
   GNOME(c,图形库gtk)
   KDE(c++,图形库gt)
   XFCE(轻量级桌面)

命令行

CLI:Command Line Interface
  正如下图所示的就是我们作为一个Linux工作者平时会使用到的交互式接口。由于桌面环境会开启一个程序,会占用我们的内存和CPU资源,更重要的是很多操作我们无法再桌面换将直接的看到,所以我们几乎都会采用CLI模式的交互式接口。

什么是Shell(bash)

Shell 是Linux系统的用户界面, 提供了用户与内核进行交互操作的一种接口。 它接收用户输入的命令并把它送入内核去执行
shell也被称为LINUX的命令解释器(command interpreter)
shell是一种高级程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一, 目前也是 Linux标准的shell, 与sh兼容

显示当前使用的shell:echo ${SHELL}
显示当前系统使用的所有shell:cat /etc/shells

每次我们在登录机器之后,我们就已经在使用SHELL了,在我们现在使用的CentOS系统中,用的都是bash,以下是bash的优点:
  1. 通过上下方向键来调取过往执行过的Linux命令。
  2. 命令或参数仅需输入前几位就可以用tab键补全。
  3. 强大的批处理脚本。
  4. 实用的环境变量。

命令提示符

命令提示符是我们在登录上操作系统时看到的一个提示符:
  命令提示符: prompt

[root@localhost ~]#
  # 管理员
  $ 普通用户
显示提示符格式
  [root@localhost ~]#echo $PS1
修改提示符格式
  PS1="[\u@\h \W]\\$ "

  \h 主机名简称

  \w 当前工作目录

  \t 24小时时间格式

  \! 命令历史数

  \u 当前用户
  \H 主机名

  \W 当前工作目录基名

  \T 12小时时间格式
  \# 开机后命令历史数

内部命令和外部命令 enable,hash

  在CentOS中,bash会带有一部分常用命令,这部分命令常驻在内存中,以便于在我们使用时不必在从硬盘中进行查找,这部分常用的命令我们通常称为内置命令,如:
  但是内建命令并不代表在硬盘文件中不存在,他只是为了方便使用而将部分常用的命令设为内置命令了。所以内建命令在硬盘文件中依然存在。

判断一个命令的类型:
  type COMMAND。
外部命令查看路径:
  which -a |--skip-alias ; whereis

内部命令有启用不启用之分使用enable命令可以对内建命令进行设置

显示所有启用的内部命令:enable
  enable | wc -l 统计启用的内部命令数量
  enable COMMAND 启动一个内部命令
  enable -n COMMAND 禁用一个内部命令

  enable –a 显示所有内建命令(无论是否禁止)
  enable -n 显示所有被禁用的内部命令
  enable -n |wc -l 统计被禁用的内部命令数量
外部命令是如何被使用的呢?我能知道,在系统中会有PATH,即路径,我们使用的所有外部命令都是按照路径从左到右进行查找执行的,但是我们先进行这样的一个操作:

现在,我们使用的是一个外部命令PWD,我们使用一次PWD之后,显示如下图所示:

我们发现和上面的图片不一样了,这是为什么呢?这是由于当我们使用一次外部命令以后,hash会将我们使用过的命令路径存放在hash表中,以便我们在下次使用的时候提高所搜效率。下面是对hash表的操作:
  hash 显示当前被hash的外部命令、
    -l 显示当前被hash的外部命令,包含别名
    -p /.../.... name 手动增加一个hash缓存
    -d name 删除一个hash
    -r 清空所有的hash
在我们的实际操作中,hash的执行优先级别是高于PATH中的命令的,下面是一个在操作中优先级别的排序:
alias > 内部命令> hash > PATH > command not find

命令别名

显示当前shell进程所有可用的命令别名:alias


定义别名NAME, 其相当于执行命令
alias NAME='VALUE'
在命令行中定义的别名, 仅对当前shell进程有效
如果想永久有效, 要定义在配置文件中
仅对当前用户: ~/.bashrc
对所有用户有效: /etc/bashrc

编辑配置给出的新配置不会立即生效
bash进程重新读取配置文件
  source /path/to/config_file
  . /path/to/config_file
撤消别名: unalias
  unalias [-a] name [name ...]
  -a 取消所有别名

如果别名同原命令同名, 如果要执行原命令, 可使用
  “\COMMAND”
  ‘COMMAND’
  /PATH/COMMAND: 外部命令

命令格式

COMMAND [OPTIONS...] [ARGUMENTS...]
  OPTIONS选项: 用于启用或关闭命令的某个或某些功能
  短选项: -c 例如: -l, -h
  长选项: --word 例如: --all, --human-readable
  参数: 命令的作用对象, 比如文件名, 用户名等

注意:
  多个选项以及多参数和命令之间使用空白字符分隔
  取消和结束命令执行: Ctrl+c, Ctrl+d
  多个命令可以用;符号分开
  一个命令可以用\分成多行

Nano(一个简单的编辑器)

  在Linux上有一个简单的编辑器,但是我们只做了解,知道有这么一个编辑器就行了,因为之后我们会学习更加强大的VIM,nano界面如下所示:

一些命令和文件

文件:
  /etc/gdm/custom.conf 更改图像化界面的自动化登录
  /etc/isue 显示登录前的信息
  /etc/motd 显示登陆后的信息

命令:
  rz 向内部拷文件
  sz 向外部拷文件

  wall 在本机登录的用户进行广播

  pwd 查看所在目录

  cat 查看文件内容

  file查看文件类型

  which   查看命令路径

  whereis 查看文件或命令的路径

Linux入门_1的更多相关文章

  1. 01 Linux入门介绍

    一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以及游戏支持度不足 L ...

  2. Linux入门:运行级别解析

    Linux入门:运行级别解析   一.查看当前运行级别 Ubuntu中,runlevel命令 可以查看当前运行级别: CentOS中,who -r 命令查看当前运行级别:   www.2cto.com ...

  3. linux 入门教程

    linux入门教程 搜索 Linux入门教程 前言 第一章 关于Linux的历史 第二章 图形界面还是命令窗口 第三章 Linux操作系统的安装 第四章 初步进入linux世界 第五章 Linux系统 ...

  4. Linux入门介绍

    Linux入门介绍 一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以 ...

  5. Linux入门学习教程:虚拟机体验之KVM篇

    本文中可以学习到的命令: 1. aptitude 是apt-get 不会产生垃圾的版本 2.       dpkg -L virtualbox 显示属于该包的文件 lsmod | grep kvmfi ...

  6. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  7. Linux入门_2-基础命令

    Linux入门-基础命令 目录 日期命令date 修改时区 日历命令cal 关机启动命令halt,reboot,poweroff whoami.who.who am i.w screen ...

  8. Linux入门篇(一)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  9. Linux入门篇(一)——基本命令

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

随机推荐

  1. 关于CNoTrackObject

    CNoTrackObject,通过类名称就能大概猜到其意思:避免被跟踪的对象. 使用MFC开发的应用程序,new/delete都被重载,有专用的跟踪机制来检查内存泄漏. 由CNoTrackObject ...

  2. 学习笔记TF049:TensorFlow 模型存储加载、队列线程、加载数据、自定义操作

    生成检查点文件(chekpoint file),扩展名.ckpt,tf.train.Saver对象调用Saver.save()生成.包含权重和其他程序定义变量,不包含图结构.另一程序使用,需要重新创建 ...

  3. angular2 组件交互

    1. 组件通信 我们知道Angular2应用程序实际上是有很多父子组价组成的组件树,因此,了解组件之间如何通信,特别是父子组件之间,对编写Angular2应用程序具有十分重要的意义,通常来讲,组件之间 ...

  4. Jmeter录制脚本工具之chrome插件--BlazeMeter

    前几天在我们的交流群,看到有童鞋问到BlazeMeter这个工具的用法,感觉还是一个比较不错的插件,比起我们大费周章的去安装badboy或者是使用Jmeter的代理服务器去录制脚本要容易多啦!大家有问 ...

  5. 迈向angularjs2系列(3):组件详解

    一: 以组件开发一个to-do list应用 todo组件分为导入.接口定义.顶层组件.控制器.启动5个部分. app.ts: //导入 import {Component} from '@angul ...

  6. Jmeter遇到的坑

    一.分布式获取不到结果需要改配置文件   在jmeter.properties文件找到mode=Standard去掉# 二.有一个请求要循环查询进度,当进度为100为,跳出循环.这个要怎么操作? ${ ...

  7. Mybatis映射文件完整模板参照

    Mybatis映射文件完整模板参照 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map ...

  8. spring整合mybatis错误:class path resource [config/spring/springmvc.xml] cannot be opened because it does not exist

    spring 整合Mybatis 运行环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:class path reso ...

  9. Java基础学习 —— 对象的克隆

    对象的克隆分为对象的浅克隆和深克隆 一.对象的浅克隆 注意事项: 1.如果一个对象需要调用clone的方法克隆,那么该对象必须要实现Cloneable接口 2.Cloneable对象只是一个标识对象, ...

  10. Java并发之线程

    在前面我们介绍的一些内容中,我们的程序都是一条执行流,一步一步的执行.但其实这种程序对我们计算机的资源的使用上是低效的.例如:我们有一个用于计算的程序,主程序计算数据,在计算的过程中每得到一个结果就需 ...