天天看点

Linux-基础入门相关(二)

作者:不寐旋律

每日进步一点点,快乐也会增加一点点,话接上回。。。。

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           
Linux-基础入门相关(二)

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目录结构图

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系统中安装的软件大多数是保存在这个目录下)

聪明如你,想必又吸收到了想要的知识。。。

快乐的时光总是短暂,今天的分享就到这里吧!

继续阅读