1、设置主机名
#临时生效
hostname NAME
#持久生效,支持Centos7和Ubuntu18.04以上版本
hostnamectl set-hostname NAME
注意:
- 主机名不支持使用下划线,但支持横线,可使用字母,横线或数字组合
- 有些软件对主机名有特殊要求
2、命令提示符prompt
通过修改PS1变量实现个性化的提示符
#Centos默认提示符
[root@centos8~]#
#Ubuntu默认提示符
root@ubuntu1904:~#
#管理员
$普通用户
3、显示提示符格式
[11:50:16 root@Centos8-2 ~]#echo $PS1
\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\$
4、修改提示符
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\]\\$"
- 临时修改使用上述方式
- 永久修改:
ubuntu
nano .bashrc
Centos/Rockey
nano /etc/bashrc /etc/profile /etc/profile.d/env.sh
3、提示符格式说明:
- \e 控制符\033
- \u 当前用户
- \h 主机名简称
- \H 主机名
- \w 当前工作目录
- \W 当前工作目录基名
- \t 24小时时间格式
- \T 12小时时间格式
- ! 命令历史数
- #开机后命令历史数
5、用户登录信息查看命令
#系统当前所有的登录会话
[11:57:10 root@Centos8-2 ~]#who
root tty1 2022-10-28 16:03
root pts/0 2022-10-31 11:49 (192.168.13.1)
#显示当前登录的有效用户
[12:03:37 root@Centos8-2 ~]#whoami
root
#系统当前所有登录会话及所做操作
[17:38:13 root@Centos8-2 ~]#w
17:43:55 up 10:34, 2 users, load average: 0.01, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Fri16 3days 0.01s 0.01s -bash
root pts/0 192.168.13.1 11:49 0.00s 0.08s 0.00s w
6、查询网络信息
ip a
[12:03:42 root@Centos8-2 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:cb:18:a0 brd ff:ff:ff:ff:ff:ff
inet 192.168.13.129/24 brd 192.168.13.255 scope global dynamic noprefixroute ens160
valid_lft 1381sec preferred_lft 1381sec
inet6 fe80::20c:29ff:fecb:18a0/64 scope link noprefixroute
valid_lft forever preferred_lft forever
7、查询时间信息
#系统时间
[12:07:37 root@Centos8-2 ~]#date
Mon Oct 31 12:07:40 CST 2022
[17:25:12 root@Centos8-2 ~]#date +%s
1667208315
[17:27:23 root@Centos8-2 ~]#date -d @1667208315
Mon Oct 31 17:25:15 CST 2022
[17:28:23 root@Centos8-2 ~]#date -d @1667208315 +%F_%T
2022-10-31_17:25:15
[17:28:49 root@Centos8-2 ~]#date -d "2022-10-31" +%s
1667145600
#硬件时间
[17:29:30 root@Centos8-2 ~]#clock
2022-10-31 17:31:07.133623+08:00
[17:31:08 root@Centos8-2 ~]#hwclock
2022-10-31 17:31:17.759338+08:00
[17:31:18 root@Centos8-2 ~]#clock -s
[17:31:44 root@Centos8-2 ~]#date
Mon Oct 31 17:31:46 CST 2022
[17:31:46 root@Centos8-2 ~]#clock -w
[17:32:03 root@Centos8-2 ~]#clock
2022-10-31 17:32:08.851738+08:00
clock,hwclock 显示硬件时钟
-s ,--hctosys 以硬件时钟为准,校正系统时钟
-w ,--systohc 以系统时间为准,校正硬件时钟
[17:32:09 root@Centos8-2 ~]#ll /usr/sbin/clock
lrwxrwxrwx. 1 root root 7 Jul 21 2021 /usr/sbin/clock -> hwclock
8、修改时间
#查看当前时区
[17:35:07 root@Centos8-2 ~]#ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Sep 16 22:15 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
#查看可用时区
[17:36:28 root@Centos8-2 ~]#timedatectl list-timezones
#设置时区
[12:07:40 root@Centos8-2 ~]#timedatectl set-timezone Asia/Shanghai
#查看当前时间信息
[17:36:28 root@Centos8-2 ~]#timedatectl status
Local time: Mon 2022-10-31 17:37:22 CST
Universal time: Mon 2022-10-31 09:37:22 UTC
RTC time: Mon 2022-10-31 09:37:22
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
#显示日历
[17:37:22 root@Centos8-2 ~]#cal -y
19、查看CPU命令
lscpu
cat /proc/cpuinfo
10、查看内存大小
free
cat /proc/meminfo
11、查看硬盘和分区
lsblk
cat /proc/partitions
12、查看系统版本信息
#查看系统架构
arch
#查看内核版本
uname -r
#查看操作系统发行版本
#centos
cat /etc/redhat-release
cat /etc/os-release
#ubutu
cat /etc/os-release
cat /etc/issue
#查看os版本
lsb_release -is
lsb_release -cs
lsb_release -rs
13、会话管理-screen
利用screen可以实现会话管理,如:新建会话,共享会话等
centos7来自有base源,centos8来自于epel源
#Centos7安装screen
[17:50:04 root@Centos8-2 ~]#yum -y install screen
#centos8安装screen
[17:49:16 root@Centos8-2 ~]#dnf -y install epel-release
[17:49:54 root@Centos8-2 ~]#dnf -y install screen
常见用法:
- 创建新的会话
- screen -S 会话名称
- 加入新的会话
- screen -x 会话名称
- 退出并关闭会话
- exit
- 剥离当前screen会话
- ctrl+a/d
- 显示所有已经打开的screen会话
- screen -ls
- 恢复某个screen会话
- screen -r 会话名称
14、会话管理-tmux
Tmux就是会话与窗口的“解绑”工具,将它们彻底分离,功能如下:
- 它允许在单个窗口中,同时访问多个会话,这对于同时运行多个命令行程序很有用
- 它可以让新窗口“接入”已经存在的会话
- 它允许每个会话有多个连接窗口,因此可以多人实时共享会话
- 它还支持窗口任意的垂直和水平拆分
安装
[18:11:16 root@Rocky8 ~]#yum install tmux
启动与退出
[20:13:39 root@Rocky8 ~]#tmux
[exited]
[20:14:23 root@Rocky8 ~]#exit
mux窗口有大量快捷键,需要通过前缀键ctrl+b唤起,快捷键才能生效
新建会话
默认第一个启动的Tmux窗口是0,第二个是1,可以起会话名称
tmux new -s 会话名称
tmux ls #查看当前所有的Tmux会话(ctrl+b,s)
[20:19:17 root@Rocky8 ~]#tmux ls
0: 1 windows (created Wed Nov 2 20:19:11 2022) [271x62] (attached)
分离会话
tmux detach #分离会话,将当前会话与窗口分离
[20:28:27 root@Rocky8 ~]#tmux detach
接入会话
tmux attach命令用于重新接入某个已存在的会话
[17:12:47 root@Rocky8 ~]#tmux attach -t 2
杀死会话
tmux kill-session命令用于杀死某个会话
[17:16:32 root@Rocky8 ~]#tmux kill-session -t 4
[17:16:41 root@Rocky8 ~]#tmux ls
3: 1 windows (created Wed Nov 2 20:28:22 2022) [271x62]
6: 1 windows (created Fri Nov 4 17:16:41 2022) [98x28] (attached)
切换会话
tmux switch命令用于切换会话
tmux switch -t 会话名称
上下分窗口
tmux split-window
左右分窗口
tmux split-window -h
窗格快捷键
Ctrl+b % 划分左右两个窗口
Ctrl+b " 划分上下两个窗口
Ctrl+b 方向键 光标切换到其他窗格
Ctrl+b ; 光标切换到上一个窗格
Ctrl+b o 光标切换到下一个窗格
Ctrl+b { 当前窗格左移
Ctrl+b } 当前窗格右移
Ctrl+b Ctrl+o 当前窗格上移
Ctrl+b Alt+o 当前窗格下移
Ctrl+b x 关闭当前窗格
Ctrl+b !将当前窗格拆分为一个独立窗口
Ctrl+b z 当前窗格全屏显示,再使用一次会变回原来的大小
Ctrl+b Ctrl+方向键 按照方向键调整窗格大小
Ctrl+b q 显示窗格编号
窗口管理
除了将一个窗口划分多个窗口,也允许新建多个窗口
新建窗口
tmux new-window #新建窗口
tmux new-window -n 窗口名称 #新建指定名称的窗口
切换窗口
tmux select-window -t 窗口名称 #切换到指定名称的窗口
tmux select-window -t 窗口编号 #切换到指定编号的窗口
窗口快捷键
Ctrl+b c 创建一个新窗口,状态栏会显示多个窗口的信息
Ctrl+b p 切换到上一个窗口(按照状态栏的顺序)
Ctrl+b n 切换到下一个窗口
Ctrl+b 窗口编号 切换到指定编号的窗口
Ctrl+b w 从列表中选择窗口
Ctrl+b , 窗口重命名
tmux list-keys #列出所有快捷键,及其对应的Tmux命令
tmux list-commands #列出所有Tmux命令及其参数
15、历史命令管理
当执行命令后,系统默认会在内存中记录执行过的命令
当用户退出,会将内存的命令历史存放到对应的历史文件中,默认是~/.bash_history
登录shell时,会读取命令历史文件中记录下的命令加载到缓存中
登录进shell后新执行的命令只会记录再内存的缓存中,用户正常退出时“追加”至命令历史文件中
利用命令历史,可以重复执行命令,提高输入效率
命令 history
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
常用选项
-c:清空命令历史
-d offset:删除历史中指定的第offset个命令
[11:51:00 root@Rocky8 ~]#history -d 230
n:显示最近的n条历史
[11:51:18 root@Rocky8 ~]#history 10
-a:追加本次会话新执行的命令历史列表至历史文件(历史文件:保存在硬盘,历史列表:缓存保存在内存)
-r:读历史文件附加到历史列表
-w:保存历史列表到指定的历史文件
-n:读历史文件中未读过的行到历史列表
-p:展开历史参数成多行,但不存在历史列表中
-s:展开历史参数成一行,附加在历史列表中
命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="5F %T 'whomi'" 显示时间和用户
HISTIGNORE="str1:str2*:..." 忽略str1命令,str2开头的历史
HISTCONTROL:控制命令历史的记录方式
ignoredups 是默认值,可忽略重复的命令,连续且相同为"重复"
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups,ignorespace的组合
erasedups 删除重复命令
持久保存变量
以上变量可以export变量名=“值”形式存放在/etc、profile或~/.bash_profile
调用命令行历史
#重复前一个命令
重复前一个命令使用上方向键,并回车执行
快捷方式:
!! 回车执行 / ! -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
ctrl+r在命令历史中搜索命令
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开头的命令,并获取它的所有参数