初始shell之系统命令基础
一. shell介绍
1、什么是Linux系统命令
shell解释器对系统接口的封装结果
系统命令/shell命令-》shell解释器-》系统接口-》内核-》硬件
应用程序-》系统命令/shell命令-》shell解释器-》系统接口-》内核-》硬件
应用程序----》系统接口-》内核-》硬件
2、为何要用系统命令
为了使用计算机
3、什么是shell
第一层意思:
shell代表的是解释器,是对Linux系统接口的封装,即在系统接口外又加了一层壳
shell只是一种称呼,而bash解释器才是具体的一种shell
第二层意思:
shell这门编程语言(一堆命令及用法)
用shell语言写出的程序通常称之为脚本程序
4、posix
posix全称可移植的操作系统接口,是操作系统为应用程序提供的接口标准,posix是一种规范,linux系统支持posix.
POSIX标准由IEEE(电气和电子工程师协会)发布,定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX系统上运行软件而定义的一系列API标准总称.
二. shell交互环境
# ->超级管理员提示符
$ ->普通用户提示符
~ ->当前用户的家目录
创建普通用户
useradd 用户名
交互式设置密码
passwd 用户名
非交互式设置密码
echo "密码" | passwd --stdin 用户名
三. shell命令语法
三部分组成
1.命令:就是一个单词,对应着一个功能/程序,运行一条命令就启动了一个进程(必选)
2.选项:对命令的描述,控制命令的具体运行(可选)
3.具体操作的对象(可选)
例如:
ls
ls -l
ls -l /boot
四. bash解释器特性
1.命令和文件自动补全 注意:Tab只能补全命令和文件
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33
2. 快捷键
Ctrl + c 终止前台运行的程序
Ctrl + d 退出等于exit
Ctrl + l 清屏
Ctrl + a 光标移动到命令行的最前端
Ctrl + e 光标移动到命令行的最后端
Ctrl + r 搜索历史命令, 利用关键词
ESC + . 引用上一个命令的最后一个参数,等价于!$
3. 历史命令
history 查看历史命令
history -c 清空历史命令
历史命令保存文件: cat ~/.bash_history
历史命令默认保存1000条, 可以修改/etc/profile中的HISTSIZE=2000
查找历史命令并运行:
(1)光标上下键
(2)Ctrl+r 搜索历史命令
(3)!200 执行历史命令中第200条命令
(4)!字符串 搜索历史命令中最近以某个字符开头的命令.例如:!ser
(5)!$ 引用上一个命令的最后一个参数
[root@xxx home]# ls /root /home
4. 别名
alias 查看系统当前的别名
五. 命令查找优先级:
bash shell 查找命令顺序:
以路径(绝对路径,相对路径)开始的命令==>alias==>Compound Commands(复合命令)==>function(函数)==>build_in(可以用命令type -a 查看)==>hash==>$PATH(环境变量,查看环境变量echo $PATH)
PS: 查看命令的位置 which 命令
六. 查看帮助信息
1. man 手册
例如: man ls
2. --help
例如: ls --help
ls 常见选项
-a all, 查看目录下的所有文件,包括隐藏文件
-l 长列表显示
-h human 以人性化方式显示出来
-d 只列出目录名, 不列出其他内容
-t 按修改时间排序
-r 逆序排列
-i 显示文件的inode(索引号)
3. 官方手册
4. 百度或者谷歌查询
七. 常用命令
查看主机名
hostname
cat /etc/hostname
设置主机名
hostnamectl set-hostname 主机名 然后重启系统reboot
vim /etc/hostname 修改完成后保存退出,重启reboot
设置主机开机级别
sytemctl set-default multi-user.target 设置开机运行级别3(有网络的多用户)
reboot重启
查看操作系统版本
cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
查看系统内核版本
uname -a
Linux allenzhu 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 U
uname -r
3.10.0-693.el7.x86_64
显示当前有哪些用户登录到系统
who
root tty1 2020-10-21 10:04
root pts/0 2020-10-21 09:05 (10.0.0.1)
显示当前登录的用户名
whoami
[root@allenzhu ~]# whoami
root
查看SELinux当前状态:
getenforce
一般会返回三种状态:
1,Enforcing (记录警告且阻止可疑行为)
2,Permissive (代表仅记录安全警告但不阻止可疑行为)
3,Disabled (禁用状态)
临时关闭,重启机器后恢复原状态:
setenforce 0 #设置SELinux 成为permissive模式
setenforce 1 #设置SELinux 成为enforcing模式
永久改变 SELinux 状态:
vi /etc/sysconfig/selinux
将 SELINUX=enforcing改为SELINUX=disabled
:wq 保存退出
查看时间
date
设置时间
date -s "2020-10-20 09:50:23"
将系统时间写入硬件时钟
hwclock -w
将硬件时间写入系统
hwclock -s
要使系统时间准确,最好是使用ntp方式,使用ntpdate命令从网络同步时间,在同步到硬件时钟
例如:
ntpdate ntp1.aliyun.com
date
hwclock -w
重启
shutdown -r 10 10分钟后重启
shutdown -r 0 立即重启
shutdown -r now 立即重启
init 6 立即重启
reboot 立即重启
关机
shutdown -h 10 10分钟后关机
shutdown -h 0 立刻关机
shutdown -h now 立刻关机
halt 立刻关机
poweroff 立刻关机
取消正在进行的关机或者重启
shutdown -c
注销登录的账号
exit
logout
ctrl + d