一、Linux基础入门和帮助

目录

1、Linux基础

1.1、用户类型

1.2、终端 terminal

1.2.1、终端类型

1.2.2、查看当前的终端设备

1.3、交互式接口

1.3.1、交互式接口类型

1.3.2、什么是shell

1.3.3、各种shell类型

1.3.4、bash shell

1.4、设置主机名

1.5、命令提示符prompt

1.6、执行命令

1.6.1、执行命令的过程

1.6.2、shell中可执行的两类命令

1.6.2.1、内部命令相关

1.6.2.2、执行外部命令

1.6.3、命令起别名

1.6.4、命令格式

1.7、常见命令

1.7.1、查看硬件信息

1.7.1.1、查看cpu信息

1.7.1.2、查看内存大小

1.7.1.3、查看硬盘和分区情况

1.7.2、查看系统版本信息

1.7.3、日期和时间

1.7.4、关机和重启

1.7.5、查看用户登录信息的命令

1.7.6、文本编辑

1.7.7、会话管理

1.7.7.1、screen

1.7.7.2、tmux

1.7.8、输出信息echo

1.7.8.1、echo基本用法

1.7.8.2、echo的高级用法

1.8、字符集和编码

1.8.1、ASCII码

1.8.2、Unicode

1.9、命令行扩展和被括起来的集合

1.9.1、命令行扩展:``和$()

​编辑

1.9.2、花括号扩展{}

1.10、命令行历史

1.11、bash快捷键

2、获得帮助

2.1、whatis

2.2、查看命令帮助

2.2.1、内部命令的帮助

2.2.2、外部命令的帮助

2.3、man命令

2.4、命令自身提供的官方使用指南


1、Linux基础

1.1、用户类型

  • root 用户(管理员用户、对系统拥有接近完整的控制)
  • 普通用户(权限有限)

1.2、终端 terminal

1.2.1、终端类型

  • 控制台终端(/dev/console)
  • 串行终端(/dev/ttyS#)
  • 虚拟终端(/dev/tty)
  • 图形终端
  • 伪终端(/dev/pts 即SSH远程连接的终端)

1.2.2、查看当前的终端设备

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

1.3、交互式接口

1.3.1、交互式接口类型

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

  • GUI(图形化接口)
  • CLI(shell程序,命令交互接口)

1.3.2、什么是shell

shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用输入的命令并送入到内核去执行。

shell也被称为Linux的命令解释器,它本身也是一个程序,将用户输入的命令行拆解为“命令名”与“参数”,接着,根据命令名找到对应要执行的程序,对被执行的程序进行初始化,然后将刚才解析出来的参数传给该程序并执行。

shell是一种高级程序设计语言,提供了变量、函数、条件判断,循环开发语言功能。

1.3.3、各种shell类型

  • sh
  • bash Centos和Ubuntu默认使用
  • csh C语言风格
  • tcsh
  • ksh AIX默认使用
  • zsh MacOS默认使用

1.3.4、bash shell

bash shell是GUN计划中重要的工具软件之一,也是目前Linux标准的shell,与sh兼容。

显示当前的使用的shell类型:

显示当前系统支持的所有shell:

1.4、设置主机名

临时生效:

hostname NAME

持久生效:

hostnamectl set-hostname NAME

注意:

  • 有些主机名不支持使用下划线,但支持使用横线,可使用字母、横线或数字组合;
  • 有些软件对主机名有特殊要求。

1.5、命令提示符prompt

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

显示提示符格式:

提示符格式说明:

  • \e 控制符\033
  • \u 当前用户
  • \h 主机名简称
  • \H 主机名
  • \w 当前工作目录
  • \W 当前工作目录的基名
  • \t 24小时时间格式
  • \T 12小时时间格式
  • ! 命令历史数
  • # 开机后命令历史数

范例:在Centos系统中实现提示符持久格式保持

1.6、执行命令

1.6.1、执行命令的过程

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

1.6.2、shell中可执行的两类命令

  • 内部命令:由shell自带的,而且通过某命令形式提供,用户登录后自动加载并常驻内存中。
  • 外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕后从内存中删除。

区别指定的命令是内部命令还是外部命令:builtin表示内部,-a选项输出命令所有类型

1.6.2.1、内部命令相关

help 可以查看内部命令的帮助:

enable 用于管理内部命令:

范例:

1.6.2.2、执行外部命令

查看外部命令的路径:

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

hash命令常见用法:

1.6.3、命令起别名

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

定义别名NAME相当于执行命令VALUE:

alias NAME='VALUE'

范例:扫描新加的磁盘

alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;\
echo - - - > /sys/class/scsi_host/host1/scan;\
echo - - - > /sys/class/scsi_host/host2/scan'

撤销别名:unalias,-a选项撤销所有别名

alias NAME

注意:

在命令行中定义的别名,仅对当前shell进程生效,如果想要持久生效,要定义在配置文件中。

  • 仅对当前用户生效:~/.bashrc
  • 对所有用户有效:/etc/bashrc

编辑给出的新配置不会立即生效,使用如下方法使bash进程重新读取配置文件:

  • source 配置文件
  • . 配置文件

如果别名与原命令同名,如果要执行原命令,可使用:

  • \ALIASNAME
  • "ALIASNAME"
  • 'ALIASNAME'
  • /path/cmd

1.6.4、命令格式

命令一般后接选项和参数

  • 选项:用于启动或关闭命令的某些功能
  • 参数:命令的作用对象,比如:文件名,用户名等

注意:

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

1.7、常见命令

1.7.1、查看硬件信息

1.7.1.1、查看cpu信息
  • lscpu 命令可以查看cpu信息
  • cat /proc/cpuinfo 也可以查看到cpu信息
1.7.1.2、查看内存大小
  • free 命令可以查看内存大小,选项-h可以人性化显示内存大小
  • cat /proc/meminfo 也可以查看内存大小
1.7.1.3、查看硬盘和分区情况
  • lsblk 命令(新加的磁盘使用前面所讲的scandisk别名扫描后,可用该命令查看)
  • cat /proc/partitions

1.7.2、查看系统版本信息

查看系统架构

查看内核版本

查看操作系统的发行版本

  • cat /etc/redhat-release

  • cat /etc/os-release
  • lsb_release -a

1.7.3、日期和时间

Linux的两种时钟:

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

相关命令:

data 显示和设置系统时间

范例:

clock 显示硬件时钟

常用选项:

  • -s 以硬件时钟为准,校正系统时钟
  • -w 以系统时钟为准,校正硬件时钟

1.7.4、关机和重启

关机:

  • poweroff
  • shutdowd -h
  • halt

重启:

  • reboot
  • shutdown -r

1.7.5、查看用户登录信息的命令

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

1.7.6、文本编辑

  • vi 或 vim 强大文本编辑工具,后面的章节会详讲
  • nano 适合初学者(不常用)
  • gedit 图形工具(不常用)

1.7.7、会话管理

命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)。

会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。

一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。

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

  1. 它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
  2. 它可以让新窗口"接入"已经存在的会话。
  3. 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
  4. 它还支持窗口任意的垂直和水平拆分。

类似的终端复用器还有Screen,Tmux

1.7.7.1、screen

利用screen可以实现会话管理,如:新建会话,共享会话等

范例:安装screen

centos7安装screen

yum -y install screen

centos8安装screen

dnf -y install epel-release
dnf -y install screen

screen命令常见用法:

  • 创建新的screen会话

        screen -S [SESSION]

  • 加入screen会话

        screen -x [SESSION]

  • 退出并关闭screen会话

        exit

  • 剥离当前screen会话

        ctrl + a,d

  • 显示所有已经打开的screen会话

        screen -ls

  • 恢复某screen会话

        screen -r [SESSION]

1.7.7.2、tmux

Tmux 是一个终端复用器(terminal multiplexer),类似 screen,但是更易用,也更强大
Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离,功能如下:

  1. 它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
  2. 它可以让新窗口"接入"已经存在的会话。
  3. 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
  4. 它还支持窗口任意的垂直和水平拆分

具体使用方法可以自行在互联网查找

1.7.8、输出信息echo

1.7.8.1、echo基本用法

echo 命令可以将后面跟的字符进行输出。
功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

常用选项:

  • -E (默认)不支持\解释功能
  • -e 启用\字符的解释功能
  • -n 不自动换行

显示变量:双引号(强引用,变量值会提换),单引号(弱引用,变量值不会替换)

启用命令选项-e,若字符串中出现以下字符,则特别加以处理:

  • \a 发出警告声
  • \b 退格键
  • \c 最后不加上换行符号
  • \e escape,相当于\033
  • \n 换行且光标移至行首
  • \r 回车,即光标移至行首,但不换行
  • \t 插入tab
  • \\ 插入\字符
  • \0nnn 插入nnn(八进制)所代表的ASCII字符
  • \xHH 插入HH(十六进制)所代表的ASCII字符
1.7.8.2、echo的高级用法

在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码
具有颜色的字符,其格式如下:

"\033[字符背景颜色;字体颜色m字符串\033[0m"

字符背景颜色范围:40-47

字体颜色范围:30-37

加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:

  • \033[0m 关闭所有属性
  • \033[1m 设置高亮度
  • \033[4m 下划线
  • \033[5m 闪烁
  • \033[7m 反显
  • \033[8m 消隐
  • \033[nA 光标上移n行
  • \033[nB 光标下移n行
  • \033[nC 光标右移n列
  • \033[nD 光标左移n列
  • \033[x;yH 设置光标位置x行y列
  • \033[2J 清屏
  • \033[K 清除从光标到行尾的内容
  • \033[s 保存光标位置
  • \033[u 恢复光标位置
  • \033[?25l 隐藏光标
  • \033[?25h 显示光标
  • \033[2J\033[0;0H 清屏且将光标置顶

范例:

1.8、字符集和编码

许多场合下,字符集与编码这两个概念常被混为一谈,但两者是有差别的。字符集与字符集编码是两个不同层面的概念。

charset是character set的简写,即字符集,即二进制和字符的对应关系,不关注最终的存储形式。

encoding是charset encoding的简写,即字符集编码,简称编码,实现如何将字符转化为实际的二进制进行存储或相反,编码决定了空间的使用的大小。

1.8.1、ASCII码

ASCII码:计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定即为ASCII码。

范例:查看ascii表

yum -y install man-pages
man ascii

1.8.2、Unicode

由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,即ASCII编码,但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。

为了表示世界上所有语言中的所有字符。每一个符号都给予一个独一无二的编码数字,Unicode 是一个很大的集合,现在的规模可以容纳100多万个符号。Unicode 仅仅只是一个字符集,规定了每个字符对应的二进制代码,至于这个二进制代码如何存储则没有规定。

Unicode编码方案:

  • UTF-8:变长,1到4个字节
  • UTF-16:变长,2或4个字节
  • UTF-32:固定长度,4个字节

UTF-8 是目前互联网上使用最广泛的一种 Unicode 编码方式,可变长存储。使用 1 - 4 个字节表示一个字符,根据字符的不同变换长度。编码规则如下:

  • 对于单个字节的字符,第一位设为 0,后面的 7 位对应这个字符的 Unicode 码。因此,对于英文中的 0- 127 号字符,与 ASCII 码完全相同。这意味着 ASCII 码的文档可用 UTF-8 编码打开。
  • 对于需要使用 N 个字节来表示的字符(N > 1),第一个字节的前 N 位都设为 1,第 N + 1 位设为0,剩余的 N - 1 个字节的前两位都设位 10,剩下的二进制位则使用这个字符的 Unicode 码来填充。

范例:修改LANG变量实现中文语言提示

1.9、命令行扩展和被括起来的集合

1.9.1、命令行扩展:``和$()

把一个命令的输出打印给另一个命令作为参数,放在``中的一定是有输出信息的命令

范例:``等价于$(),区别在于$()可以嵌套,反之``不可以

1.9.2、花括号扩展{}

{} 可以实现打印重复字符串的简化形式

范例:

范例:关闭和启用{}扩展功能

1.10、命令行历史

当执行命令后,系统默认会在内存记录执行过的命令;

当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是 ~/.bash_history;

登录shell时,会读取命令历史文件中记录下的命令加载到内存中;

登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加”至命令历史文件中;

利用命令历史。可以用它来重复执行命令,提高输入效率。

使用命令history查看历史使用过的命令

常用选项:

  • -c: 清空命令历史
  • -d offset: 删除历史中指定的第offset个命令
  • n: 显示最近的n条历史
  • -a: 追加本次会话新执行的命令历史列表至历史文件
  • -r: 读历史文件附加到历史列表
  • -w: 保存历史列表到指定的历史文件
  • -n: 读历史文件中未读过的行到历史列表
  • -p: 展开历史参数成多行,但不存在历史列表中
  • -s: 展开历史参数成一行,附加在历史列表后

命令历史相关的环境变量

  • HISTSIZE:命令历史记录的条数
  • HISTFILE:指定历史文件,默认为~/.bash_history
  • HISTFILESIZE:命令历史文件记录历史的条数
  • HISTTIMEFORMAT="%F %T `whoami` " 显示时间和用户
  • HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史
  • HISTCONTROL:控制命令历史的记录方式
  • ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复”
  • ignorespace 忽略所有以空白开头的命令
  • ignoreboth 相当于ignoredups, ignorespace的组合
  • erasedups 删除重复命令

持久保存变量:

  • 以上变量可以 export 变量名="值" 形式存放在 /etc/profile 或 ~/.bash_profile

调用命令行历史:

  • !n 执行history命令输出对应序号n的命令
  • !-n 执行history命令输出对应的倒数序号n的命令
  • !$ 调用前一个命令的最后一个参数
  • !* 调用前一个命令的所有参数

1.11、bash快捷键

  • ctrl + l 清屏,相当于clear
  • ctrl + s 阻止屏幕输出,锁定屏幕
  • ctrl + q 允许屏幕输出,解锁屏幕
  • ctrl + c 终止命令和程序
  • ctrl + a 光标移至命令行首
  • ctrl + e 光标移至命令行尾
  • ctrl + u 删除光标所在处前的所有内容
  • ctrl + k 删除光标所在处后的所有内容
  • alt + r 删除整行

2、获得帮助

2.1、whatis

whatis 使用数据库来显示命令的简短描述
此工具在系统刚安装后,不可立即使用,需要制作数据库后才可使用
执行下面命令生成数据库:

mandb

范例:

2.2、查看命令帮助

2.2.1、内部命令的帮助

使用help命令查看

2.2.2、外部命令的帮助

  • COMMAND --help 或 COMMAND -h
  • 使用 man 手册(manual): man COMMAND
  • 信息页:info COMMAND
  • 程序自身的帮助文档:README、INSTALL、ChangeLog
  • 程序官方文档
  • 相关网站,如:技术论坛
  • 搜索引擎

2.3、man命令

man 提供命令帮助的文件,手册页存放在/usr/share/man
几乎每个命令都有man的“页面”
中文man需安装包

  • man-pages
  • man-pages-zh-CN

man页面分组:

不同类型的帮助称为不同的“章节”,统称为Linux手册,man 1 man

  • 1:用户命令
  • 2:系统调用
  • 3:C库调用
  • 4:设备文件及特殊文件
  • 5:配置文件格式
  • 6:游戏
  • 7:杂项
  • 8:管理类的命令
  • 9:Linux 内核API

2.4、命令自身提供的官方使用指南

路径:/usr/share/doc

多数安装了的软件包的子目录,包括了这些软件的相关原理说明
常见文档:README INSTALL CHANGES

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux是一种基于Unix的开源操作系统,具有高度的稳定性、安全性和自由度,越来越受到广大用户的青睐。在学习Linux入门基础方面,CSDN是一个非常好的学习资源。 首先,CSDN作为国内领先的技术社区和IT社区,提供了大量的Linux入门基础教程和文章。在CSDN上,你可以找到许多优秀的专家和资深开发者发布的教程,涉及到Linux安装、命令行操作、文件系统管理、软件包管理等方面的内容。这些教程通常结合实际案例和操作步骤,易于理解和跟随。 其次,CSDN的论坛和问答板块是学习Linux入门基础的好地方。如果你在学习过程中遇到问题,可以在Linux相关的论坛上提问。很多经验丰富的开发者和爱好者都愿意给予帮助和解答。此外,还可以通过阅读其他人的问题和解答,了解到更多的知识和技巧。 此外,CSDN还有很多推荐的学习资源,如在线视频教程和电子书籍,它们通常由CSDN认可的专家或知名机构提供。你可以根据自己的需求选择适合自己的学习方式,并在学习的过程中结合实际操作进行练习和巩固。 总而言之,Linux入门基础的学习需要系统性和实践性,而CSDN作为一个技术社区,提供了丰富的学习资源和交流平台,能够帮助初学者快速入门,并进一步提高自己的技术水平。 ### 回答2: Linux是一个免费且开放源代码的操作系统,它具有高度的安全性、灵活性和稳定性,被广泛用于服务器领域。通过学习Linux入门基础,你可以掌握一些基本的操作和概念。 首先,了解如何安装Linux操作系统。你可以选择不同的发行版,如Ubuntu、CentOS等,根据你的需求进行选择和安装。安装完成后,你就可以登录到系统并开始学习了。 其次,学习Linux的基本命令和操作。Linux的命令行界面是主要的交互方式,你需要了解一些基本的命令,如ls、cd、pwd等。通过这些命令,你可以在文件系统中导航、创建和删除文件和目录,以及执行其他基本的操作。 此外,了解Linux的文件系统结构也是很重要的。Linux的文件系统是层次结构的,由根目录(/)开始,分为不同的目录,如/bin、/home、/etc等。通过了解这些目录的作用和组织方式,你可以更好地管理和组织你的文件和目录。 另外,学习Linux的权限管理也是必要的。Linux通过权限控制来保护系统的安全性,你需要了解用户、用户组和权限的概念,并学习如何设置和修改文件和目录的权限。 最后,学习一些常用的Linux工具和应用程序。Linux提供了丰富的工具和应用程序,如文本编辑器(vi、nano)、网络工具(ping、ifconfig)、压缩和解压缩工具(tar、zip)等。通过使用这些工具,你可以更高效地完成各种任务。 总之,通过学习Linux入门基础,你可以建立起对Linux操作系统的基本了解和技能。这将为你进一步深入学习和使用Linux奠定坚实的基础。你可以通过CSDN等网站查找相关的教程和资源,不断提升你的Linux技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值