认识shell,Shell俗称壳,它提供了用户与内核进行交互操作的一种接口

本文深入讲解Shell的基本概念,包括内部与外部命令的区别,如何使用type命令识别命令类型,以及Shell编程的基础知识。同时,介绍了BashShell的特点,展示了如何通过Shell进行文件、用户、权限、磁盘和软件管理,并提供了ls、cd、history等常用命令的详细用法。

认识SHELL

Shell俗称壳,它提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行
Shell实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

在这里插入图片描述
内部命令:在系统启动时就调入内存,是常驻内存的,所以执行效率高
外部命令:是系统软件的功能,用户需要时才从硬盘中读入内存

如何区内外部命令?
使用type命令 ,语法 : type 要检测的命令

[root@localhost ~]# type cat

cat 是 /usr/bin/cat
[root@localhost ~]# type pwd
pwd 是 shell 内嵌
[root@localhost ~]#
总结: 通过SHELL,我们可以对LINUX实现哪些操作或管理:
例如:
对文件的管理(创建、删除、复制、修改)
1、对用户的管理(添加、删除)
2、相关权限的管理(授权用户对相关文件的管理,比如增删改查)
3、对磁盘的管理(分区、raid、lvm)
4、对软件的管理
5、对网络的管理
[root@localhost ~]# #表示是root用户登录,管理员账号登陆
[root@localhost ~]# su alon #切换到alon普通用户 ;;对比两个切换用户的方法,和变化
[alon@localhost root]$ #表示普通用户登录
[root@localhost ~]# su - alon #切换到alon普通用户
[alon@localhost ~]$
[root @ localhost ~ ]#
用户名—@---主机名—当前所在目录(~表示当前用户的家目录)—(# root/$普通用户)
认识Bash Shell
查看所有shell类型
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@localhost ~]#
具体你使用的是哪一个,取决于你的用户配置,也就是说你可以看一下/etc/passwd文件的每一行的最后一个字段
[root@localhost ~]# head -1 /etc/passwd
root:X:0:0:root:/root:/bin/bash

基本命令操作

在LINUX中使用一个命令,命令格式如下:
命令 【选项】 【参数】
命令:具体执行的命令,比如pwd,head
选项:会影响到命令的一些形为操作,通常以- --实现
参数:命令作用的对象
3.2.1 基本命令之–ls
作用:查看当前目录下有哪些文件(list)
语法:ls 目录/文件 ,如果什么也不加,那么查看的是当前目录下的内容
常用选项:
命令后面不加任何选项
[root@localhost ~]# ls
-l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等,长列表
[root@localhost ~]# ls -l
总用量 12
-rw-------. 1 root root 1213 9月 17 23:36 anaconda-ks.cfg
-rw-r–r--. 1 root root 321 9月 18 21:23 A.py
-rw-r–r--. 1 root root 1 9月 20 20:31 jiujiu.sh

前面一横-:表示文件类型
rw-r–r--. : 文件权限
1 :链接个数
root : 文件所有者
root : 文件组名
1 :文件大小
9月 20 20:31 :文件上次修改的日期时间
jiujiu.sh : 文件名

第一个字符文件类型中:
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
-: 表示普通文件
为什么有的目录文件有不同的颜色呢?
linux系统中不同的颜色代表了不同的文件类型
在这里插入图片描述
-a 列出目录下所有的文件,包括以“.“开头的隐藏文件(linux下隐藏文件是以 . 开头的,如果存在2个点代表存在着父目录,1个点表示当前目录)

[root@localhost ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc jiujiu.sh .viminfo
… A.py .bash_profile .cshrc .tcshrc
-d 查看目录(不查看里面的内容)
[root@localhost ~]# ls -ld /root/
dr-xr-x—. 2 root root 159 9月 20 20:31 /root/

-S 以文件的大小进行排序
[root@localhost ~]# ls -lS
总用量 12
-rw-------. 1 root root 1213 9月 17 23:36 anaconda-ks.cfg
-rw-r–r--. 1 root root 321 9月 18 21:23 A.py
-rw-r–r--. 1 root root 1 9月 20 20:31 jiujiu.sh

ls -l 和ll 这两个命令是等价的
[root@localhost ~]# ls -l
总用量 12
-rw-------. 1 root root 1213 9月 17 23:36 anaconda-ks.cfg
-rw-r–r--. 1 root root 321 9月 18 21:23 A.py
-rw-r–r--. 1 root root 1 9月 20 20:31 jiujiu.sh
[root@localhost ~]# ll
总用量 12
-rw-------. 1 root root 1213 9月 17 23:36 anaconda-ks.cfg
-rw-r–r--. 1 root root 321 9月 18 21:23 A.py
-rw-r–r--. 1 root root 1 9月 20 20:31 jiujiu.sh
[root@localhost ~]# type ll
ll 是 `ls -l --color=auto’ 的别名

别名的使用
定义一个别名:
[root@localhost ~]# alias vimens33='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@localhost ~]# vimens33

TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“dhcp”
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“afda14e7-226f-4767-9593-243f805e279e”
DEVICE=“ens33”
ONBOOT=“yes”

删除别名:
[root@localhost ~]# unalias vimens33
设置别名永久生效:
当前用户
[root@localhost ~]# vim /root/.bashrc #插入一行内容
alias vimenss33=“vim /etc/sysconfig/network-scripts/ifcfg-ens33”
[root@localhost ~]# source /root/.bashrc

全局使用
[root@localhost ~]# vim /root/bashrc #在文件最后插入
alias vimenss33=“vim /etc/sysconfig/network-scripts/ifcfg-ens33”
[root@localhost ~]# source /root/bashrc

切换到一个普通用户测试,一下这个别名

基本命令之–cd

作用:切换目录(change directory)
语法:cd 目录
说明:直接输入cd表示回到当前用户的宿主(家)目录
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cd
[root@localhost ~]# cd ~

cd … 表示返回到上级目录位置,也就是父目录
cd . 表示进入到当前用户所在的目录
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd …
[root@localhost /]# pwd
/
[root@localhost /]# cd .
cd - #表示返回切换前的目录

历史命令之history

命令:history
4个快速查找Linux历史命令的技巧:
方法1: 光标上下键
方法2: ctrl+r -》输入某条命令的关键字-》找出来对应的命令,按右光标键
方法3: !数字 //执行历史命令中第N条命令
方法4:!字符串 //搜索历史命令中最近一个以xxxx字符开头的命令,例如!vim

3.2.5 Linux下快捷键
都是用Ctrl+下面的单词, ^表示Ctrl
^C
终止前台运行的程序 , 如:ping g.cn 后,想停止按下Ctrl+C
^D
退出 等价exit
^L
清屏与clear功能一样
^R
搜索历史命令,可以利用好关键词
!$ 引用上一个命令的最后一个参数,等价于
[root@localhost /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost /]# vim !$

系统时间管理

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟;系统时钟则是指kernel中 的时钟;所有Linux相关指令与函数都是读取系统时钟的设定
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作
两种时间
查看硬件时间:
[root@localhost /]# hwclock
2019年09月21日 星期六 06时26分58秒 -0.853477 秒
[root@localhost /]# date
2019年 09月 21日 星期六 06:43:39 CST
时区:
UTC (Universal Time Coordinated):世界标准时间
GMT (Greenwich Mean Time):格林尼治时间
CST (China standard Time):中国标准时间
如何修改时间
date命令相关参数:
date --help
-s, --set=STRING 把时间设为字符串所描述的时间
如:[root@localhost /]# date -s "2019-09-22 11:18"
2019年 09月 22日 星期日 11:18:00 CST
%F 完整日期格式,等价于 %Y-%m-%d
[root@localhost /]# date "+%F"
2019-09-22
%y 年份最后两位数位 (00-99)
%Y 年份
%m month (01…12)
%d 按月计的日期(例如:01)
%M minute (00…59)
%H 小时(00-23)
%S 秒(00-60)
[root@localhost /]# date "+%Y%m%d"
20190922
[root@localhost /]# date "+%Y-%m-%d %H:%M:%S" #在年月日之前可以添加自己想要的符号
2019-09-22 11:20:26
[root@localhost /]# date "+%Y/%m/%d %H:%M:%S"
2019/09/22 11:21:05
[root@localhost /]# date “+%Y%m%d %H:%M:%S”
20190922 11:21:34
-d, --date=STRING #显示由字符串描述的时间,而不是“当前时间”
[root@localhost /]# date -d “+1 months” +%F
2019-10-22

使用time命令测试一个命令运行的时间

使用方法:time 在后面直接跟上命令和参数
[root@localhost /]# time ls -l /etc/

real 0m0.164s
user 0m0.000s
sys 0m0.051s
说明:
real:实际使用时间
user:用户状态使用的时间
sys:内核状态使用的时间

帮助命令使用

遇到命令不知道添加哪个参数,可以使用命令帮助查看相关介绍,常用的查看帮助信息命令有如下几个
man 命令 :查看手册页或命令描述
[root@localhost /]# man find
man命令查看帮助时,支持它支持上翻下翻,搜索(直接输入斜线),退出用q
使用-h或–help查看命令选项
[root@localhost /]# find --help

开关机命令及7个启动级别

常用的几个关机,重启命令
shutdown
init
reboot
poweroff

关机命令之–shutdown
作用:关机,重启,定时关机
语法:shutdown [选项]
参数:
-r => 重新启动计算机
-h => 关机
-h 时间 =>定时关机
例如:
[root@localhost /]# shutdown -h +10 #10分钟之后关机
[root@localhost /]# shutdown -h 23:30 #指定具体的时间点进行关机
[root@localhost /]# shutdown -h now #立即关机
[root@localhost /]# shutdown -r 22:22 #22:22 以后重启

7个启动级别

作用:切换系统运行级别
语法:init 0-6
Linux 7个启动级别:
0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
2 多用户模式,没有NFS和网络支持
3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5 图形化模式,登陆后进入图形GUI模式,X Window系
6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启

[root@localhost /]# init 0 #关机
[root@localhost /]# init 3 #进入3级别字符界面
[root@localhost /]# init 5 #进入5级别图形界面

设置默认的运行界别
centos7不再使用/etc/inittab文件进行默认的启动级别配置,而使用比sysvinit的运行级更为自由的target替代。
第3运行级用multi-user.target替代。
第5运行级用graphical.target替代。
设置默认第三启动级别
[root@localhost /]# systemctl set-default multi-user.target
设置默认第五启动级别
[root@localhost /]#systemctl set-default graphical.target
[root@localhost /]#runlevel
3 5 #表示从3级别切换到了5级别
查看当前默认的启动级别
[root@localhost ~]# systemctl get-default
graphical.target

实战:设置服务器来电后自动开机

进入bios,一般是在开机后出现主板画面是按Delete这个键,部分品牌机可能按F2,F1
在这里插入图片描述
选择Integrated Peripharals(外围设备设置)中的SuperIO Device
Integrated [ˈɪntɪgreɪtɪd] 集成 ; Peripharals [pəˈrɪfərəl] 外围
在这里插入图片描述
将其中的Restore On AC Power Loss选项修改:Power On
在这里插入图片描述

在这里插入图片描述
(若要加电不开机选择Power Off,若要加电之前断电状态选择Last State)

设置服务器定时开机

Power Management Setup,就进入电源管理设置了
在这里插入图片描述
通过回车进入这个设置后,选择Wake Up Event Setup,回车选择Press Enter
在这里插入图片描述
找到RTC Alarm([əˈlɑ:m] 报警),将Disabied 更改为Enabled,然后继续回车确定。然后再继续设置时间点和日期
在这里插入图片描述
在这里插入图片描述
按F10保存,退出。
完成。。。。。。。。。。。。。。。。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rio520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值