尚硅谷Linux学习笔记(二)

SSH

直接使用WindowsCMD

1
2
3
4
# 远程连接
ssh root@CentOS-7-2
# 文件传输
scp localfile.txt root@CentOS-7-2:/root/document/

也可以使用第三方工具:XSHELL与XFTP

系统管理

进程与服务

进程(Process)和服务(Service)是操作系统中的两个概念,它们在计算机系统中扮演着不同的角色。

进程:

  1. 进程是操作系统进行资源分配和调度的一个独立单位。
  2. 它是程序执行的一个实例,每个进程都拥有独立的地址空间、执行堆栈、以及各种用于跟踪执行的辅助数据。
  3. 进程可以被创建、终止、挂起、恢复等,并且进程间可以通过进程间通信机制(如管道、信号、套接字等)进行交互。
  4. 进程通常在用户空间中运行,并且是临时的,它们的生命周期通常与它们所运行的程序的执行周期相同。

服务:

  1. 服务通常是指系统服务,它是一种长期运行的进程,通常在系统启动时启动,并一直运行到系统关闭。
  2. 服务进程通常在后台运行,不与用户直接交互,但它们提供系统功能或应用程序的服务,如数据库服务、网络服务、打印服务等。
  3. 服务可以通过服务管理工具(如Windows的services.msc或Linux的systemctl)进行管理,可以启动、停止、重启或设置为随系统自动启动。
  4. 服务通常在系统权限下运行,可以访问系统资源,执行一些需要较高权限的操作。

服务管理

基本语法

1
2
3
service <服务名> start|stop|restart|status
# CentOS7
systemctl start|stop|restart|status|enable|disable <服务名>

查看服务

1
2
3
4
5
6
# CentOS6
ls -al /etc/init.d/
# CentOS7
ls -al /usr/lib/systemd/system/
# 查看服务开机启动状态
systemctl list-unit-files

网络管理

存在两个网络服务networkNetworkManager

1
2
3
4
# 关闭network
systemctl stop network
# 重启NetworkManager
systemctl retstart NetworkManager

系统运行级别

Linux系统的运行级别(Run Levels)指的是系统启动时运行的不同模式,每种模式都定义了不同的服务和进程的启动状态。不同的Linux发行版可能会有不同的运行级别设计,但大多数基于System V的Linux系统通常遵循以下运行级别:

  1. 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动。
  2. 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录。(PS:相当于Windows安全模式)
  3. 运行级别2:多用户状态(没有NFS),不支持NFS,但系统支持的其它所有服务都能被用来进行系统维护。
  4. 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式。
  5. 运行级别4:系统未使用,保留一般不用。
  6. 运行级别5:X11控制台,登陆后进入图形GUI模式。
  7. 运行级别6:系统正常关闭并重启,但默认运行级别不能设为6,否则不能正常启动。

除了这些标准的运行级别,某些Linux发行版(如Red Hat和CentOS)还有特殊的运行级别:

  • 运行级别S:单用户模式,用于系统修复。
  • 运行级别emergency:紧急模式,用于系统修复,与单用户模式相似,但不会启动网络和交换分区。

值得注意的是,随着Systemd的普及,传统的运行级别概念已经被服务单元(Units)和目标(Targets)所取代,Systemd的Targets相当于以前的运行级别,但提供了更灵活的服务管理方式。在Systemd系统中,你可以通过systemctl命令来管理这些targets。

例如,要查看当前系统运行的目标,可以使用命令systemctl get-default;要设置启动目标,可以使用命令systemctl set-default TARGET.target,其中TARGET.target是你想要设置的目标,如graphical.target对应运行级别5,multi-user.target对应运行级别3。

CentOS7

CentOS7 的运行级别简化为:

  1. multi-user.target 等价于原运行级别3(多用户有网,无图形界面)
  2. graphical.target 等价于原运行级别5(多用户有网,有图形界面)
1
2
3
4
# 查看当前运行级别
systemctl get-default
# 修改当前运行级别
systemctl set-default multi-user.target|graphical.target

查看服务自启动

1
2
3
4
5
6
7
8
9
10
# CentOS6
chkconfig --list
# 关闭所有运行级别开机自启动
chkconfig <服务名> off
# 开启所有运行级别开机自启动
chkconfig <服务名> on
# 关闭指定运行级别开机自启动
chkconfig --level <级别数字> <服务名> off
# 开启指定运行级别开机自启动
chkconfig --level <级别数字> <服务名> on

防火墙

1
2
3
4
5
6
7
8
# 查看防火墙状态
systemctl status firewalld
# 临时关闭防火墙
systemctl stop firewalld
# 查看防火墙开机启动状态
systemctl enable firewalld.service
# 设置开机时关闭防火墙
systemctl disable firewalld.service

关机重启

  1. sync (功能描述:将数据由内存同步到硬盘中)

  2. halt (功能描述:停机,关闭系统,但不断电)

  3. poweroff (功能描述:关机,断电)

  4. reboot (功能描述:就是重启,等同于shutdown -r now)

  5. shutdown [选项] 时间

    选项功能
    -H相当于–halt,停机
    -r-r=reboot 重启
    参数功能
    now立刻关机
    时间等待多久后关机(时间单位是分钟)。
1
2
3
4
5
6
7
8
9
10
11
12
# 默认一分钟关机
shutdown
# 取消关机
shutdown -c
# 指定多少分钟后关机
shutdown <分钟数字>
# 指定15:30关机
shutdown 15:30
# 立刻关机
shutdown -h now
# 立刻重启
shutdown -r now

常用命令

常用快捷键功能
ctrl + c停止进程
ctrl + l清屏,等同于clear;彻底清屏是:reset
tab 键提示(更重要的是可以防止敲错)
上下键查找执行过的命令

帮助命令

  1. man

    manual(帮助手册)

    1
    2
    3
    4
    5
    6
    # 基本语法
    man <命令或配置文件>
    # 查看内置命令
    man -f <内置命令>
    # 查看指定章节的命令说明
    man <章节> <命令>
  2. help

    一部分基础功能的系统命令是直接内嵌在shell 中的,系统加载启动之后会随着shell一起加载,常驻系统内存中。

    这部分命令被称为“内置(built-in)命令”;相应的其它命令被称为“外部命令”,可以使用type <命令>查看命令是否为内置命令。

    1
    2
    3
    4
    # 基本语法
    help <命令>
    # 外部命令使用help
    <命令> --help

文件目录

  1. pwd:(print working directory)打印工作目录

    1
    2
    # 显示当前工作目录的绝对路径
    pwd
  2. cd:(change directory)切换工作目录

    参数功能
    cd 路径切换到指定路径的目录
    cd ~回到自己的家目录
    cd -回到上一次所在目录
    cd ..回到当前目录的上一级目录
    cd -P跳转到实际物理路径,而非快捷方式或符号链接路径
    1
    2
    3
    4
    # 切换到上级目录
    cd ..
    # 切换到上次所在目录
    cd -
  3. ls:(list)列出目录内容

    选项功能
    -a全部的文件,连同隐藏档(开头为.的文件)一起列出来(常用)
    -l长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll”
    每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修改的时间 名字
    1
    2
    3
    4
    5
    6
    # 基本使用
    ls [选项] [目录或是文件]
    # 查看当前目录下的文件
    ls
    # 查看当前目录下所有文件(包含隐藏文件)
    ls -a
  4. mkdir:(Make directory)创建目录

    1
    2
    # 基本语法
    mkdir [选项] <要创建的目录>

    -p:创建多层目录

  5. rmdir:(Remove directory)移除目录

    1
    rmdir <要删除的空目录>
  6. touch:创建空文件

    1
    touch <文件名称>
  7. cp:(copy)复制文件

    1
    2
    3
    4
    # 基本使用
    cp [选项] <源文件> <目标文件>
    # 跳过确认覆盖文件提示(\是直接使用原生命令,cp是cp -i的别名)
    \cp [选项] <源文件> <目标文件>

    选项:

    • -r 递归复制整个文件夹

    参数:

    • source 源文件
    • dest 目标文件
  8. rm:(remove)删除文件或文件夹

    1
    2
    # 基本使用
    rm [选项] <要删除的文件>

    选项:

    • -r 递归删除目录中所有内容
    • -f 强制执行删除操作,而不提示用于进行确认。
    • -v 显示指令的详细执行过程
  9. mv:(move)移动文件与目录或重命名

    1
    2
    3
    4
    # 重命名
    mv oldNameFile newNameFile
    # 移动文件
    mv /temp/movefile /targetFolder