首页 > 其他 > 详细

(SRE)新基础知识一

时间:2021-04-03 20:57:13      阅读:32      评论:0      收藏:0      [点我收藏+]

显示当前使用的shell

[14:46:50 root@sz-kx-centos8 ~]# echo $SHELL

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

[14:47:00 root@sz-kx-centos8 ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

设置主机名

临时生效

[14:47:35 root@sz-kx-centos8 ~]# hostname centos8.long.net

持久生效,支持CentOS7和Ubuntu18.04以上版本

[14:49:37 root@sz-kx-centos8 ~]# hostnamectl set-hostname centos8.long.net

注意:

1,主机名不支持使用下划线,但支持横线,可使用字母,横线或数字组合

2,有些软件对主机名有特殊要求

命令提示符

# 管理员

$ 普通用户

显示提示符格式

[14:52:18 root@sz-kx-centos8 ~]# echo $PS1
\[\e[1;32m\][\[\e[0m\]\[\e[1;32m\]\t \[\e[1;33m\]\u\[\e[34m\]@\h\[\e[1;31m\] \w\[\e[1;32m\]]\[\e[0m\]\#

提示符格式说明:

\e 控制符\033

\u 当前用户

\h 主机名简称

\H 主机名

\w 当前工作目录

\W 当前工作目录基名

\t 24小时时间格式

\T 12小时时间格式

! 命令历史数

# 开机后命令历史数

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

[14:52:23 root@sz-kx-centos8 ~]# echo "PS1=‘\[\e[1;32m\][\[\e[0m\]\[\e[1;32m\]\t \[\e[1;33m\]\u\[\e[34m\]@\h\[\e[1;31m\] \w\[\e[1;32m\]]\[\e[0m\]# ‘" >> .bashrc

 

内部命令

[14:57:06 root@sz-kx-centos8 ~]# type echo
echo is a shell builtin

外部命令

[14:57:11 root@sz-kx-centos8 ~]# type wget
wget is /usr/bin/wget

内部命令相关

help 内部命令列表

enable 管理内部命令

    enable cmd 启用内部命令

    enable -n cmd 禁用内部命令

    enable -n 查看所有禁用的内部命令

查看外部命令:

[15:01:42 root@sz-kx-centos8 ~]# whereis wget
wget: /usr/bin/wget /usr/share/man/man1/wget.1.gz /usr/share/info/wget.info.gz

 

Hash缓存表

hash 命令常见用法

    hash 显示hash缓存

    hash -l 显示hash缓存,可作为输入使用

    hash -p path name 将命令全路径path起别名为name

    hash -t name 打印缓存中name的路径

    hash -d name 清除 name 缓存

    hash -r 清除缓存

命令别名

alias

范例:定义别名

[15:07:00 root@sz-kx-centos8 ~]# alias scandisk="echo ‘- - -‘ > /sys/class/scsi_host/host0/scan;echo ‘- - -‘ > /sys/class/scsi_host/host1/scan;echo ‘- - -‘ > /sys/class/scsi_host/host2/scan"

[15:07:00 root@sz-kx-centos8 ~]# vim .bashrc

撤销别名:unalias

unalias [-a] name [name ...]

取消所有别名

unalias -a

注意:

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

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

    仅对当前用户:~/.bashrc

    对所有用户有效:/etc/bashrc

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

source /path/config_file

. /path/config_file

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

\ALIASNAME

"ALIASNAME"

‘ALIASNAME‘

command ALIASNAME

只适用于外部命令

/path/command

命令格式

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

COMMAND [COMMAND] [COMMAND] ...

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

    短选项:UNIX 风格选项,-c 例如:-l ,-h,-a

    长选项:GNU 风格选项,--word 例如:--all,--human

    BSD风格选项:一个字母,例如:a,使用相对较少

参数:命令的作用对象,比如:文件名,用户名等

范例:

[15:20:48 root@sz-kx-centos8 ~]# id -u long
1000

[15:20:53 root@sz-kx-centos8 ~]# ls -a

[15:20:58 root@sz-kx-centos8 ~]# ls --all

[15:21:08 root@sz-kx-centos8 ~]# free -h

[15:21:18 root@sz-kx-centos8 ~]# free --human

[15:21:27 root@sz-kx-centos8 ~]# ps a

注意:

1,多个选项以及多个参数和命令之间使用空白字符分隔开

2,取消和结束命令执行:Ctrl+c,Ctrl+d

3,多个命令可以使用 “;” 符号分开

4,一个命令可以用 \ 分成多行

 

常见命令

查看硬件信息

查看CPU

lscpu 命令可以查看cpu信息

[15:21:31 root@sz-kx-centos8 ~]# cat /proc/cpuinfo

查看内存大小

[15:21:08 root@sz-kx-centos8 ~]# free

查看硬盘和分区情况

[15:26:16 root@sz-kx-centos8 ~]# lsblk

[15:27:19 root@sz-kx-centos8 ~]# cat /proc/partitions

查看系统架构

[15:27:39 root@sz-kx-centos8 ~]# arch

查看内核版本

[15:28:02 root@sz-kx-centos8 ~]# uname -r

查看操作系统发行版本

[15:28:27 root@sz-kx-centos8 ~]# cat /etc/os-release

[15:28:56 root@sz-kx-centos8 ~]# cat /etc/redhat-release

 

日期和时间

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

硬件时钟:主板

相关命令:

    date 显示和设置系统时间

范例:

[15:29:43 root@sz-kx-centos8 ~]# date

查看date 命令帮助

[15:31:22 root@sz-kx-centos8 ~]# date --help

clock,hwclock:显示硬件时钟

以硬件时钟为准,消正系统时钟

-s,--hctosys

以系统时钟为准,校正硬件时钟

-w,--systohc

查看当前时区:

[15:31:47 root@sz-kx-centos8 ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Jun 13 2020 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

显示一年日历

[15:35:20 root@sz-kx-centos8 ~]# cal -y

关机和重启

关机:

halt

poweroff

重启

reboot

-f :强制,不调用shutdown

-p:切断电源

关机或重启:shutdown

shutdown [OPTION]... [TIME] [MESSAGE]

-r:rboot

-h:halt

-c:cancel

TIME:无指定,默认相当于+1 (CentOS7)

    now:立即,相当于+0

    +#:相对时间表示法,几分钟之后;例如+3

    hh:mm:绝对时间表示,指明具体时间

用户登录信息查看命令

显示当前登录有效用户

whoami

系统当前所有的登录会话

who

系统当前所有的登录会话及所做的操作

w

 

会话管理软件 screen

注意:CentOS7 来自于base源,CentOS8来自于epel源

CentOS7安装

[03:46:57 root@sz-centos7 ~]# yum install -y screen

CentOS8安装

[15:35:29 root@sz-kx-centos8 ~]# yum -y install epel-release

[15:35:29 root@sz-kx-centos8 ~]# yum install -y screen

screen命令常见用法:

创建新screen会话

screen -S [SESSION]

加入screen会话

screen -x [SESSION]

退出并关闭screen会话

exit

剥离当前screen会话

Ctrl+a,d

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

screen -ls

恢复某screen会话

screen -r [SESSION]

会话管理软件 tmux

安装

[15:48:09 root@sz-kx-centos8 ~]# yum install tmux

启动

[15:48:09 root@sz-kx-centos8 ~]# tmux

退出

[15:48:09 root@sz-kx-centos8 ~]# exit

列出所有快捷键,及其对应的 tmux 命令

tmux list-keys

列出所有 tmux 命令及参数

tmux list-commands

 

输出信息 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数字(man 7 ascii)

echo 高级用法

\033[30m    --    \033[37m  设置前景色

\033[40m    --    \033[47m  设置背景色

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

40:黑

41:红

42:绿

43:黄

44:蓝

45:紫

46:深绿

47:白色

字体颜色:30-37

30:黑

31:红

32:绿

33:黄

34:蓝

35:紫

36:深绿

37:白色

\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[?25    隐藏光标

\033[?25h  显示光标

\033[2J\033[0;0H    清屏且将光标置顶

 

字符集 ascii

查看ascii 表

[16:21:22 root@sz-kx-centos8 ~]# yum -y install man-pages

[16:21:43 root@sz-kx-centos8 ~]# man ascii

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

[16:21:43 root@sz-kx-centos8 ~]# echo $LANG

[16:21:43 root@sz-kx-centos8 ~]# xxx

-bash: xxx: command not found

 

[16:21:43 root@sz-kx-centos8 ~]# LANG=zh_CN.UTF-8

[16:21:43 root@sz-kx-centos8 ~]# echo $LANG

[16:21:43 root@sz-kx-centos8 ~]# xxx

-bash: xxx: 未找到命令

 

命令行扩展:

范例:比较 “ ”,‘ ’, `` 三者区别

[16:21:55 root@sz-kx-centos8 ~]# echo "echo $HOSTNAME"
echo sz-kx-centos8.com
[16:26:50 root@sz-kx-centos8 ~]# echo ‘echo $HOSTNAME‘
echo $HOSTNAME
[16:26:58 root@sz-kx-centos8 ~]# echo `echo $HOSTNAME`
sz-kx-centos8.com

结论:

单引号:强引用,六亲不认,变量和命令都不识别,都当成了普通的字符串,“最傻”

双引号:弱引用,不能识别命令,可以识别变量,“半傻不精”

反向单引号:里面的内容必须是能执行的命令并且有输出信息,变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续,“最聪明”

 

范例:$()和` `

[16:32:47 root@sz-kx-centos8 ~]# touch `date +%F`.log

[16:33:22 root@sz-kx-centos8 ~]# ll `echo `date +%F`.log`
-bash: .log: command not found
ls: cannot access ‘date‘: No such file or directory
ls: cannot access ‘+%F‘: No such file or directory

[16:33:29 root@sz-kx-centos8 ~]# ll $(echo $(date +%F).log)
-rw-r--r-- 1 root root 0 Apr 3 16:33 2021-04-03.log

括号扩展:{ }

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

{元素1,元素2,元素3}

{元素1..元素2}

范例:

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

[16:33:33 root@sz-kx-centos8 ~]# echo {000..20..2}
000 002 004 006 008 010 012 014 016 018 020

查看历史命令:history

常用选项:

-c:清空命令历史

-d:删除历史中指定的第offset个命令

n:显示最近的n条历史

-a:追加本次会话新执行的命令历史列表至历史文件

-r:读历史文件附加到历史列表

-w:保存历史列表到指定的历史文件

-n:读历史文件中未读过的行到历史列表

-p:展开历史参数成多行,但不存在历史列表中

-s:展开历史参数成一行,附加在历史列表后

 

命令历史相关环境变量

HISTSIZE:命令历史记录的条数

HISTFILE:指定历史文件,默认为~/.bash_history

HISTFLESIZE:命令历史文件记录历史的条数

HISTTIMEFORMAT="%F %T `whoami` "  显示时间和用户

持久保存变量

[16:55:52 root@sz-kx-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 HISTTIMEFORMAT="%F %T "

 

调用命令行历史

重复前一个命令

使用上方向键,并回车

按!! 并回车执行

!:0  执行前一条命令(去除参数)

!n   执行history命令输出对应序号n的命令

!-n  执行history历史中倒数第n个命令

!$   上一条命令的最后一个参数的内容

!*    上一条命令的所有参数的内容

 

bash 快捷键

Ctrl + l 清屏

Ctrl + o 执行当前命令,并重新显示本命令

Ctrl + s  阻止屏幕输出,锁定

Ctrl + q 允许屏幕输出,解锁

Ctrl + c  终止命令

Ctrl + z 挂起命令

Ctrl + a 光标移到命令行首,相当于 Home

Ctrl + e 光标移到命令行尾,相当于 End

Ctrl + f 光标向右移动一个字符

Ctrl + b 光标向左移动一个字符

Ctrl + xx 光标在命令行首和光标之间移动

Ctrl + u  从光标处删除至命令行首

Ctrl + k  从光标处删除至命令行尾

Ctrl + w  从光标处向左删除至单词首

Ctrl + d  删除光标处的一个字符

Ctrl + h 删除光标前的一个字符

Ctrl + y 将删除的字符粘贴至光标后

Ctrl + t 交换光标处和之前的字符位置

Alt + f 光标向右移动一个单词尾

Alt + b 光标向左移动一个单词首

Alt + r 删除当前整行

Alt + d 从光标处向右删除至单词尾

Alt + Backspace 删除左边单词

Alt + c 从光标处开始向右更改为首字母大写的单词

Alt + u 从光标处开始,将右边一个单词更改为大写

Alt + l  从光标处开始,将右边一个单词更改为小写

Alt + t 交换光标处和之前的单词位置

Alt + # 提示输入指定字符后,重复显示该字符#次

 

获得帮助

whatis

CentOS7 版本以后

mandb

CentOS6 版本之前

makewhatis

范例:

[16:56:06 root@sz-kx-centos8 ~]# whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents

如果没有,执行如下

[17:23:06 root@sz-kx-centos8 ~]# mandb

查看命令的帮助

内部命令帮助

[17:24:21 root@sz-kx-centos8 ~]# type history
history is a shell builtin
[17:24:56 root@sz-kx-centos8 ~]# help history

外部命令帮助

[17:25:07 root@sz-kx-centos8 ~]# type date
date is hashed (/usr/bin/date)
[17:25:36 root@sz-kx-centos8 ~]# date --help

格式说明:

[ ] 表示可选项

CAPS或<> 表示变化的数据

... 表示一个列表

x|y|z 的意思是“x或y 或z”
-abc 的意思是 -a -b -c

{ } 表示分组

 

man命令章节

1,用户命令

2,系统调用

3,c库调用

4,设备文件及特殊文件

5,配置文件格式

6,游戏

7,杂项

8,管理类的命令

9,Linux内核API

 

查看man手册页

man [章节] keyword

常用选项

列出所有帮助

man -a keyword

搜索man 手册

man -k keyword

相当于 whatis

man -f keyword

打印man 帮助文件的路径

man -w [章节] keyword

 

(SRE)新基础知识一

原文:https://www.cnblogs.com/xuanlv-0413/p/14614351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!