Linux概述

1 Linux用户

1.1 用户类型

  • root用户
    • 一个特殊的管理账户
    • 超级用户
    • root已接近完整的系统控制
    • 对系统损害几乎有无限的能力
    • 除非必要,不要登录为root
  • 普通(非特权)用户
    • 权限有限
    • 造成损害的能力比较有限

1.2 终端

  • terminal
  • 提供给用户使用的界面
  • 终端设备:键盘、鼠标、显示器

1.2.1终端类型

  • 控制台终端:/dev/console
  • 串行终端:/dev/ttyS#
  • 虚拟终端:tty:teletypeweiters,/dev/tty#,tty可有n个
  • 图像界面:srartx,xwindows
    • CentOS 6:Ctrl + Alt + F7
    • CentOS 7:在那个终端启动,即位于那个虚拟终端
  • 伪终端:pty:pseudo-tty,/dev/pts/#,SSH远程连接

1.2.2 查看当前的终端设备

tty
  • CentOS 8 desktop

image-20200913104223177

  • Ubuntu-server-18.04

image-20200913104146166

  • 远程登录

image-20200913122240548

1.2.3 查看连接的用户

who

image-20200913122320636

1.3 交互式接口

交互式接口:启动终端后,在终端设备上附加一个交互式应用程序

1.3.1 交互式接口类型

  • GUI:Graphic User Interface
    • X protocol, window manager, desktop
    • Desktop:
      • GNOME(C,图像库gtk)
      • KDE(C++,图像库qt)
      • XFCE(轻量级桌面)
  • CLI:Command Line Interface
    • shell程序

1.3.2 Shell内核

image-20200913200953040

  • Shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行
  • Shell也被称为Linux的命令解释器(command interpreter)
  • Shell是一种高级程序设计语言

1.3.3 bash shell

  • GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前

也是Linux标准的shell,与sh兼容显示当前使用的shell

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

1.4 设置主机名

hostname NAME

注意:主机名不要使用下划线

1.5 提示符

echo $PS1
PS1=""
例:PS1="\[\e[1;36m\][\u@\h \w]\\$\[\e[0m\]"
  • \e:控制符 \033
    • 格式:\e[F;Bm
  • \u:当前用户
  • \h:主机名简称
  • \H:主机名
  • \w:当前工作目录
  • \W:当前工作目录基名
  • \t:24小时时间格式
  • \T:12小时时间格式
  • !:命令历史数
  • #:开机后命令历史数

1.6 执行命令

1.6.1 执行命令过程

  • 输入命令后回车,提请shell程序找到键入命令所对应的可执行程序的代码,并由其分析后提交给内核分配资源将其运行起来

1.6.2 shell中可执行的两类命令

  • 内部命令:由shell自带的,而且通过某命令形式提供(优先执行)

  • 外部命令:在文件系统路径下对应的可执行程序文件

  • 区分内部和外部命令

type COMMAND
  • 外部命令执行次序
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 
/etc/profile.d/env.sh
  • 查看命令缓存
hash
  • 查看内部命令
help
enable
enable -n COMMAND:禁用命令
  • 让配置文件生效
.
source
1.6.2.2 执行外部命令
  • 查看外部命令路径
which:查看命令位置
whereis:查看命令位置和帮助位置
  • 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:清除缓存
  • 定义别名(优先级高 )
alias NAME="value"   新建别名
unalias -a name      取消别名
unalias -a           取消所有别名

注意:在命令行中定义别名,仅对当前shell进程有效

  • 定义配置文件别名
    • 仅对当前用户:~/.bashrc
    • 对所有用户有效:/etc/bashrc
  • 编辑配置文件不会生效,bash进程重新读取配置文件
source /paht/to/config_file
. /path/to/config_file
  • 如果别名同原命令同名,如果要执行原命令,可使用
\ALIASNAME
"ALIASNAME"
'ALIASNAME'
command ALIASNAME
/path/command   只适用于外部命令
  • 执行顺序
    • 别名 — 内部命令 — 外部命令 — 不存在

命令格式

COMMAND [OPTIONS] [ARGUMENTS]
  • 选项:用于启用或关闭命令的某个或某些功能

    • 短选项:UNIX风格选项,-c
    • 长选项:GNU风格选项,–word
    • BSD风格选项:一个字母
    [root@Centos8 ~]# free -h
    [root@Centos8 ~]# free --human
    
    [root@Centos8 ~]# ps aux
    
  • 参数:命令的作用对象


注意

  • 多个选项以及多参数和命令之间使用空白字符分割
  • 取消和接收命令的执行:Ctrl+c,Ctrl+d
  • 多个命令可以用";"符号分开
  • 一个命令可以用\分成多行

1.7 常见命令

1.7.1 查看硬件信息

1.7.1.1 查看CPU的信息
  • lscpu
  • cat /proc/cpuinfo
1.7.1.2 查看内存
  • free
  • cat /proc/meminfo
1.7.1.3 硬盘
  • lsblk
  • cat /proc/partitions

1.7.2 查看系统版本信息

1.7.2.1 显示内核版本
  • uname -r
查看操作系统版本
  • cat /etc/redhat-release
  • cat /etc/os-release

1.7.3 日期和时间

  • Linux的两种时钟

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

    • date:显示和设置系统时间
    • clock,hwclock:显示硬件时钟
      • -s,–hctosys:以硬件时钟为准,校正系统时钟
      • -w,–systohc:以系统时钟为准,校正硬件时钟
date mmDDhhMMmm.ss
  • 时区:/etc/localtime
    • 列出时区列表
timedatectl list-timezones
timedatectl set-timezone
1.7.4 关机和重启
  • 关机
    • halt
    • poweroff
  • 重启
    • reboot
      • -f:强制,不调用shutdown
      • -p:切断电源
  • 关机或重启
    • shutdown
shutdown [OPTION] [TIME] [MESSAGE]
-r:reboot
-h:halt
-c:cancel
TIME:无指定,默认相当于+1
	now:立刻,相当于+0
	+#:相对时间标识法,几分钟之后
	hh:mm:绝对时间表示,指明具体时间

注:#为时间

1.7.5 用户登录信息查看命令

  • whoami:显示当前登录有效用户
  • who:系统当前所有的登录会话
  • w:系统当前所有的登录会话及所做的操作

1.7.6 文本编辑

  • nano:可以实习文本的编辑,上手容易,适合初学者
  • gedit:工具是图形工具

1.7.7 会话管理

  • 用户和计算机的临时交互,称为一次会话。

  • 窗口与其启动的进程是连在一起的。打开窗口,会话开始,会话内部的进程也随之开始,关闭窗口,会话结束,会话内部的进程也会随之终止,不管是否运行完成。

  • 会话与窗口“解绑”,窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话“绑定”其他窗口。

  • 终端复用器软件就是会话与窗口的“解绑”工具,将他们彻底分离。

    • 它允许在单窗口中,同时访问多个会话。
    • 它可以让新窗口“接入”已经存在的会话。
    • 它允许每个会话由多个连接窗口,可以多人实时共享会话。
    • 它还支持窗口任意的垂直和水平拆封。
  • 类似的终端复用器有Screen,Tmux

1.7.8 输出信息echo

  • echo:可以将后面跟的字符进行输出
  • 显示字符,echo会将输出的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号。
echo [-neE] [字符串]
  • 选项
    • -E:不支持\解释功能(默认)
    • -n:不自动换行
    • -e:启用\字符解释功能
  • 显示变量
echo "$VAR_NAME"	#用变量值替换,弱引用
echo '$VAR_NAME'	#变量不会替换,强引用
  • 启用-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

    • \a:发出警告声

    • \b:退格键

    • \c:最后不加上换行符号

    • \e:escape,相当于\033

    • \n:换行且光标移至行首

    • \r:回车,即光标移至行首,但不换行

    • \t:插入tab

    • \ \:插入\字符

    • \0nnn:插入nnn(八进制)所代表的ASCII字符

    • \xHH:插入HH(十六进制)所代表的ASCII数字(man 7 ASCII)

1.8 字符集和编码

  • 字符集:charset(character set)二进制和字符的对应关系,不关注最终的存储形式
  • 编码:encoding(charset encoding)实现如何将字符转化为实际的二进制进行存储或相反,编码决定了空间的使用的大小

image-20200916101620209

1.8.1 ASCII码

  • 计算机内部,所有信息最终都是一个二进制值。
  • ASCII码定义了英语字符与二进制位之间的关系,做了统一规定。
  • ASCII码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位同一规定为0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-efWaeisd-1600226146352)(https://i.loli.net/2020/09/16/I8FenMD1YGHPdmj.png)]

man ascii

1.8.2 Unicode

  • 为表示世界上所有语言中的所有字符。每一个符号都给予一个独一无二的编码数字,Unicode是一个很大的集合。Unicode仅仅只是一个字符集。
  • Unicode编码方案
    • UTF-8:变长,1到4字节
    • UTF-16:变长,2或4字节
    • UTF-32:固定长度,4个字节

image-20200916110643812

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值