每日进步一点点,快乐也会增加一点点,话接上回。。。。
6.3 命令别名
执行经常使用且较长的命令时,可以将其定义成较短的别名,以方便执行显示当前shell进程所有可用的命令别名
alias
6.3.1 定义别名:(aiias)新名字(name),其相当于执行命令的:值(value)
暂时生效
[root@nginx ~]#alias NAME='VALUE'
例如:
设置一个别名为test,echo输出nihao并重定向到到/opt/目录下的test.txt文件,执行test这个设置好的别名后,再查看test.txt文件可知是否成功
[root@nginx ~]# alias test='echo "nihao" >/opt/test.txt'
[root@nginx ~]# test
[root@nginx ~]# cat /opt/test.txt
nihao
[root@nginx ~]#
查看自己设置的别名,只需在命令行键入alias即可,回车即可看到系统设置好的别名,以及自己设置好的
[root@nginx ~]# alias
alias test='echo "nihao" >/opt/test.txt'
***温馨提示,最好不要随意更改系统设置好的别名,非必要别把自定义的别名名字与系统设置的重名
6.3.2 删除别名:(unalias)
#删除上面设置的别名
[root@nginx ~]#unalias test
#查看是否成功删除
[root@nginx ~]#alias
[root@nginx ~]unalias [-a] name [name ...]
unalias -a #表示取消所有别名,别轻易使用
注意:上面为暂时设置别名,仅对当前shell进程有效,关掉终端窗口或者重启机器后会失效;以下为持久保存别名方法
如果想永久有效,要定义在配置文件中
- 仅对当前用户:~/.bashrc
- 对所有用户有效:/etc/bashrc
找到当前用户的 .bashrc文件,vi编辑插入你自定义的别名即可,或者追加重定向到最后一行保存退出。
[root@nginx ~]# ls -A
.bashrc
[root@nginx ~]# cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
编辑配置给出的新配置不会立即生效,bash进程需要重新读取配置文件
source /path/config_file #source /路径/需要重新加载的文件名
例如:
[root@nginx ~]#source /etc/bashrc
7 常见命令
7.1查看硬件信息
7.1.1查看cpu方法:
- lscpu命令可以查看cpu信息
- cat /proc/cpuinfo也可以查看到
例如:
[root@nginx /]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1 #每个core 有几个线程
Core(s) per socket: 1 #每个槽位有几个core
座: 1
NUMA 节点: 1 #nodes的数量
厂商 ID: GenuineIntel
CPU 系列: 6
步进: 3
CPU MHz: 3092.869
BogoMIPS: 6185.73
超管理器厂商: VMware
虚拟化类型: 完全
L1d 缓存: 32K
L1i 缓存: 32K
L2 缓存: 256K
L3 缓存: 6144K
NUMA 节点0 CPU: 0 #对应的core
....#太长其他就不过展开
[root@nginx /]#cat /proc/cpuinfo
7.1.2 查看内存大小
- 可用free
- 也可用cat /proc/meminfo
例如:
[root@nginx ~]# free
total used free shared buff/cache available
Mem: 2012740 102860 1745952 9636 163928 1730952
Swap: 2097148 0 2097148
[root@nginx ~]# cat /proc/meminfo
#太多不做展开
7.1.3 查看硬盘和分区相关
方式两种如下:
[root@nginx ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 400M 0 part /boot
└─sda2 8:2 0 79.6G 0 part
├─centos-root 253:0 0 77.6G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
[root@nginx ~]# cat /proc/partitions
major minor #blocks name
8 0 83886080 sda
8 1 409600 sda1
8 2 83475456 sda2
11 0 1048575 sr0
253 0 81375232 dm-0
253 1 2097152 dm-1
[root@nginx ~]#
7.2 查看系统版本信息
7.2.1查看内核版本
这uname -r命令在centos6至8都是同样的查看方法
[root@nginx ~]# uname -r
3.10.0-862.el7.x86_64
解释:(3)主版本号.(10)次版本号.(0)末版本号-(862)更新次数.(el7)enterprise linux 7平台.(x86_64)架构
7.2.2 查看操作系统发行版本
方式两种如下:
[root@nginx ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@nginx ~]#
[root@nginx ~]# cat /etc/os-release
#不做展开
8 日期和时间
Linux的两种时钟
- 系统时钟:由Linux内核通过CPU的工作频率进行的
- 硬件时钟:主板提供
8.1 对应命令
date :显示和设置系统时间
例如:
[root@nginx ~]# date
2023年 06月 21日 星期三 13:48:24 CST
[root@nginx ~]# date -d @`date +%s`
2023年 06月 21日 星期三 13:49:01 CST
[root@nginx ~]# date -s "2023/06/05 11:00" 修改 时间 日期
8.1.1 clock,hwclock: 显示硬件时钟
- -s, --hctosys 以硬件时钟为准,校正系统时钟
- -w, --systohc 以系统时钟为准,校正硬件时钟
8.2 时区相关
[root@nginx ~]# timedatectl list-timezones #显示时区列表
root@nginx ~]# timedatectl set-timezone Asia/Shanghai #设置时区为亚洲上海
root@nginx ~]#[root@nginx ~]# timedatectl status #查看时间、时区状态
Local time: 三 2023-06-21 14:05:09 CST
Universal time: 三 2023-06-21 06:05:09 UTC
RTC time: 三 2023-06-21 06:05:09
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
[root@nginx ~]# ll /etc/localtime #查看归属时区
lrwxrwxrwx. 1 root root 35 8月 27 2021 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
8.3 日历显示
cal + 月份 + 年份
[root@nginx ~]# cal 6 2023
六月 2023
日 一 二 三 四 五 六
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
[root@nginx ~]#
9 关机与重启
关机:
- halt
- poweroff
重启:
reboot
- -f: 强制,不调用shutdown
- -p: 切断电源
- 关机或重启:shutdown
shutdown [OPTION]... [TIME] [MESSAGE]
-r: reboot #重新启动
-h: halt #使中断
-c:cancel #取消,终止
TIME:无指定,默认相当于+1(CentOS7)
now: 立刻,相当于+0
+#: 相对时间表示法,几分钟之后;例如 +3
hh:mm: 绝对时间表示,指明具体时间
例如:
关机命令(关机操作,生产环境不能随便使用)
[root@nginx ~]# init 0 #先将服务都关闭掉,再执行halt -pf拔电源
[root@nginx ~]# shutdown -h now #立刻关机,先给用户发送消息,然后关闭服务,拔掉电源
[root@nginx ~]# shutdown -h 10 #十分钟之后关机
[root@nginx ~]# shutdown -c #cancel取消正在运行的关机命令
[root@nginx ~]#poweroff # 直接关闭电源
[root@nginx ~]# halt
重启命令
[root@nginx ~]# init 6
[root@nginx ~]# reboot
[root@nginx ~]# shutdown -r now #立刻重启
延迟重启:shutdown -r 10 #十分钟之后重启
10 用户登录信息查看命令
- whoami: 显示当前登录有效用户
- who: 系统当前所有的登录会话
- w: 系统当前所有的登录会话及所做的操作
[root@nginx ~]# whoami
root
[root@nginx ~]# who
root pts/0 2023-06-21 11:38 (192.168.223.1)
[root@nginx ~]# w
16:11:07 up 4:34, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.223.1 11:38 3.00s 0.10s 0.01s w
11 信息输出
11.1 echo基本用法
echo 命令可以将后面跟的字符进行输出
作用:显示字符,echo会将输入的字符串送往标准输出;输出的字符串间以空白字符隔开, 并在最后加上换行号
echo 也常用于打印空行或换行
语法:
echo [-neE][字符串]
参数:
- -E (默认)不支持 \ 解释功能
- -n 不自动换行
- -e 启用 \ 字符的解释功能
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
- \a 发出警告声
- \b 退格键
- \c 最后不加上换行符号
- \e escape,相当于\033
- \n 换行且光标移至行首
- \r 回车,即光标移至行首,但不换行
- \t 插入tab
- \\ 插入\字符
- \0nnn 插入nnn(八进制)所代表的ASCII字符
- \xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
例如:
[root@nginx ~]# echo -e '\033[43;31;1;5mnihao\e[0m'
nihao
[root@nginx ~]# echo -e '\x58\x75'
Xu
[root@nginx ~]#
[root@nginx ~]#echo \
[root@nginx ~]#echo \\
\
[root@nginx ~]#echo \\\
>
[root@nginx ~]#echo \\\\
\\
[root@nginx ~]#echo \$PATH
$PATH
[root@nginx ~]# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
11.2 echo 高级用法
在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码具有颜色的字符,其格式如下:
"\033[字符背景颜色;字体颜色m字符串\033[0m"
- \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: 白色
加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:
\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[?25l 隐藏光标
\033[?25h 显示光标
\033[2J\033[0;0H 清屏且将光标置顶
11.3 ASCII码
计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定,即ASCII(American Standard Code for InformationInterchange) 码.
ASCII 码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为 0
安装
[root@nginx ~]#yum -y install man-pages
查看ASCII表
[root@nginx ~]#man ascii
12 selinux设置
12.1临时修改,立即生效
临时修改,立即生效
[root@nginx ~]# setenforce 0
-
setenforce [ Enforcing | Permissive | 1 | 0 ]
1 Enforcing 强制模式 启用selinux
0 Permissive 宽容模式
12.1.1永久修改,重启生效
[root@nginx ~]# vi /etc/selinux/config #编辑config文件把SELINUX=enforcing改为下面所示
SELINUX=disabled #disabled :表示不加载selinux的策略
12.1.2查看selinux状态的方法
[root@nginx ~]# getenforce
Enforcing
[root@nginx ~]#
12.2 firewalld防火墙关闭
12.2.1临时关闭,立即生效
[root@nginx ~]#systemctl stop firewalld
12.2.2永久关闭,重启生效
[root@nginx ~]#systemctl disable firewalld
13 linux目录结构图
常见目录的用途
-
/bin(binary): 存放的是系统的命令(普通用户和超级用户都可以执行该目录下的命令)
/sbin(super binary):存放的是管理命令(保存和系统环境设置相关的命令,只有超级用户可以使用这些命令来对系统环境进行设置,但是有些命令是可以允许普通用户进行查看的)
/boot:存放的是系统的启动文件及内核
/dev: 设备文件目录 device
/etc:系统主配置文件主目录
/home:普通用户的家目录
/root:超级管理员的家目录
/lib:系统库文件主目录
/media:挂载点目录,移动设备,比如软盘、光盘。
/mnt:这也是个挂载目录,早期的Linux是只有这一个挂载目录的,并没有进行细分。现在这个目录主要用来挂载额外的设备,比如U盘、移动硬盘以及其它操作系统分区等。
/opt:第三方安装的软件保存位置,这个目录就是用来放置和安装其它软件的,我们平时安装的源码包软件都可以存放到这个目录。
/proc:伪文件系统,系统进程相关信息 cpu信息 /proc/cpuinfo 内存的信息 /proc/meminfo
/sys:伪文件系统,跟硬件设备相关的属性映射文件(虚拟文件系统,类似于/proc,都是保存在内存当中,主要是保存一些和内核相关的信息)
/srv:服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据。
/run : 与程序运行相关的信息,如进程号,套接字文件等
/tmp:临时文件目录, /var/tmp
/var(variable):变化的数据文件目录,经常用于部署项目程序(php)文件 /var/spool/mail 用户的邮件 /var/ftp/pub ftp发布的站点(动态数据保存位置,主要保存缓存、日志以及软件运行所产生的文件)
/usr(unix system resource):用户安装程序目录,包含二进制文件、库文件、文档和源码安装的程序等 文档 /usr/share/doc 源码安装 /usr/local 安装软件产生指令 /usr/bin /usr/sbin (系统软件资源目录,需要注意的是usr并不是user的缩写,而是指“Unix Software Resource”,也就是指系统软件资源,Linux系统中安装的软件大多数是保存在这个目录下)
聪明如你,想必又吸收到了想要的知识。。。
快乐的时光总是短暂,今天的分享就到这里吧!