Linux知识心得08 操作系统+shell命令
今日内容
1、操作系统相关
"""
1.单用户模式破解root密码
1)开机时进入如下界面,(按下方向键盘,阻止系统自动继续)(grub选择操作系统内核界面)
2)在需要修改的选项上按e键
3)按方向键下,定位到最后,找到“ro”一行,ro的意思是read only,
将“ro”替换成 rw init=/sysroot/bin/sh
4)按Ctrl-x 进入单用户模式
5)执行chroot /sysroot。其中chroot命令用来切换系统,/sysroot/目录就是原始系统
6)passwd是修改root密码的命令,touch /.autorelabel 执行这行命令作用是让SELinux生效 (或者干脆关闭SELinux) 如果不行,密码不会生效。按Ctrl+D,执行reboot重启生效。
2.grub加密
1) 执行 grub2-setpassword 命令
2) reboot 密码生成 若再上述操作时按e时会提示需要输入账号密码
3.光盘修复模式/救援模式
1)进入bios、从光盘启动
2)点击Troubleshooting
3)进入到Troubleshooting界面
4)三:进入到Rescue选项 按 ENTER键 选1
5)sh切换bash模式 # chroot /mnt/sysimage/
6)vi /etc/sysconfig/selinux # 第六行
SELINUX=disabled
7)reboot 重启
4.bios加密
1)进入Bios界面
2) 选择Security一栏 -Set Supervisor Password 设置密码
3) f10保存密码后进入操作系统,下次进入bios会提示输入密码
"""
2、shell基础命令

"""
大前提:shell语法层级结构
shell命令
shell解释器
操作系统
计算机硬件
1.shell介绍:
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
我们可以操作SHELL实现对Linux系统的管理例如:
1. 文件管理
2. 用户与权限管理
3. 进程管理
4. 磁盘管理
5. 网络管理
6. 软件管理
POSIX(Portable Operating System Interface,可移植操作系统接口),是操作系统为应用程序提供的接口标准。
简单的说, POSIX(主要是解决了应用程序在各个操作系统上兼容性这样一个普遍存在的问题。只要一个应用程序的开发是为了在一个实现了POSIX模式的操作系统上运行,那么这个应用程序就可以在所用实现了POSIX模式的操作系统上运行。
POSIX现在已经发展成为一个非常庞大的标准族,并不局限于Unix, 一些其他的操作系统,如Microsoft windows NT, Linux等都支持或者部分支持POSIX标准。
2.shell交互式环境
[root@xxx ~]# #号代表超级管理员用户对应的命令行
[root@xxx ~]$ $号代表普通用户对应的命令行
root ==>当前登录的用户 @ ==>分隔符 xxx ==>主机名 ~ ==>当前所在的路径
3.shell命令语法
1)命令:要执行的操作(必选)
2)选项:如何具体执行操作,通常以 -, --, +开头(可选)
3)参数:具体操作的对象(可选)
ps:unix认为命令运行完毕后没有提示便是最好的提示,即结果正确,linux继承unix的优良传统
"""
# ========================================================================= #
"""
基本命令:
案例1:创建用户
创建普通系统用户
useradd simon
交互式设置密码
passwod simon
非交互式设置密码
echo "123" | passwd --stdin simon
案例2:查看
[root@ljl ~]# ls
anaconda-ks.cfg
[root@ljl ~]# ls /root
anaconda-ks.cfg
[root@ljl ~]# ls ~
anaconda-ks.cfg
案例3:时间
[root@ljl ~]# date
Tue Jun 22 17:02:50 CST 2021
[root@ljl ~]# date "+%Y-%m-%d %H:%M:%S"
2021-06-22 17:02:55
[root@ljl ~]# hwclock
Tue 22 Jun 2021 05:03:07 PM CST -0.978767 seconds
hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟(query and set the hardware clock (RTC))。RTC=Real Time Clock,也就是硬件时钟。在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。
所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。根据不同参数设置,hwclock命令既可以将硬件时钟同步到系统时钟,也可以将系统时钟同步到硬件时钟。
// hwclock命令的参数
-r, --show 读取并打印硬件时钟
-s, --hctosys 将硬件时钟同步到系统时钟
-w, --systohc 将系统时钟同步到硬件时钟
#系统中默认没有ntpdate命令,需要自行下载安装
[root@localhostt ~]# yum install ntpdate -y
# 与网络时间服务器同步时间
[root@localhost ~]# ntpdate 0.cn.pool.ntp.org
12 Aug 21:04:14 ntpdate[10099]: step time server 203.107.6.88 offset -7826995.450514 sec
[root@localhost ~]# date
[root@localhost ~]# hwclock -w
# 注意:
1、必须有 root 权限才能在主机上运行这个命令。
2、如果NTP服务器守护程序在当前主机上运行,命令将拒绝ntpdate设置日期
3、让系统自动同步时间,只需添加一条定时任务即可,后期会介绍到
# ps: 阿里云提供了7个NTP时间服务器也就是Internet时间同步服务器地址
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
要开始自动时间同步到远程NTP服务器,在终端键入以下命令。
# timedatectl set-ntp true
要禁用NTP时间同步,在终端键入以下命令。
# timedatectl set-ntp false
案例4:版本信息
[root@ljl ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@ljl ~]# uname -r
3.10.0-957.el7.x86_64
[root@ljl ~]# uname -m
x86_64
[root@ljl ~]# uname -a
Linux ljl 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@ljl ~]#
案例5:重启
shutdown -r 10 // 10分钟后重启
shutdown -r 0 // 立即重启
shutdown -r now // 立即重启
shutdown -r 11:30 // 定点重启
init 6 // 立即重启
reboot // 立即重启
案例6:
shutdown -h 10 // 10分钟后关机
shutdown -h 0 // 立刻关机
shutdown -h now // 立刻关机
shutdown -h 11:30 // 定点关机
halt // 立即停止系统,需要人工关闭电源
poweroff // 立即停止系统,并且关闭电源
案例7:取消正在进行的关机或重启
showdown -c
案例8:注销登录的账号
exit
logout
ctrl+d
案例9:设置时区
查看
timedatectl status
列出可用时区
timedatectl list-timezones
设置
# timedatectl set-timezone "Asia/Shanghai"
# timedatectl set-timezone UTC
"""
3. bash解释器特性
"""
1.命令和文件自动补全<tab> 注意:Tab只能补全命令和文件
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33
2.快捷键
^c 终止前台运行的程序
^d 退出 等价exit
^l 清屏
^a 光标移到命令行的最前端
^e 光标移到命令行的后端
^r 搜索历史命令,利用关键词
Alt+. 引用上一个命令的最后一个参数,等价于!$
3.历史命令
1)查看历史命令[root@xxx ~]# history
2)清空历史命令[root@xxx ~]# history -c
3)历史命令保存文件:cat ~/.bash_history
4)历史命令默认保存1000条,可以修改/etc/profile中的HISTSIZE=2000
5)查找历史命令并运行
(1)光标上下键
(2)^r //搜索历史命令(输入一段某条命令的关键字:必须是连续的)
(3)!220 //执行历史命令中第220条命令
(4)!字符串 //搜索历史命令中最近一个以xxxx字符开头的命令,例如!ser
(5)!$ //引用上一个命令的最后一个参数
[root@xxx home]# ls /root /home
[root@xxx home]# cd !$
cd /home
[root@xxx home]# ls /root /home
[root@xxx home]# touch !$/file1
touch /home/file1
4.别名
别名
# alias //查看系统当前的别名
ll='ls -l --color=tty'
# alias egon='ls /etc/sysconfig/network-scripts/' //建立别名
# unalias egon
[root@xxx ~]# grep root /etc/passwd // 默认有颜色
[root@xxx ~]# alias grep
alias grep='grep --color=auto'
"""
4、文件处理基础
# Windows: 以多根的方式组织文件 C:\ D:\ E:\ Linux: 以单根的方式组织文件 /
# linux系统的目录结构
# FHS(Filesystem Hierarchy Standard)指的是文件系统层次化标准,多数Linux版本采用这种文件组织形式,是以树形的结构来组织文件的。
# 系统目录作用介绍
# 绝对路径与相对路径
# 文件管理:
# 基本命令
# 查看文件内容的命令
# 切换文件夹 cd /etc/sysconfig/network-scripts/
# 查看当前所在的文件夹 pwd

浙公网安备 33010602011771号