Post

Linux结构与命令介绍

Linux结构与命令介绍

What is Linux Operating System

1.Linux介绍

Linux是一种操作系统,由Linus Torvalds创建的内核演变而来。Linux kernel(内核)是操作系统的大脑,用来管理软件和硬件的交互,是Linux的核心。但是只有内核不足以让Linux成为一个完整的操作系统,还需要许多其它的软件包,组件和开发工具,组成Linux distributions(Linux发行版),比如Ubuntu,Linux Mint等。Linux是一个类似 Unix 的操作系统,Unix是操作系统中的元老级存在,现在的Windows,MacOs等系统都参考了Unix.

Linux结构可以看到多层的环,由内而外,从硬件到软件

  • 硬件层:所有计算机的物理组件,比如RAM(Random Access Memory),HDD(Hard Disk Drive),CPU(Central Processing Unit)等

  • 内核:内核是操作系统的核心,系统软件和硬件之间的桥梁,包括内存管理、进程管理、设备驱动程序、文件系统、网络管理和安全模块等

  • Shell:Linux操作系统的用户接口,命令行解释器,允许用户通过输入命令来与系统交互,shell会翻译和执行这些命令,用来连接内核与用户

  • 应用程序:标准的 Linux 系统通常包含一套称为应用程序的程序集,包括文本编辑器、编程语言、XWindow、办公套件、Internet 工具和数据库等。这些应用程序使用户能够执行各种任务,从桌面工具和编程语言到多用户业务套件

2.Linux Shell

Shell是一个用 C 语言编写的程序,是用户使用Linux的桥梁,本质是命令解释器。用户一般在终端输入命令,终端和shell是两个概念, 终端只是人机交互的一个接口,提供输入输出命令的交互界面,接收用户输入的命令,并提交给 Shell,而Shell是命令解释器,将终端输入的命令转化成内核能够理解的语言并传递给内核,由内核执行命令,并将执行结果返回给终端。当我们打开终端时,Shell 也会自动启动,操作系统会将终端和 Shell 关联起来。因此每次打开终端时,都会在上面看到bash或者zsh等字样。

查看当前的默认shell

1
2
% echo $SHELL
/bin/zsh

查看系统中的所有shell,可以看到有很多个shell版本,mac中大部分使用zsh

1
2
3
4
5
6
7
8
9
10
11
12
% cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

安装组件时经常需要修改配置文件来设置路径,如果存在设置路径后还是无法运行的情况,可以查看是不是配置在了默认的shell里,比如zsh和bash读取的配置文件不同,而系统只有寻找当前的shell的配置文件

1
2
~/.bash_profile
~/.zshrc

3.Shell脚本

shell是一个程序,一个解释器,在终端输入一条命令,shell就可以直接读取这条命令并解释执行,但是如果我们想要执行不止一条命令,可以创建一个程序文件来执行多条命令,这个程序文件就是shell脚本(shell script)。

打开文本编辑器(vi/vim命令来创建文件),新建一个文件test.sh,输入一些代码,#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。echo 命令用于向窗口输出文本

1
2
#!/bin/bash
echo "Hello World !"

然后运行test.sh脚本

1
2
chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

4.Linux命令

4.1 基本命令

Linux系统提供了一系列的基本命令,用于管理文件、目录、进程、网络和系统配置,比如

  • 帮助命令
1
2
- man: 查看命令的手册页
- --help: 查看命令的帮助信息
  • 文件和目录管理
1
2
3
4
5
6
7
- ls: 列出当前目录中的文件和子目录
- pwd: 显示当前工作目录的路径
- mkdir: 创建新目录
- rmdir:删除空目录
- rm: 删除文件或目录
- touch: 创建空文件或更新文件的时间戳
- cat: 连接和显示文件内容
  • 系统管理
1
2
3
4
5
- sudo: 以超级用户权限运行命令
- shutdown: 关闭或重新启动系统
- ifconfig/ip: 查看和配置网络接口信息
- chmod: 修改文件或目录的权限
- chown: 修改文件或目录的所有者
  • 网络和通信命令
1
2
3
- ssh: 远程登录到其他计算机
- scp: 安全地将文件从本地复制到远程主机,或从远程主机复制到本地
- ping: 测试与主机的连通性

4.2 Linux vi/vim

vim是一个文本编辑器,是vi编辑器的增强版,在大部分Linux系统中都会内置vim。

vim分成三种模式:命令模式(Command Mode),输入模式(Insert Mode)和命令行模式(Command-Line Mode)

(1)命令模式:用户启用vim,就会进入命令模式,此时键盘会对应到命令,命令模式的一些常见命令:

1
2
i  切换到输入模式,在光标当前位置输入文本
:  切换到底线命令模式,在最后一行输入命令

(2)输入模式:如果从命令模式进入到了输入模式,可以对文本进行编辑,此时键盘对应正常的输入,输入模式下的常见按键

1
ESC 退出输入模式,切换到命令模式

(3)底线命令模式:在命令模式下按下:会进入底线命令模式,常见命令有:

1
2
3
4
:q  退出vim编辑器
:w  保存文件
:wq  保存文件并退出vim编辑器
:q!  强制退出Vim编辑器,不保存修改

比如用vim创建一个test.txt文件,进入命令模式,光标在左上方

1
% vim test.txt

按入i进入输入模式,左下角变成INSERT,表示输入,输入要写入的内容,然后按ESC退回命令模式,INSERT会消失不见

进入底线命令模式,输入:wq,保存并退出vim,打开test.txt文件会发现已经写进内容

This post is licensed under CC BY 4.0 by the author.