关于Shell与Linux的命令

本文详细介绍了Shell的作用和常见版本,强调了其作为命令解释器的角色。讲解了Linux中文件的类型、常见文件后缀及目录和链接的概念。此外,还列举了Linux常用命令的格式,并详细阐述了系统信息查询、软件包管理、文件和目录操作以及网络命令的使用,最后提到了Vi编辑器的基本功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Shell?

Shell是系统的用户界面,提供了用户与内核进行交互的一种接口(命令解释器),Shell接收用户输入的命令并把他送入内核执行,在用户与系统之间进行交互。Shell在整个Linux中具有极其重要的地位。

Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁

Shell的功能:

命令解释器是Shell最重要的功能。Linux系统中所有的可执行文件都可以作为Shll来执行

常见Linux中可执行的文件类

类别说明
Linux命令存放在 /bin、/sbin 目录下的命令
内置命令出于效率的考虑,将一些命令的解释程序构造在Shell内部
实用程序存放在/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin 等目录下的实用程序
用户程序用户程序经过编译生成可执行文件后可作为Shell命令运行
Shell脚本由Shell脚本编写的批处理文件

常见的Shell版本如下

bash:多数Linux系统的默认Shell,包含了ksh的优点,接口强大,界面友好。

ksh:由Dava Kom编写,是UNIX系统上的标准Shell。

tcsh:C Shell的拓展

Shell的元字符:

  •   代表任意字符串
    
    ? 代表任意字符
    . 代表根目录或作为路径间隔符使用
    \ 转义字符。当命令的参数要用到保留字时,要在保留字前面加上转义字符
    <Enter> 续行符。可以使用续行符将一个命令行分写在多行上
    $ 变量值置换,如SPATH表示环境变量PATH的值
    ’ 在’.…’.中间的字符均被当作文字处理,指令、文件名、保留字等都不再具有原来的意义
    " 在"…"中间的字符会被当作文字处理并允许变量值置换命令替换,置换……中命令的执行结果
    < 输入重定向字符

​ 输出重定向字符
| 管道字符
& 后台执行字符。在一个命令之后加上字符“&”,该命令就会以后台方式执行
; 分割顺序执行的多个命令
() 在子Shell中执行一组命令
{} 在当前Shell中执行一组命令
! 执行命令历史记录中的命令
~ 代表登录用户的宿主目录(自家目录)

什么是文件?

在Linux上,文件被看作是字节序列,这种概念使得所有的系统资源有了统一的标识,这些资源包含普通文件或目录、磁盘设备、控制器、(键盘、显示器)、打印机等。

-普通文件

d目录,存放位置

l符号链接

c字符设备文件

b块设备文件

s套接字

p命名管道符

普通文件:普通文件可以是执行文件(文本、程序、脚本等)、源代码等类型,在windows中后缀名决定了文件的类型,但是在Linux中,可执行文件是用权限来标识的,只要有了可执行权限,,那么不论文件后缀是什么都可以执行,但是对于一些数据文件一般也遵循文件名后缀的规则。

常见的文件名后缀

.txt文件 文本文件
.conf 配置文件
.html/.xml/
.yml/
.sql html、xml、yml、sql文件
.c/.cpp c/c++源码文件
.so/.ko/. lib 模块、库文件
.sh/.php/.py/
.pl/.rb SheII/PHP/Python/Perl/Ruby脚本文件
.rpm RPM包文件
.tar 打包、存档文件
.gz/.bz2/
.xz 由gzip/bzip2/xz 生成的压缩文件
.tar.gz/.tgz/
.tar.bz2/
.tbz/.tar.xz/.txz 压缩后的tar包文件
*.lock 用于表示某个程序或某种服务正在运行的锁文件
*~ 备份文件

目录和硬链接:

目录是由一组目录项组成。目录可以是对其他文件的指向。也可以是对其下的子目录的指向

硬链接:将两个文件名指向同一个存储空间,任意修改其中一个都不会影响另一个文件,它并不是一种特殊文件类型,而是允许多个目录指向同一文件的一种机制。

符号链接

符号链接又叫软连接,是指将一个文件指向零一个文件

软链接:将一个文件指向另一个文件,类似与快捷方式,如果删了源文件,那么另一个文件成为死链接。

设备文件:设备文件是指计算机中的外围硬件装置,也就是除了cpu和内存以外的所有设备,Linux下为了屏蔽用户对设备访问的复杂性,采用了设备文件,就可以向普通文件一样对设备进行读写访问,设备文件用来访问设备,包括硬盘、光驱、打印机等,每个设备至少与一个文件关联

设备文件又分为字符设备(如硬盘)和块设备(如磁盘)。

套接字和命名管道:

套接字和命名管道是Linux环境下实现进程间通信的(IPC)机制。

命名管道(FIFO)文件允许在同一计算机上的两个进程之间进行通信。

套接字(socket)允许运行在不同的计算机上的进程之间互相通信。

它们通常实在进程运行时创建或删除,无需管理员来干预。

Linux常用命令格式

Linux常用命令格式:Command[-option][argument}

Command: 即是要运行的命令的本身,说白了就是一个软件(程序)

Option: 是选项(可选),选项是控制命令运行状态和行为的(可多个选项一起,如df -ht)

Argument: 是参数(可选),是命令要操作对象如文件、路径、数据、目录等;

系统信息相关:

  1. lscpu或cat /proc/cpuinfo 显示cpu信息
    free -m或cat /proc/meminfo | grep -i memtotal 显示物理内存大小
    cat /etc/system-release 查看系统发行版本
    uname -r 查看内核版本
    uanme -a 显示版本详细信息
    arch 查看机器架构
    lsmod 查看内核模块
    dmesg 查看系统启动信息
    lsblk 查看系统中的块设备
    fdisk -l 查看磁盘分区
    findmnt 查看挂载的文件系统
    df -Ph 查看磁盘剩余空间
  2. df -h 显示已经挂载的分区列表
    date/timedatectl 查看本地时间和日期
    localectl 查看语言支持与键盘设置
  3. (centos)软件包安装
  4. yum install package_name 下载并安装一个rpm包
    yum update package_name 更新一个rpm包
    yum remove package_name 删除一个rpm包
    yum list 列出当前系统中安装的所有包
    yum search package_name 在rpm仓库中搜寻软件包
    yum clean packages 清理rpm缓存删除下载的包
    yum repolist 查看已经启用的软件更新源
    rpm -qa 查看已经安装的软件
    yum autoremove 自动查找并删除所有缓存的包
    yum check-update 检查可更新的所有软件包
    yum update 下载更新已安装的所有软件
    yum groups install package_name 下载软件包,并自动解决依赖关系

文件和目录

  1. ls 显示文件和目录列表
    ls -al 以列表形式显示所有文件、目录(包含隐藏文件、目录)
    ls -R 递归显示当前目录及其子目录下的文件及目录
    mkdir /dirname/dirname1 以绝对路径创建一个空目录
    mkdir -p /srv/{abc,def}/html 递归创建 /srv/abc/html 和 /srv/def/html 目录
    touch file file1 生成file、file1空文件
    touch oldfile 修改已有文件的时间为当前时间
    cd dirname 切换到目录
    cd - 切换到上一次使用cd命令前的目录
    cd … 切换到当前目录的上级目录
    cd …/… 切换当前目录的上两级目录
    tree 树状显示当前目录结构

cp 复制文件
cp file1 dirname 复制单个文件到目录
cp file1 file2 dirname 复制两个文件到目录
cp -r /etc/dir . 复制/etc/dir 目录及所有的文件复制到当前目录
mv file1 file 2 将file1改名为file2
mv file /dirname 移动到目录
rm -rf file/dir 强制删除文件或文件夹
rmdir dir 删除空文件夹
find . -name ‘my*’ 从当前目录查找名字为my开头的文件
find /home -user “osmond” 从/home目录下开始查找用户属主为osmond的文件

信息显示:

whereis ls 查找程序ls的位置
history 显示历史命令
history -c 清空历史命令
cal 2015 显示2015年日历
ifconfig eth0 显示网卡eth0的详细信息
netstat -antp 显示所有已经建立的连接
du -sh 显示当前目录已使用量
df -h 目录名 显示目录磁盘使用量
who 显示当前tty或伪终端占用
id 显示用户uid、gid

网络命令:

ifconfig 显示网卡信息及IP地址
ifconfig 网卡名 显示一个eth0的配置
ifup 网卡名 启用一个 ‘eth0’ 网络设备
ifdown 网卡名 禁用一个 ‘eth0’ 网络设备
wget url/uri 下载某个文件
ifconfig eth0 promisc 设置 ‘eth0’ 成混杂模式以嗅探数据包 (sniffing)
dhclient eth0 以dhcp模式启用 ‘eth0’
route -n 显示路由表
echo “1” > /proc/sys/net/ipv4/ip_forward 开启路由转发(数据转发)
hostname 显示系统主机名
ping hostname/IP地址 网络连通性测试
ss或netstat 显示网络状态信息
firewall-cmd --list-all 查看防火墙规则

Vi编辑器:

Vi 是 Visual Interface的简称,可以执行输入、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑器所不具备的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值