Linux基础入门

Linux基础入门

1 Linux基础

1.1 用户类型

  • root用户

一个特殊的管理用户,也被称为超级用户,root已接近完整的系统控制,对系统损害几乎有无限的能力,除非必要,否则不要用root登录

  • 普通(非特权)用户

权限有限,造成损害的能力比较有限

1.2 终端terminal

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

1.2.1 终端类型

控制台终端:/dev/console

串行终端:/dev/ttyS#

虚拟终端:tty ; /dev/tty#

图形终端:startx,xwindows

伪终端:pty ;/dev/pts/# 例如:SSH远程连接

1.2.2 查看当前的终端设备

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

~]# tty

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

在这里插入图片描述

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

shell也被称为LINUX的命令解释器;shell是一种高级程序设计语言

1.3.3 各种shell

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

1.3.4 bash shell

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

显示当前使用的shell

echo ${SHELL}

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

cat /etc/shells

1.4 设置主机名

hostname NAME
hostnamectl set-hostname NAME

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

1.5 命令提示符

命令提示符:prompt

显示提示符格式

~]# echo $PS1

修改提示符格式范例

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小时时间格式
  • ! 命令历史数
  • #开机后命令历史数

范例:持久保存提示符格式相关变量PS1

[root@centos8 ~]# 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@centos8 ~]#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\]\\$"
[root@centos8 ~]# exit
logout

1.6 执行命令

1.6.1 执行命令过程

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

1.6.2 shell中可执行的两类命令

  • 内部命令:由shell自带的,而且通过某命令形式提供
  • 外部命令:在文件系统路径下有对应的可执行程序文件

区别指定的命令是内部或外部命令

type COMMAND

范例:查看是否存在对应内部和外部命令

~]# type -a echo
echo is a shell builtin
echo is /usr/bin/echo
1.6.2.1 内部命令系相关

help 内部命令列表

enable 管理内部命令

  • enable cmd 启用内部命令
  • enable -n cmd 禁用内部命令
  • enable -n 查看所有禁用的内部命令
1.6.2.2 执行外部命令

查看外部命令路径:

which -a|--skip-alias
whereis

Hash缓存表

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

hash命令常用用法

  • hash 显示hash缓存
  • hash -i 显示hash缓存,可作为输入使用
  • hash -p path name 将命令全路径path起别名为name
  • hash -t name 打印缓存中name的路径
  • hash -d name 清除name缓存
  • hash -r 清除缓存

1.6.3 命令别名

对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行

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

alias

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

alias NAME='VALUE'

范例:

~]# echo "alias free='free -h'" >> .bashrc

撤销别名:unalias

unalias [-a] name [name ...]
unalias -a #取消所有的别名

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

如果想永久有效,要定义在配置文件中

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

编辑配置给出的新配置不会立即生效,bash进程重新读取配置文件

source /path/to/config_file
. /path/to/config_fil

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

\ALIASNAME
"ALIASNAME"
'ALIASNAME'
command ALIASNAME
/path/command #只适用于外部命令

1.6.4 命令格式

COMMAND [OPTIONS...] [ARGUMENTS...]

选项:用于启动或关闭命令的某个或某些功能

  • 短选项:UNIX风格选项,-c
  • 长选项:GNU风格选项,–word
  • BSD风格选项:一个字母,a,使用相对较少

参数:命令的作用对象

注意:

  • 多个选项以及多参数和命令之间使用空白字符分隔
  • 取消和结束命令执行: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
1.7.2.2 查看操作系统发型版本
#centos
cat /etc/redhat-release
cat /etc/os-release
lsb_release -a
#ubuntu
cat /etc/os-release
cat /etc/issue
lsb_release -a

1.7.3 日期和时间

Linux的两种时钟

系统时钟:由Linux内核通过CPU的工作频率进行的

硬件时钟:主板

相关命令

  • date 显示和设置系统时间
[root@centos8 ~]#date +%s
1584689051
[root@centos8 ~]#date -d @`date +%s`
Fri Mar 20 15:24:18 CST 2020
[root@centos8 ~]#date -d @1584689051
Fri Mar 20 15:24:11 CST 2020
[root@centos8 ~]#date -d @1584689051 +%F_%T
2020-03-20_15:24:11
  • clock,hwclock:显示硬件时钟

    -s ,–hctosys 以硬件时钟为准,校正系统时钟

    -w,–systohc 以系统时钟为准,校正硬件时钟

时区

/etc/localtime

[root@centos8 ~]#timedatectl set-timezone Asia/Shanghai
[root@centos8 ~]#ll /etc/localtime 
lrwxrwxrwx. 1 root root 35 Dec 11 11:19 /etc/localtime -> 
../usr/share/zoneinfo/Asia/Shanghai
root@ubuntu1804:~# cat /etc/timezone 
Asia/Shanghai

显示日历

cal -y

[16:47:36 root@centos8 ~]#cal 9 1752
   September 1752   
Su Mo Tu We Th Fr Sa
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

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 会话管理

命令行的典型使用方式是,打开一个终端窗口,在里面输入命令,用户与计算机的这种临时交互,称为一次会话,会话的一个重要特点是窗口与其中启动的进程是连在一起的,打开窗口,会话开始,关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完;为了解决这个问题,会话与窗口可以“解绑”,窗口关闭时,会话并不会终止,而是继续运行,等到以后需要的时候,再让会话“绑定”其他窗口

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

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

类似的终端复用器有screnn、tmux

1.7.7.1 screen

会话工具

1.7.7.2 tmux

会话工具

1.7.8 输出信息echo

echo 命令可以将后面跟的字符进行输出

功能:显示字符,echo会将输入的字符串送往标准输出

语法

echo [-neE] [字符串]

选项

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

显示变量

echo "$VALUE_NAME" #用变量值替换,强引用
echo '$VALUE_NAME' #变量不会替换,弱引用

启用命令选项-e ,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

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

范例

[root@centos8 ~]#echo -e 'a\x0Ab'
a
b
[root@centos8 ~]#echo -e '\033[43;31;1;5mmagedu\e[0m'
magedu
[root@centos8 ~]#echo -e '\x57\x41\x4E\x47'
WANG
[root@centos8 ~]#echo \$PATH
$PATH
[root@centos8 ~]#echo \
[root@centos8 ~]#echo \\
\
[root@centos8 ~]#echo \\\
> 
[root@centos8 ~]#echo \\\\
\\
[root@centos8 ~]#echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos8 ~]#echo '$PATH'
$PATH

1.8 字符集和编码

许多场合下,字符集与编码这两个概念常被混为一谈,但两者是有差别的。字符集与字符集编码是两个 不同层面的概念 charset是character set的简写,即字符集,即二进制和字符的对应关系,不关注最终的存储形式 encoding是charset encoding的简写,即字符集编码,简称编码,实现如何将字符转化为实际的二进制 进行存储或相反,编码决定了空间的使用的大小

1.8.1 ASCII码

计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美国制定了一套字符编码,对英语字 符与二进制位之间的关系,做了统一规定,即ASCII(American Standard Code for Information Interchange) 码 ASCII 码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为 0

[root@centos8 ~]#dnf -y install man-pages
[root@centos8 ~]#man ascii

1.8.2 Unicode

由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,即ASCII编码,但是要处理 中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了 GB2312编码,用来把中文编进去。 全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就 会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码 为了表示世界上所有语言中的所有字符。每一个符号都给予一个独一无二的编码数字,Unicode 是一个 很大的集合,现在的规模可以容纳100多万个符号。Unicode 仅仅只是一个字符集,规定了每个字符对 应的二进制代码,至于这个二进制代码如何存储则没有规定

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

[root@centos7 ~]#xxx
bash: xxx: command not found...
[root@centos7 ~]#echo $LANG
en_US.UTF-8
[root@centos7 ~]#LANG=zh_CN.UTF-8
[root@centos7 ~]#echo $LANG
zh_CN.UTF-8
[root@centos7 ~]#xxx
bash: xxx: 未找到命令...

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

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

把一个命令的输出打印给另一个命令的参数

$(COMMAND) 或 `COMMAND`

比较"" ‘’ ``区别

[root@centos8 ~]#echo "echo $HOSTNAME"
echo centos8.localdomain
[root@centos8 ~]#echo 'echo $HOSTNAME'
echo $HOSTNAME
[root@centos8 ~]#echo `echo $HOSTNAME`
centos8.localdomain
结论:
单引号:六亲不认,变量和命令都不识别,都当成了普通的字符串
反向单引号:变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的
命令继续
双引号:不能识别命令,可以识别变量

$() 和``

[root@centos8 ~]#ll `echo `date +%F`.txt`
-bash: .txt: command not found
ls: cannot access 'date': No such file or directory
ls: cannot access '+%F': No such file or directory
[root@centos8 ~]#ll $(echo $(date +%F).txt)
-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt
[root@centos8 ~]#ll `echo $(date +%F).txt`
-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt
[root@centos8 ~]#ll $(echo `date +%F`.txt)
-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt
总结:重复使用``会出现识别错误,因此使用$()比较合适,适合各种场景

1.9.2 括号扩展:{}

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

echo file{1,3,5} 结果为:file1 file3 file5

[root@centos8 ~]#echo {000..20..2}
000 002 004 006 008 010 012 014 016 018 020
[root@centos8 ~]#echo {a..z..2}
a c e g i k m o q s u w y
[root@centos8 ~]#echo {A..z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i 
j k l m n o p q r s t u v w x y z

1.10 tab键补全

tab 键可以实现命令及路径等补全,提高输入效率,避免出错

1.10.1 命令补全

  • 内部命令:
  • 外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文 件,第一次找到的命令即为要执行的命令
  • 命令的子命令补全,需要安装 bash-completion

1.10.2 路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名 如果惟一:则直接补全 否则:再次Tab给出列表

1.10.3 双击Tab键

  • command 2Tab 所有子命令或文件补全
  • string2Tab 以string开头命令
  • /2Tab 显示所有根目录下一级目录,包括隐藏目录
  • ./2Tab 当前目录下子目录,包括隐藏目录
  • *2Tab 当前目录下子目录,不包括隐藏目录
  • ~2Tab 所有用户列表
  • $2Tab 所有变量
  • @2Tab /etc/hosts记录 (centos7 不支持)
  • =2Tab 相当于ls –A (centos7不支持)

1.11 命令行历史

当执行命令后,系统默认会在内存记录执行过的命令 当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是 ~/.bash_history 登录shell时,会读取命令历史文件中记录下的命令加载到内存中 登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加”至命令历史 文件中 利用命令历史。可以用它来重复执行命令,提高输入效率

命令:history

history [-c] [-d offset] [n] 
history -anrw [filename] 
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 删除重复命令

持久保存变量

  • 以上变量可以 export 变量名=“值” 形式存放在 /etc/profile 或 ~/.bash_profile
[root@centos8 ~]#cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export HISTCONTROL=ignoreboth
export HISTTIMEFORMAT="%F %T " 
[root@centos8 ~]#history 
    1  2019-12-13 08:39:05 ls /data 
    2  2019-12-13 08:39:05 date
    3  2019-12-13 08:39:05 vie0
    4  2019-12-13 08:39:05 nano .bash_profile
    5  2019-12-13 08:39:05 exit

1.12 调用命令行历史

#重复前一个命令方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入 !-1 并回车执行
按 Ctrl+p 并回车执行
!:0 执行前一条命令(去除参数)
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
使用up(向上)和down(向下)键来上下浏览从前输入的命令
ctrl-r来在命令历史中搜索命令
(reverse-i-search)`’:
Ctrl+g:从历史搜索模式退出

#要重新调用前一个命令中最后一个参数
!$ 表示
Esc, .   点击Esc键后松开,然后点击 . 键
Alt+ .   按住Alt键的同时点击 .command !^   利用上一个命令的第一个参数做command的参数
command !$   利用上一个命令的最后一个参数做command的参数
command !*   利用上一个命令的全部参数做command的参数
command !:n 利用上一个命令的第n个参数做command的参数
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 开头的命令,并获取它的所有参数

1.13 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 + xx 光标在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r     删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + # 提示输入指定字符后,重复显示该字符#次

注意:Alt组合快捷键经常和其他软件冲突

xshell中启动alt键

在这里插入图片描述

2 获取帮助

获取帮助的能力决定了技术的能力!

多层次的帮助

  • whatis
  • command --help
  • man and info
  • /usr/share/doc/
  • Red Hat documentation 、Ubuntu documentation
  • 软件项目网站
  • 其它网站
  • 搜索

2.1 whatis

wahtis 使用数据库来显示命令的简短描述

刚安装后不可立即使用,需要制作数据库

#CentOS 7 版本以后
mandb 
#CentOS 6 版本之前
makewhatis

[root@centos8 ~]#whatis ls
ls: nothing appropriate.
#生成man相关数据库
[root@centos8 ~]#mandb
Processing manual pages under /usr/share/man...
Updating index cache for path `/usr/share/man/mann'. Wait...done.
Checking for stray cats under /usr/share/man...
...省略...
0 old database entries were purged.
[root@centos8 ~]#whatis ls
ls (1)               - list directory contents
[root@centos8 ~]#whatis cal
cal (1)             - display a calendar
cal (1p)             - print a calendar
[root@centos8 ~]#man -f cal
cal (1)             - display a calendar
cal (1p)             - print a calendar

2.2 查看命令的帮助

内部命令

  • help COMMAND
  • man bash
[root@centos8 ~]#type history
history is a shell builtin
[root@centos8 ~]#help history
history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps 
arg [arg...]
...

外部命令

  • COMMAND --help 或 COMMAND -h
  • 使用手册(manual) man COMMAND
  • 信息页 info COMMAND

2.3 --help或-h选项

显示用法总结和参数列表,大多数命令使用,但并非所有的

[root@centos8 ~]#date --help
Usage: date [OPTION]... [+FORMAT]
 or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
[root@centos8 ~]#cal -h
Usage:
 cal [options] [[[day] month] year]
 cal [options] <timestamp|monthname>
[root@centos8 ~]#openssl --help
Invalid command '--help'; type "help" for a list.
[root@centos8 ~]#date -h
date: invalid option -- 'h'
Try 'date --help' for more information.
[root@centos8 ~]#shutdown -h
Shutdown scheduled for Fri 2020-03-20 08:26:27 CST, use 'shutdown -c' to cancel.

格式说明

  • [] 表示可选项
  • CAPS或<> 表示变化的数据
  • … 表示一个列表
  • x|y|z 表示”x或y或z“
  • -abc 表示-a -b -c
  • {} 表示分组

2.4 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

man命令的配置文件

#CentOS 6 之前版 man 的配置文件
/etc/man.config 
#CentOS 7 之后版 man 的配置文件
/etc/man_db.conf
#ubuntu man 的配置文件
/etc/manpath.config

格式

MANPATH /PATH/TO/SOMEWHERE #指明man文件搜索位置

也可以指定位置下搜索COMMAND命令的手册页并显示

man -M /PATH/TO/SOMEWHERE COMMAND

查看man手册页

man [章节] keyword

man 帮助段落说明

  • NAME 名称及简要说明
  • SYNOPSIS 用法格式说明
  • [] 可选内容
  • <> 必选内容
  • a|b 二选一
  • { } 分组
  • … 同一内容可出现多次
  • DESCRIPTION 详细说明
  • OPTIONS 选项说明
  • EXAMPLES 示例
  • FILES 相关文件
  • AUTHOR 作者
  • COPYRIGHT 版本信息
  • REPORTING BUGS bug信息
  • SEE ALSO 其它帮助参考

列出所有帮助

man -a keyword

所有man手册

#列出所有匹配的页面,使用whatis 数据库
man -k keyword

打印man帮助文件的路径

man -w [章节] keyword

范例

[root@centos8 ~]#man -w 1 passwd
/usr/share/man/man1/passwd.1.gz
[root@centos8 ~]#whatis passwd
openssl-passwd (1ssl) - compute password hashes
passwd (1)           - update user's authentication tokens
[root@centos8 ~]#man 1ssl openssl-passwd
[root@centos8 ~]#dnf install man-pages
[root@centos8 ~]#man 7 ascii
[root@centos8 ~]#man 7 utf8

man命令的操作方法:使用less命令实现

  • space, ^v, ^f, ^F: 向文件尾翻屏
  • b, ^b: 向文件首部翻屏
  • d, ^d: 向文件尾部翻半屏
  • u, ^u: 向文件首部翻半屏
  • RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行
  • y or ^Y or ^P or k or ^K:向文件首部翻一行
  • q: 退出
  • #:跳转至第#行
  • 1G: 回到文件首部
  • G:翻至文件尾部
  • /KEYWORD
    • 以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写
    • n:下一个
    • N:上一个
  • ?KEYWORD
    • 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写
    • n:跟搜索命令同方向,下一个
    • N:跟搜索命令反方向,上一个

2.5 info

man常用于命令参考 ,GNU工具 info 适合通用文档参考

没有参数,列出所有的页面 ,info 页面的结构就像一个网站 ,每一页分为“节点” ,链接节点之前 *

info 命令格式

info [命令]

导航info页

  • 方向键,PgUp,PgDn 导航
  • Tab键 移动到下一个链接
  • d 显示主题目录
  • Home 显示主题首部
  • Enter进入 选定链接
  • n/p/u/l 进入下/前/上一层/最后一个链接
  • s 文字 文本搜索
  • q 退出 info

2.6 Linux安装提供的本地文档获取帮助

Applications -> documentation->help(centos7)

System->help(centos6)

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

/usr/share/doc 目录

多数安装了的软件包的子目录,包括了这些软件的相关原理说明 常见文档:README INSTALL CHANGES 不适合其它地方的文档的位置 配置文件范例 HTML/PDF/PS 格式的文档 授权书详情

2.8 系统及第三方应用官方文档

2.8.1 通过在线文档获取帮助

http://www.github.com

https://www.kernel.org/doc/html/latest/

http://httpd.apache.org

http://www.nginx.org

https://mariadb.com/kb/en

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

2.8.2 Linux官方在线文档和知识库

通过发行版官方的文档光盘或网站可以获得安装指南、部署指南、虚拟化指南等

http://kbase.redhat.com

http://www.redhat.com/docs

http://access.redhat.com

https://help.ubuntu.com/lts/serverguide/index.html

http://tldp.org

2.8.3 红帽全球技术支持服务

rhn.redhat.com或者本地卫星服务器/代理服务器

RHN账户为及其注册和基于网络管理的RHN用户, sosreport 收集所有系统上的日志信息的工具,并自动打成压缩包,方便技术支持人员和红帽全球支持 提供分析问题依据

[root@centos8 ~]#dnf -y install sos 
[root@centos8 ~]# sosreport
sosreport (version 3.6)
This command will collect diagnostic and configuration information from
this CentOS Linux system and installed applications.
...
The checksum is: ffbbe6fa9f009f4024e272fbce500bff
Please send this file to your support representative.
[root@centos8 sysconfig]#ll /var/tmp/sosreport-centos8-2-2020-03-20-
xllummc.tar.xz
-rw------- 1 root root 4409596 Mar 20 18:57 /var/tmp/sosreport-centos8-2-2020-
03-20-xllummc.tar.xz
[root@centos8 sysconfig]#cd
[root@centos8 ~]#ll /var/tmp/sosreport-centos8-2-2020-03-20-xllummc.tar.xz

2.9 网站和搜索

Openstack filetype:pdf

rhca site:redhat.com/docs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值