目录
一、linux基础概述
1、root用户
一个特殊的管理用户,也成为超级用户
root已经接近完整的系统控制
对系统损害几乎有无限的能力
除非必要不要登录为root
通过sudo机制进行管理
2、普通(非特权)用户
权限有限
造成损害的能力比较有限
3、终端(terminal)
3.1、终端类型
- 控制台终端:/dev/console
- 串行终端:/dev/ttys#
- 虚拟终端:tty:teletpewriters,/dev/tty#,tty可以有n个
- 图形终端:startx,xwindows
- 伪终端:pty:pseudo-tty,/dev/pts/#,可以有n个如SSH连接
3.2、查看当前的终端设备
tty命令
3.3、远程工具
- XSHELL
- mobaxterm
- CRT
4、交互式接口
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
4.1、交互式接口类型
- GUI:graphic user interface
Xprotocol,window,manager,desktop
desktop:
GNOME(C,图形库gtk)
KDE(C++,图形库qt)
XFCE(轻量级桌面)
- CLI:command line interface
SHELL程序
4.2、什么是SHELL
SHELL(壳)工作在用户和内核之间(bash)
SHELL是linux系统的用户界面,提供了用户与内核进行交互操作的一种接口,他接受用户输入的命令把它送入内核去执行。
shell也被称为LINUX的命令解释器(command interpreter),Shell本身是一个程序。将用户输入的命令行拆解为"命令名"与′参数"。接着,根据命令名找到对应要执行的程序,对被执行的程序进行初始化,然后将刚才解析出来的参数传给该程序并执行
shell是一种高级程序设计语言,提供了变量,函数,条件判断,循环等开发语言的功能
由于shell本身是个程序,所以它可以被任何用户自己开发的各种Shell所代替
4.3、各种SHELL
- centos
- 查看当前系统支持的shell
cat /etc/shells
- 查看当时系统默认的shell
echo $SHELL 或 echo ${SHELL}
5、设置主机名
主机命名建议
hostname bj-hd-k8s-node1-100-10.test.com 临时修改
hostnamectl set-hostname bj-hd-k8s-node1-100-10.test.com 永久修改
注意:主机名不支持使用下划线,但支持横线
6、命令提示符:prompt
#:管理员
$:普通用户
6.1、显示提示符格式
echo $PS1
6.2、更改提示符格式
6.3、提示符格式说明:
7、执行命令
7.1、执行命令过程
输入命令回车,判断路径、检查别名、判断是内部命令还是外部命令和查找外部命令对应的可执行文件。
7.2、shell中可执行的两类命令
- 内部命令:由shell自带,用户登录后就自动加载到内存的,而且只要是用户在登录状态一直加载在内存中。
- 执行速度快但占内存不宜太多,经常使用的
- 外部命令:在文件系统路径下有对应的可执行程序文件,执行的时候从磁盘中加载到内存中,执行完后从内存中删除。
- 执行速度慢存在磁盘中,可以有很多
优先级:别名>内部命令>外部命令
7.3、内部命令
[root@2022-6-23-centos-test ~]# ll -h /bin/bash #bash文件里包含了很多内部命令
[root@2022-6-23-centos-test ~]# enable #查看所有的内部命令
enable cmd #启用内部命令
enable -n cmd #禁用内部命令
enable -n #查看所有禁用的内部命令
[root@2022-6-23-centos-test ~]# type enable
enable is a shell builtin[root@2022-6-23-centos-test ~]# type -a pwd
7.4、外部命令
[root@2022-6-23-centos-test ~]# type hostname
hostname is /usr/bin/hostname
[root@2022-6-23-centos-test ~]# which ps
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 清除全部缓存
7.5、命令别名
对于经常执行较长的命令,可以将其定义成为较短的别名
[root@2022-6-23-centos-test ~]# type ls
ls is aliased to `ls --color=auto'#显示当前shell进程所有可用的命令别名
[root@2022-6-23-centos-test ~]# alias
s
#定义别名NAME,其相当于执行命令VALUE[root@2022-6-23-centos-test ~]# alias NAME=“VALUE”
#例子:
[root@2022-6-23-centos-test ~]# echo “alias free='free -h' ” >> .bashrc
#撤销别名
[root@2022-6-23-centos-test ~]# unalias NAME
注意:unalias -a #取消所有别名
在配置文件中定义永久有效的别名:
仅对当前用户:./bashrc
对所有用户有效:/etc/bashrc
编辑配置给出的新配置不会立即生效,bash进程重新读取配置文件
source 【PATH】
或
. ./bashrc
8、命令格式
COMMAND [OPTIONS....] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能
短选项:unix风格选项,-c 例如:-l,-h
长选项:GNU风格选项,--word例如:--all,--human
BSD风格选项:一个字母,例如:a,使用相对较少
参数:命令的作用对象,比如:文件名,用户名等
注意:
- 多个选项以及多参数和命令之间使用空白字符分隔
- 取消和结束命令执行:CTRL+c,CTRL+d
- 多个命令放在一行,每个命令之间可用用【;】符号分开。如ifdown eth0;ifupeth0
- 一个命令可用用【\】分成多行。如:host\name
9、字符集和编码
计算机内部,所有信息最终都是一个二进制值形式存放
字符集
字符集:charset是character set的简写,即二进制和字符的对应关系,不关注最终的存储形式
编码
字符集编码:encoding是charset encoding的简写。实现如何将字符转化为实际的二进制进行存储或相反,编码决定了空间的使用的大小。
9.1、ASCII码
计算机内部,所有信息最终都是一个二进制值。上个世纪50年代,美国制定了一套字符编码,对英语字符与二边制位之问的关系,做了统一规定,即ASCll (American Standard Code for lnformation lnterchange)码。(美国标准编码信息交换)
ASCII码共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统规定为0
#centos7查看ASCII转换表
[root@2022-6-23-centos-test ~]# man ascii
提示:如果出现No manual entry for ascii;则执行 yum install -y man-pages
9.2、Unicode
由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,即ASCII编码,但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编讲去。
全世界有上百种语言,日本把日文编到ShiftJIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码
为了表示世界上所有语言中的所有字符。每一个符号都给予一个独一无二的编码数字,Unicode是一个很大的集合,现在的规模可以容纳100多万个符号。Unicode仅仅只是一个字符集,规定了每个字符对应的二讲制代码,至于这个二讲制代码如何存情则没有规定。
向下兼容ASCII。
#Unicode编码方案
- UTF-8:变长,1~4个字节(当前最主流)
- UTF-16:边长,2或4个字节
- UTF-32:固定长度,4个字节
#centos查看Unicode编码
[root@2022-6-23-centos-test ~]# echo $LANG
#修改Unicode编码方式
[root@2022-6-23-centos-test ~]# LANG=zh_CN.UTF-8
编码规则如下:
对于单个字节的字符,第一位设为0,后面的7位对应这个字符的Unicode 码。因此,对于英文中的0-127号字符,与ASCII码完全相同。这意味着A5CII码的文档可用UTF-8编码打开
对于需要使用N个字节来表示的字符(N>1),第一个字节的前N位都设为1,第N+1位设为0,剩余的N-1个字节的前两位都设位10,剩下的二进制位则使用这个字符的Unicode码来填充
10、命令行扩展和被括起来的集合
10.1、命令行扩展
#把一个命令的输出打印给另一个命令的参数
$(COMMAND)或 `COMMAND`
注:COMMAND必须是一个有标出信息的命令
#比较【" "】,【' '】,【` `】三者区别
[root@2022-6-23-centos-test ~]# echo "$HOSTNAME"
2022-6-23-centos-test
[root@2022-6-23-centos-test ~]# echo '$HOSTNAME'
$HOSTNAME[root@2022-6-23-centos-test ~]# echo `echo $HOSTNAME`
2022-6-23-centos-test
PS:
- 双引号:不能识别命令,可以识别变量
- 单引号:六亲不认,变量和命令都不识别,都当成了普通的字符串
- 反向单引号:变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向中引号的命令继续
#例子:
[root@2022-6-23-centos-test etc]# echo "echo this system name is `hostname`"
echo this system name is 2022-6-23-centos-test
[root@2022-6-23-centos-test etc]# echo "echo this system name is $(hostname)"
echo this system name is 2022-6-23-centos-test
[root@2022-6-23-centos-test ~]# mkdir -p /test/one/`date +%F`_{1..4}.txt
[root@2022-6-23-centos-test ~]# tree /test
/test
└── one
├── 2022-06-28_1.txt
├── 2022-06-28_2.txt
├── 2022-06-28_3.txt
└── 2022-06-28_4.txt5 directories, 0 files
[root@2022-6-23-centos-test ~]# touch /test/one/$(date +%F)_1.txt/`date +%F`-`hostname`.txt
[root@2022-6-23-centos-test ~]# tree /test
/test
└── one
├── 2022-06-28_1.txt
│ └── 2022-06-28-2022-6-23-centos-test.txt
├── 2022-06-28_2.txt
├── 2022-06-28_3.txt
└── 2022-06-28_4.txt5 directories, 1 file
[root@2022-6-23-centos-test ~]# touch /test/one/$(date +%F)_1.txt/`date +%F_%H-%M-%S`-`hostname`.log
[root@2022-6-23-centos-test ~]# tree /test
/test
└── one
├── 2022-06-28_1.txt
│ ├── 2022-06-28_08-33-35-2022-6-23-centos-test.log
│ └── 2022-06-28-2022-6-23-centos-test.txt
├── 2022-06-28_2.txt
├── 2022-06-28_3.txt
└── 2022-06-28_4.txt5 directories, 2 files
[root@2022-6-23-centos-test ~]# touch /test/one/$(date +%F)_2.txt/`date -d '-2 day' +%F`_`hostname`.log
[root@2022-6-23-centos-test ~]# tree /test
/test
└── one
├── 2022-06-28_1.txt
│ ├── 2022-06-28_08-33-35-2022-6-23-centos-test.log
│ └── 2022-06-28-2022-6-23-centos-test.txt
├── 2022-06-28_2.txt
│ ├── 2022-06-26_2022-6-23-centos-test.log
│ ├── 2022-06-27-2022-6-23-centos-test.log
│ └── Mon
├── 2022-06-28_3.txt
└── 2022-06-28_4.txt5 directories, 5 files
10.2、括号扩展:{}
{}可以实现打印重复字符串的简化形式
例子:
[root@2022-6-23-centos-test ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@2022-6-23-centos-test ~]# echo {a..f}
a b c d e f
#每2一递增
[root@2022-6-23-centos-test ~]# echo {a..f..2}
a c e
11、tab补全
内部命令:
外部命令:bash根据PATH环境处量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
命令的了命令补全,需要安装bash-completion
注意:用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab会给出列表
11.1、双击tab键
- command 2tab所有子命令或文件补全
- string 2tab以string开头的命令
- ./ 2tab 当前目录下子目录,包括隐藏目录
- * 2tab 当前目录下子目录,不包括隐藏目录
- - 2tab 所有用户列表
- $ 2tab 所有变量
- @ 2tab /etc/hosts记录(centos不支持)
- = 2tab 相当于ls -A(centos不支持)
12、命令行历史
当执行命令后,系统默认会在内存记录执行过的命令
当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/ .bash_history
登录shell时,会读取命令历史文件中记录下的命令加载到内存中
登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时"追加'至命令历史文件中
利用命令历史,可以用它来重复执行命令,提高输入效率
[root@2022-6-23-centos-test ~]# history --h
-bash: history: --: invalid option
history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
- -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 删除重复命令
12.1、持久保持变量
以上变量可以export变量名="值"形式存放在 【/etc/profile】或【~/.bash_profile】中
12.2、调用命令行历史
#重复前一个命令方法
重复前一个命令使用上方向键,回车执行
按【!!】回车执行
输入【!-1】回车执行
按【CTRL+p】回车执行
#history基本方法
#执行前一条命令(去除参数)
[root@2022-6-23-centos-test ~]# !:0
#执行history命令输出对应序号n的命令[root@2022-6-23-centos-test ~]# !n
#执行history历史中倒数第n个命令
[root@2022-6-23-centos-test ~]# !-n
#重复前一个以"string"开头的命令
[root@2022-6-23-centos-test ~]# !string#重复前一个包含string的命令
[root@2022-6-23-centos-test ~]# !?string#仅打印命令历史,而不执行
[root@2022-6-23-centos-test ~]# !string:p#打印输出 !$(上一条命令的最后一个参数)的内容
[root@2022-6-23-centos-test ~]# !$:p#打印输出 !*(上一条命令的所有参数)的内容
[root@2022-6-23-centos-test ~]# !*:p#删除上一条命令的第一个string
[root@2022-6-23-centos-test ~]# ^string#将上一条命令中的第一个string1替换为string2
[root@2022-6-23-centos-test ~]# ^string1^string2
#将上一条命令中所有的string1都替换给string2
[root@2022-6-23-centos-test ~]# !:gs/string1/string2
#调用历史中搜索命令
[root@2022-6-23-centos-test ~]# ctrl+r#从历史搜索模式退出
[root@2022-6-23-centos-test ~]# ctrl+g
#重新调用前一个命令中最后一盒参数
!$ 表示 如:cat !$
esc ,.
alt +.
command !^ 利用上一个命令的第一个参数做command的参数,如 ll !^
command !$ 利用上一个命令的最后一个参数做cornand的参数
command !* 利用上一个命令的全部参数做connand的参数
command !:n 利用上一个命令的第n个参数微cormand的参数
command !n:^ 调用第n条命令的第一个参数
command !n:$ 调用第n条命令的最后一个参数
command !n:m 调用第n条命令的弟m个参数
command !n:* 调用第n条命令的所有参数
command !string:^ 从命令历史一搜索以 string 开头的命令,并获取它的第一个多数
command !string:$ 从命令历史中搜索以 string开头的命令,并获取它的最后一个参数
command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
command !string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
12.3、bash快捷键
CTRL+l 清屏,相当于clear命令
CTRL+o 执行当前命令,并重新显示本命令
CTRL+s 阻止屏幕输出,锁定(隐藏)
CTRL+q 允许屏幕输出,解锁(显示)
CTRL+c 终止命令
CTRL+z 挂起命令
CTRL+a 光标移到命令行首,相当于home
CTRL+e 光标移至命令行尾,相当于end
CTRL+f 光标向右移动一个字符
CTRL+b 光标向左移动一个字符
ALT+f 光标向右移动一个单词尾
ALT+b 光标向左移动一个单词首
CTRL+u 从光标处删除至命令行首
CTRL+k 从光标处删除至命令行尾
ALTL+r 删除当前整行
CTRL+w 从光标处向左删除至单词首
ALT+d 从光标处向左删除至单词尾
ALT+backspace 删除左边单词
CTRL+d 删除光标处的一个字符
ctrl + h 删除光标前的一个字符
ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向石更改为首字母大写的单词
Alt +u 从光标处升始,将左边一个单词更改为大写
altt +l 从光标处开始,将右边一个单词更改为小写
ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt +# 提示输入指定字符后,重复显示该宇符#次s
PS:atl组合快捷键经常和其他软件冲突
二、常见命令
1、查看硬件信息
1.1、查看CPU
lscpu命令可以查看CPU信息
cat /proc/cpuinfo也可以查看到
1.2、查看内存
[root@2022-6-23-centos-test ~]# free -h
[root@2022-6-23-centos-test ~]# lsmem
1.3、查看硬盘和分区情况
[root@2022-6-23-centos-test ~]# lsblk
[root@2022-6-23-centos-test ~]# cat /proc/partitions
2、查看系统版本信息
2.1、查看内核版本
[root@2022-6-23-centos-test ~]# uname -r
2.2、查看操作系统发行版本
[root@2022-6-23-centos-test ~]# cat /etc/os-release
[root@2022-6-23-centos-test ~]# lsb_release -a
3、日期和时间
linux的两种时钟
- 系统时钟:由linux内核通过cpu的工作频率进行
- 硬件时钟:主板(时钟芯片)
计算机刚刚启动的时候时间是根据硬件时间来,启动之后就由内核计时脱离硬件。
3.1、显示当前系统时间和设置时间
[root@2022-6-23-centos-test ~]# date
[root@2022-6-23-centos-test ~]# date +%s
1584689051
[root@2022-6-23-centos-test ~]# date -d @`date +%s`
[root@2022-6-23-centos-test ~]# date -d @1584689051
[root@2022-6-23-centos-test ~]# date -d @1584689051 +%F_%T
3.2、显示当前硬件时间
[root@2022-6-23-centos-test ~]# clock
-s ,--hctosys 以硬件时钟为准,校正系统时钟
-w, --systohc 以系统时钟为准,校正硬件时钟
3.3、时区文件位置
[root@2022-6-23-centos-test ~]# cat /etc/locatime
#查看所有时区
[root@2022-6-23-centos-test ~]# timedatectl list-timezones
#修改时区
[root@2022-6-23-centos-test ~]# timedatectl set-timezone Asia/Shanghai
3.4、显示日历
[root@2022-6-23-centos-test ~]# cal -y
[root@2022-6-23-centos-test ~]# cal 9 1752
4、关机和重启
4.1、关机:
halt
poweroff
4.2、重启
reboot
-f #强制,不调用shutdown
-p #切断电源
4.3、关机和重启
shutdown 【option】.. [time] [message]
-r:reboot
-h:halt
-c:cancel
TIME:无指定,默认相当于+1
now:立刻,相当于+0
+#:相对时间表示法,几分钟之后执行操作,例如+3
hh:mm:绝对时间表示,指明具体时间
5、用户登录信息查看命令
- whoami:显示当前登录有效用户
- who:系统当前所有的登录会话
- w:系统当前所有的登录会话及所做的操作
6、登录提示信息
6.1、登录前提示
[root@2022-6-23-centos-test ~]# vim /etc/issue
6.2、登录后提示
[root@2022-6-23-centos-test ~]# vim /etc/motd
7、会话管理
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称”窗口”),在里面输入命令。用户与计算机的这利临时的交互,称为一次"会话”(session)
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;;闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完
一个典型的例子就是,SSH登录远程计算机,打开一个远程窗LI执行命令。这时,网络突然断线,冉次登录的时候,是找不回上一次执行的命令的。因为上一次SSH会话已经终止了,里面的进程也随之消失了。为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"具他窗口
终端复用器软件就是会话与窗口的"解绑"工具,将它们彻底分离。
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
(2)它可以让新窗"接入"已经存在的会话。
(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
(4)它还支持窗口任意的垂直和水平拆分。
类似的终端复用器还有Screen,Tmux
7.1、screen
利用screen工具可以实现会话管理,如:新建会话,共享会话等
#安装screen
[root@2022-6-23-centos-test ~]# yum -y install screen
#常用方法:
创建screen会话
screen -S 【session】
加入screen会话
screen -x [session]
退出并关闭screen会话
exit
剥离当前screen会话
CTRL+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [session]
7.2、tmux
Tmux是一个终端复用器(terminal multiplexer),类似screen,但是更易用,也更强大
Tmux就是会话与窗口的"解绑"工具,将它们彻底分离,功能如下
- ·它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
- ·它可以让新窗口"接入"已经存在的会话。
- ·它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
- ·它还支持窗口任意的垂直和水平拆分
#安装tmux
[root@2022-6-23-centos-test ~]# yum -y insall tmux
#启动与退出
[root@2022-6-23-centos-test ~]# tmux
[root@2022-6-23-centos-test ~]# exit
tmux窗口有大量的快捷键。所有快捷键都要通过前缀键晚起。默认的前缀锦是ctrl+b,即先按下ctrl+b,快建键才会生效。帮园命令的快捷键是Ctrl+b ?然后,按下q键,就可以退出帮助
新建会话
第一个启动的Tmux窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是0号会话,1号会话。使用编号区分会话,不太直观,更好的方法是为会话起名。下面命令新建一个指定名称的会话。
tmux new -s <session-name>
#tmux ls 或CTRL+b,s可以查看当前所有的tmux会话
tmux ls
tmux list-session
#窗口快捷键
#列出所有快捷键,及其对应的tmux命令
tmux list-keys
#列出所有tmux命令及其参数
tmux list-commands
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数字
例子:
8.1、echo高级用法
在终端上,ANSI定义了用于屏幕显示的escape屏幕控制码
具有颜色的字符其格式如下:
常见的ANSI控制码:
9、帮助命令
获得帮助的能力决定了技术的能力!
相关层次帮助:
- whatis
- command --help
- man and info
- /usr/share/doc
- red hat documentation、ubuntu documentation
- 软件项目网站
- 其他网站
- 搜索
9.1、whatis
whatis使用数据库来显示命令的简短描述
#生成man相关数据库
[root@2022-6-23-centos-test ~]# mandb
[root@2022-6-23-centos-test ~]# whatis rm
rm (1) - remove files or directories
rm (1p) - remove directory entries #p代表开发
9.2、查看内部命令帮助
- help COMMAND
- man bash
#例子:
[root@2022-6-23-centos-test ~]# help type
type: type [-afptP] 名称 [名称 ...]
显示命令类型的信息。
对于每一个 NAME 名称,指示如果作为命令它将如何被解释。
选项:
-a 显示所有包含名称为 NAME 的可执行文件的位置;
包括别名、内嵌和函数。仅当 `-p' 选项没有使用时
-f 抑制 shell 函数查询
-P 为每个 NAME 名称惊醒 PATH 路径搜索,即使它是别名、
内嵌或函数,并且返回将被执行的磁盘上文件的名称。
-p 返回将被执行的磁盘上文件的名称,或者当 `type -t NAME'
不返回 `file' 时,不返回任何值。
-t 返回下列词中的任何一个`alias'、`keyword'、
`function'、`builtin'、`file'或者`',如果 NAME 是相应的
一个别名、shell 保留字、shell 函数、shell 内嵌、
磁盘文件或没有找到。
参数:
NAME 将要解析的命令。
退出状态:
如果所有的 NAME 命令都找到则返回成功;任何找不到则失败。
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
设置变量的值和属性。
废弃。参见 `help declare'。
9.3、查看外部命令和软件帮助
- COMMAND --help 或 COMMAND -h
- 使用man手册(manual):man COMMAND
- 信息页:info COMMAND
- 程序自身的帮助文档
- 程序官方文档
- 相关网站
- 搜索引擎
#--help或-h选项
[root@2022-6-23-centos-test ~]# date --help
用法:date [选项]... [+格式]
或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like --date once for each line of DATEFILE
-I[TIMESPEC], --iso-8601[=TIMESPEC] output date/time in ISO 8601 format.
TIMESPEC='date' for date only (the default),
'hours', 'minutes', 'seconds', or 'ns' for date
and time to the indicated precision.
-r, --reference=文件 显示文件指定文件的最后修改时间...............
#man命令
man提供命令帮助的文件,手册页存放在/usr/share/man
中文man需要安装包
- man-pages
- man-pages-zh-CN
#man章节
man页面分组为不同的“章节",统称为Linux手册,man n man
- 1:用户命令(运维)
- 2:系统调用(程序员)
- 3:C库调用(程序员)
- 4:设备文件及特殊义件
- 5∶配置文件格式(运维)
- 6:游戏
- 7:杂项
- 8:管理类的命令(运维)
- 9:Linux内核API
#查看指定章节
[root@2022-6-23-centos-test ~]# man 5 passwd
PS:【/】进行搜索关键字
#man命令的配置文件
#centos7之后版本man配置文件
/etc/man_db.conf
#ubuntu man的配置文件
/etc/manpath.config
9.4、命令自身提供的官方使用指南
/usr/share/doc 目录
官方网站汇总
#内核官网
www.kernel.org
#编码转换和查询参考链接:
http://www.chi2ko.com/tool/CJK.htm
https://www.bejson.com/convert/unicode_chinese/
htps://javawind.net/tools/native2ascii.jsp?acticn=transform
http://tool.oschina.net/encode
http://web.chacuo.net/charsetescape
#通过在线文档获取帮助
http://www.github.com
htps://vww.kernel.org/doc/html/latest/
http://httpd.apache.org
http://www.nginx.org
https://mariadb.com/kbien
https://dev.mysql.com/doc/
http://tomcat.apache.org
https://jenkins.io/zh/doc/
https://kubernetes.io/docs/home/
https://docs.openstack.org/train/
http:/www.python.org
http://php.net
#linux官方在线文档和知识库
安装指南、部署指南、虚拟化指南等
hulps://help.ubuntu.com/
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com
https://help.ubuntu.com/lts/serverguide/index.html
http://tldp.org
#网站和搜索
http://www.gogle.com
http://bing.com
http://www.baidu.com
https://www.dogedoge.com/
http://www.slideshare.net
命令汇总
#执行磁盘的扫描(新加硬盘时不显示新加的硬盘)或重启
[root@2022-6-23-centos-test ~]# echo - - - > /sys/class/scsi_host/host0/scan
若执行一次还是没有效果 host1....n
#nano工具(文本的编辑功能,上手容易)
[root@2022-6-23-centos-test ~]# yum -y install nano
[root@2022-6-23-centos-test ~]# nano .bashrc
#树状显示子父进程
[root@2022-6-23-centos-test ~]# pstree -p
#计算器
[root@2022-6-23-centos-test ~]# bc
#显示命令路径及相关帮助文档
[root@2022-6-23-centos-test ~]# whereis hostname
#hexdump是Linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII、八进制、十进制、十六进制格式进行查看
[root@2022-6-23-centos-test ~]# hexdump -C linux.txt