[华为云在线课程][Linux基础入门和帮助][第一章Linux登录和基本操作][学习笔记]

举报
John2021 发表于 2022/03/12 22:55:50 2022/03/12
【摘要】 用户类型root用户一个特殊的管理账户也被称为超级用户root已接近完整的系统控制对系统损害几乎有无限的能力除非必要,不要登录为root普通(非特权)用户权限有限造成损害的能力比较有限 终端Terminal终端设备:键盘、鼠标、显示器 终端类型控制台终端:/dev/console串行终端:/dev/ttyS#虚拟终端:tty:teletypewriters,/dev/tty#,tty可以有...

用户类型

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

终端Terminal

终端设备:键盘、鼠标、显示器

终端类型

  • 控制台终端:/dev/console
  • 串行终端:/dev/ttyS#
  • 虚拟终端:tty:teletypewriters,/dev/tty#,tty可以有几个,Ctrl+Alt+F#
  • 图形终端:startx,xwindows
    CentOS6:Ctrl+Alt+F7
    CentOS7:在哪个终端启动,即位于哪个虚拟终端
  • 伪终端:pty:pseudo-tty,/dev/pts/# 如:SSH远程连接

查看当前的终端设备

tty命令可以查看当前所在终端
例如:

[root@localhost ~]# tty
/dev/pts/0

交互式接口

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

交互式接口类型

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

什么是Shell

  • Shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行
  • Shell也被称为Linux命令解释器(command interpreter),Shell本身是一个程序,将用户输入的命令行拆解为"命令名"与"参数"。接着,根据命令名找到对应要执行的程序,对被执行的程序进行初始化,然后将刚才解析出来的参数传给该程序并执行
  • Shell是一种高级程序设计语言,提供了变量,函数,条件判断,循环等开发语言的功能
  • 由于Shell本身是个程序,所以它可以被任何用户自己开发的各种Shell所替代

各种Shell

  • sh:Steve Bourne
  • bash:Bourne-Again Shell,GPL,CentOS和Ubuntu默认使用
  • csh:c shell,C语言风格
  • tcsh
  • ksh:Korn Shell,AIX默认Shell
  • zsh:MacOS默认Shell

bash shell

GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是Linux标准的Shell,与sh兼容显示当前使用的Shell

echo ${SHELL}

显示当前系统使用的所有shell

cat /etc/shells

设置主机名

#临时生效
hostname NAME
#持久生效
hostnamectl set-hostname NAME

例子:

[root@cn-node1-100 ~]# hostname
cn-node1-100.huawei.local

注意:

  • 主机名不支持使用下划线,但支持横线,可使用字母,横线或数字组合
  • 有些软件对主机名有特殊要求
    例子:
[root@cn-node1-100 ~]# hostnamectl set-hostname centos7
[root@cn-node1-100 ~]# systemctl restart postfix

命令提示符prompt

登录Linux后,默认的系统命令提示符毫无个性化,无法明显辨别生产环境和测试环境,而容易导致误操作。可以通过修改PS1变量实现个性的提示符格式,避免犯下低级错误
例子,默认的的提示符

[root@centos7 ~]#
# 表示管理员
$ 表示普通用户

显示提示符格式

[root@centos7 ~]# echo $PS1
[\u@\h \W]\$

修改提示符格式例子

PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"

提示符格式说明

  • \e 控制符\033
  • \u 当前用户
  • \h 主机名简称
  • \H 主机名
  • \w 当前工作目录
  • \W 当前工作目录基名
  • \t 24小时时间格式
  • \T 12小时时间格式
  • ! 命令历史数
  • # 开机后命令历史数
    例子:在CentOS系统实现持久保存提示符格式
[root@centos7 ~]# echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/pro
profile    profile.d/ protocols
[root@centos7 ~]# echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/
256term.csh                   lang.sh
256term.sh                    less.csh
abrt-console-notification.sh  less.sh
bash_completion.sh            PackageKit.sh
colorgrep.csh                 sh.local
colorgrep.sh                  vim.csh
colorls.csh                   vim.sh
colorls.sh                    vte.sh
csh.local                     which2.csh
flatpak.sh                    which2.sh
lang.csh
[root@centos7 ~]# echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh
[root@centos7 ~]# cat /etc/pro
profile    profile.d/ protocols
[root@centos7 ~]# cat /etc/profile.d/env.sh
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"

例子:实现Ubuntu系统持久保存提示符格式

[root@ubuntu2004 ~]#tail -1 .bashrc
PS1='\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]'
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。