Linux基础

目录

​​​​​​一、linux基础概述

1、root用户

2、普通(非特权)用户

3、终端(terminal)

3.1、终端类型

3.2、查看当前的终端设备

3.3、远程工具

4、交互式接口

4.1、交互式接口类型

4.2、什么是SHELL

4.3、各种SHELL

5、设置主机名

6、命令提示符:prompt

6.1、显示提示符格式

6.2、更改提示符格式

6.3、提示符格式说明:

7、执行命令

7.1、执行命令过程

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

7.3、内部命令

7.4、外部命令

7.5、命令别名

8、命令格式

9、字符集和编码

9.1、ASCII码

9.2、Unicode

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

10.1、命令行扩展

10.2、括号扩展:{}

11、tab补全

11.1、双击tab键

12、命令行历史

12.1、持久保持变量

12.2、调用命令行历史

12.3、bash快捷键

二、常见命令

1、查看硬件信息

1.1、查看CPU

1.2、查看内存

1.3、查看硬盘和分区情况

2、查看系统版本信息

2.1、查看内核版本

2.2、查看操作系统发行版本

3、日期和时间

3.1、显示当前系统时间和设置时间

3.2、显示当前硬件时间

3.3、时区文件位置

3.4、显示日历

4、关机和重启

4.1、关机:

4.2、重启

4.3、关机和重启

5、用户登录信息查看命令

6、登录提示信息

6.1、登录前提示

6.2、登录后提示

7、会话管理

7.1、screen

7.2、tmux

8、输出信息echo

8.1、echo高级用法

9、帮助命令

9.1、whatis

9.2、查看内部命令帮助

9.3、查看外部命令和软件帮助

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

官方网站汇总

命令汇总


​​​​​​一、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.txt

5 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.txt

5 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.txt

5 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.txt

5 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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值