基本概念
Shell与Bash:
用户>服务程序>系统调用接口>内核>硬件
- 硬件设备由系统内核直接管理,但由于内核的复杂性太高,在访问时存在较大的风险,因此用户不能直接访问内核。
- Shell是终端程序的统称,充当了人与内核(硬件)的“翻译官”,会根据用户的命令去调用相应的服务程序去完成某项工作。
- 目前主流Linux系统默认使用的终端程序是Bash(Bourne-Again SHell)解释器。
Bash解释器的优势:
- 通过上下方向键来调取执行过的Linux命令;
- 命令或参数仅需输入前几位就可以用Tab键补全;
- 具有强大的批处理脚本;
- 具有使用的环境变量功能。
常见的Linux命令格式:
命令名称 [命令参数] 命令对象
命令名称:想要做的事情,如创建用户、查看文件、重启系统等;
命令参数:用于对命令进行调整,如创建一个编码为888的用户、仅查看文件的前20行等;
命令对象:一般指要处理的文件、目录、用户等资源名称,也就是命令执行的承受方,例如查看一个叫工资表的文件、重启一个IP为192.168.1.1的系统。
注意事项:
命令参数分为长格式(man --help)和短格式(man -h)
命令名称、命令参数和命令对象之间要用空格进行分隔,且字母严格区分大小写
查看命令的帮助信息:
这里以【在命令行终端中输入man man命令来查看man命令自身的帮助信息】为例:
结构名称 | 代表意义 |
---|---|
NAME | 命令的名称 |
SYNOPSIS | 参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
DEFAULTS | 默认功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
常用的四个快捷键:
Tab键:实现对命令名称、命令参数、命令对象名称的自动补全,有效避免了手动输入容易输错的问题
Ctrl+C键:终止当前进程的运行
Ctrl+D键:表示键盘输入结束
Ctrl+I键:清空当前终端中已有的内容(相当于清屏操作)
常用系统工作命令
1.echo命令
echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为:
echo [字符串] [$变量]
例:分别输出字符串和变量的值
2.date命令
date命令用于显示或设置系统的时间与日期,语法格式为:
date [+指定的格式]
参数 | 作用 |
---|---|
%S | 秒(00~59) |
%M | 分钟(00~59) |
%H | 小时(00~23) |
%I | 小时(00~12) |
%P | 显示出AM或PM |
%m | 月份(1~12) |
%a | 缩写的星期名称(例如,Sun) |
%A |
完整的星期名称(例如,Sunday) |
%b | 缩写的月份名称(例如,Jan) |
%B | 完整的月份名称(例如,January) |
%q | 季度(1~4) |
%y | 简写年份(例如,22) |
%Y | 完整年份(例如,2022) |
%d | 本月中的第几天 |
%j | 本年中的第几天 |
%n | 换行符(相当于按下回车键) |
%t | 跳格(相当于按下Tab键) |
例:
按照默认格式打印当前系统时间
按照指定格式打印当前系统时间
修改系统时间为指定时间
查看今天是当年中的第几天(可以用于区分备份时间的早晚)
3.timedatectl命令
timedatectl命令用于设置系统的时间,英文全称为“time date control”,语法格式为:
timedatectl [参数]
参数 | 作用 |
---|---|
status | 显示状态信息 |
list-timezones | 列出已知时区 |
set-time |
设置系统时间 |
set-timezone | 设置生效时区 |
例:
查看系统时间与时区
手动设置时区
手动修改系统日期
手动修改系统时间
4.reboot命令
reboot命令用于重启系统,输入该命令后按回车执行即可(这种操作会涉及硬件资源的管理权限,因此最好以root管理员身份来重启,普通用户在执行该命令时可能会被拒绝),语法格式为:
reboot
5.poweroff命令
poweroff命令用于关闭系统,输入该命令后按回车执行即可(同样最好以root管理员身份来操作),语法格式:
poweroff
6.wget命令
wget命令用于在终端命令行中下载网络文件,英文全称为“web get”,语法格式为:
wget [参数] 网址
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-p | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有资源,包括图片、视频等 |
-r | 递归下载 |
例:下载图灵社区的一张图片
例:递归下载网站内的所有页面数据以及文件
wget -r -p https://www.baidu.com
7.ps命令
ps命令用于查看系统中的进程状态,英文全称为“processes”,语法格式为:
ps [参数]
(通常会将ps命令与管道符技术搭配使用,用来抓取与某个指定服务进程相对应的PID号码)
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
例:输入ps aux命令查看所有进程
标题栏:进程的所有者、进程ID号、运算器占用率、内存占用率、虚拟内存使用量(单位:KB)、占用的固定内存量(单位:KB)、所在终端、进程状态、被启动的时间、实际使用CPU的时间、命令名称与参数
Linux系统中时刻运行着许多进程,需要进行合理的管理,以优化系统的性能。
Linux系统中五种常见的进程状态(STAT):
- R(运行):进程正在运行活在运行队列中等待
- S(中断):进程处于休眠中(当某个条件形成后或者接收到信号时,则脱离该状态)
- D(不可中断):进程不响应系统异步信号(即便kill命令也不能将其中断)
- Z(僵死):进程已经终止,但进程描述符依然存在(直到父进程调用wait4()系统函数后将进程释放)
- T(停止):进程收到停止信号后停止运行
五种进程状态的补充形式:
- <(高优先级)
- N(低优先级)
- L(被锁进内存)
- s(包含子进程&#x