初始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
[root@xxx home]# cd !$
cd /home

[root@xxx home]# ls /root /home
[root@xxx home]# touch !$/file1
touch /home/file1


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

原文地址:https://www.cnblogs.com/allenzhu128/p/13843093.html