Shell 的基础认识

一、Shell 的基础认识

  1. 作用
    • 接受用户输入的命令,并将其传递给操作系统执行。
    • 提供了一种方便的方式来管理文件、运行程序、配置系统等。
  2. 常见的 Shell
    • Bash(Bourne Again Shell):在大多数 Linux 发行版和 macOS 中广泛使用。
    • Zsh:功能强大且可高度定制的 Shell。
    • PowerShell:在 Windows 系统中使用。
  3. 基本概念
    • 命令:执行特定任务的指令,如ls(列出目录内容)、cd(切换目录)等。
    • 选项:用于修改命令的行为,通常以---开头。例如,ls -l以长格式列出目录内容。
    • 参数:提供给命令的额外信息。例如,cd /home/user中的/home/usercd命令的参数。

二、常用命令

文件和目录操作

ls:列出目录内容。

选项:-l(长格式显示)、-a(显示隐藏文件)。

cd:切换目录。

示例:cd /home/user切换到/home/user目录。

pwd:显示当前工作目录的路径。

mkdir:创建目录。

示例:mkdir mydir创建一个名为mydir的目录。

rm:删除文件或目录。

选项:-r(递归删除目录)、-f(强制删除,不提示)。

cp:复制文件或目录。

示例:cp file1 file2file1复制为file2

mv:移动或重命名文件或目录。

示例:mv file1 dir1/file1移动到dir1目录下。

文件查看和编辑

cat:查看文件内容。

示例:cat file.txt显示file.txt的内容。

moreless:分页查看文件内容。

vivimnano:文本编辑器,用于编辑文件。

系统信息和管理

ps:查看进程状态。

选项:-aux(显示所有进程的详细信息)。

top:实时显示系统的资源使用情况和进程信息。

free:查看系统内存使用情况。

df:查看磁盘空间使用情况。

kill:终止进程。

示例:kill <进程 ID>终止指定进程。

网络相关

ping:测试网络连接。

示例:ping www.example.com测试与www.example.com的网络连接。

curlwget:用于从网络下载文件。

ifconfig(Linux)或ipconfig(Windows):查看网络接口配置信息。

用户和权限管理

useradd:添加用户。

passwd:设置用户密码。

chmod:改变文件或目录的权限。

示例:chmod 755 file.txt设置file.txt的权限为所有者可读、写、执行,组和其他用户可读、执行。

chown:改变文件或目录的所有者。

示例:chown user:group file.txtfile.txt的所有者改为user,所属组改为group

文件搜索和查找

find:在指定目录下查找文件。

示例:find /path/to/directory -name "file.txt" 在指定目录中查找名为 “file.txt” 的文件。

可以结合各种选项进行更复杂的搜索,如按文件类型、大小、修改时间等进行筛选。

grep:在文件中搜索特定的模式。

示例:grep "pattern" file.txt 在 “file.txt” 文件中搜索包含 “pattern” 的行。

可以结合正则表达式使用,以实现更强大的搜索功能。

压缩和解压缩

tar:打包和解包文件。

打包:tar -cvf archive.tar file1 file2 dir1 将文件 “file1”、“file2” 和目录 “dir1” 打包成 “archive.tar”。

解包:tar -xvf archive.tar 解包 “archive.tar”。

可以结合不同的选项实现压缩(如使用-z选项结合gzip进行压缩)。

zipunzip:用于压缩和解压缩 ZIP 文件。

压缩:zip archive.zip file1 file2 将文件 “file1” 和 “file2” 压缩成 “archive.zip”。

解压缩:unzip archive.zip 解压缩 “archive.zip”。

进程管理

jobs:查看当前终端会话中的后台作业。

fg:将后台作业调到前台运行。

示例:fg %job_number 将指定编号的后台作业调到前台。

bg:将暂停的作业放到后台继续运行。

环境变量和配置

echo $VAR_NAME:显示环境变量的值。

例如,echo $PATH 显示系统路径环境变量。

export VAR_NAME=value:设置环境变量。

. script.sh:在当前 Shell 会话中执行一个脚本文件,并将脚本中的环境变量和函数等引入当前会话。

文件比较

diff:比较两个文件的差异。

示例:diff file1.txt file2.txt会显示两个文件内容的不同之处。

远程登录和文件传输

ssh:用于远程登录到其他服务器。

示例:ssh user@remote_server以用户 “user” 登录到 “remote_server”。

scp:在本地和远程服务器之间安全地复制文件。

例如,scp local_file user@remote_server:/remote/directory将本地文件复制到远程服务器的指定目录。

磁盘管理

du:显示文件或目录所占用的磁盘空间大小。

选项:-h以人类可读的格式显示大小,-s只显示总大小。

mountumount:用于挂载和卸载文件系统。

系统监控

uptime:显示系统的运行时间、登录用户数和平均负载。

vmstat:提供虚拟内存、进程、CPU 等系统资源的统计信息。

命令别名和快捷方式

alias:为常用命令创建别名。

例如,alias ll='ls -l'创建一个名为 “ll” 的别名,等同于 “ls -l”。

unalias:删除别名。

管道和重定向

|:管道符号,将一个命令的输出作为另一个命令的输入。

例如,ls | grep "pattern"在 “ls” 的输出结果中查找包含特定模式的内容。

>>>:重定向输出。

>将命令的输出重定向到一个文件,如果文件已存在则覆盖。

>>将命令的输出追加到一个文件。

<:重定向输入,将一个文件的内容作为命令的输入。

文本处理

sed:流编辑器,可用于对文本进行各种编辑操作。

例如,sed 's/old/new/g' file.txt可以将文件 “file.txt” 中的所有 “old” 替换为 “new”。

awk:一种强大的文本处理工具。

可以进行数据提取、计算等操作。例如,awk '{print $1}' file.txt可以打印文件 “file.txt” 的每一行的第一个字段。

软件包管理(特定于某些系统)

在基于 Debian 的系统(如 Ubuntu)中:

apt-get:用于安装、更新和删除软件包。

例如,apt-get install package_name安装一个软件包。

在基于 Red Hat 的系统中:

yum:类似的软件包管理工具。

yum install package_name安装软件包。

系统性能分析

iotop:显示进程的 I/O 使用情况。

htop:一个交互式的进程查看器,比传统的 “top” 命令更直观。

文件属性修改

touch:可以创建一个新的空文件,或者更新现有文件的时间戳。

例如,touch newfile.txt创建一个名为 “newfile.txt” 的空文件。

chattr:改变文件的属性。

可以设置文件为不可修改、不可删除等属性。

特殊字符和转义

\:转义字符,用于对特殊字符进行转义。

例如,在文件名中包含空格时,可以使用转义字符来处理,如ls\ file\ with\ space.txt

~:代表用户的主目录。

例如,cd ~可以切换到当前用户的主目录。

文本排序和去重

sort:对文本文件的内容进行排序。

示例:sort file.txt对 “file.txt” 的内容进行排序。可以使用各种选项来指定排序规则,如按数字大小排序、逆序排序等。

uniq:去除文本文件中的重复行。

通常与sort结合使用,先排序再去重效果更好。例如,sort file.txt | uniq

系统资源限制

ulimit:限制用户或进程的资源使用。

例如,可以限制进程的最大打开文件数、最大栈大小等。如ulimit -n 1024将当前用户的最大打开文件数设置为 1024。

系统服务管理(特定于某些系统)

在 Systemd 系统(如大多数现代 Linux 发行版)中:

systemctl:用于管理系统服务。

systemctl start service_name启动一个服务。

systemctl stop service_name停止一个服务。

systemctl status service_name查看一个服务的状态。

在 init.d 系统中:

/etc/init.d/service_name start/stop/restart等命令来管理服务。

文本格式化

column:将文本以列的形式进行格式化显示。

可以将多行文本转换为整齐的列格式,方便查看。

执行定时任务

crontab:用于设置定时任务。

用户可以编辑自己的定时任务列表,指定在特定时间执行特定的命令或脚本。

例如,0 0 * * * /path/to/script.sh表示每天零点执行 “script.sh” 脚本。

文本统计

wc(word count):统计文件中的行数、单词数和字符数。

示例:wc file.txt会显示文件的行数、单词数和字符数。可以使用选项指定只显示其中一项,如-l只显示行数。

字符串操作

expr:可以进行一些简单的数学运算和字符串操作。

例如,expr 5 + 3计算 5 加 3 的结果。也可以进行字符串长度计算等操作,如expr length "hello"

tr:用于转换或删除字符。

例如,tr 'a-z' 'A-Z' < file.txt可以将文件中的小写字母转换为大写字母。

环境切换

su(switch user):切换用户身份。

例如,su - username切换到用户 “username”,并加载该用户的环境变量。

文件硬链接和软链接

ln:创建硬链接或软链接。

创建硬链接:ln file1 file2创建文件 “file1” 的硬链接 “file2”,两个文件指向相同的磁盘存储位置。

创建软链接(符号链接):ln -s file1 file2创建文件 “file1” 的软链接 “file2”,软链接类似于快捷方式。

进程优先级调整

nice 和 renice:调整进程的优先级。

nice -n priority command以指定的优先级运行一个命令。优先级数值越低,优先级越高。

renice priority pid调整正在运行的进程的优先级,其中 “pid” 是进程 ID。

文件校验

md5sum 和 sha1sum

等:计算文件的校验和。

例如,md5sum file.txt会计算 “file.txt” 的 MD5 校验和并输出。可以用于验证文件的完整性。

查找特定类型文件

find命令的特定用法:

find /path -type f -name "*.txt":在指定路径下查找所有扩展名为 “.txt” 的文件。

-type参数可以指定查找的文件类型,如普通文件(f)、目录(d)等。

磁盘分区和挂载信息查看

fdisk -l:列出系统中的磁盘分区信息。

mount命令无参数执行时,可以查看当前已挂载的文件系统信息。

环境变量设置高级用法

export -p:以可输出的格式显示所有的环境变量。

可以在 Shell 脚本中使用export来设置环境变量,使其在脚本执行的子进程中也可见。

批处理命令执行

xargs:将标准输入转换为命令行参数,以便对大量输入进行批处理操作。

例如,ls | xargs rm可以删除当前目录下所有由 “ls” 列出的文件,但使用时要非常小心。

历史命令操作

history命令的高级用法:

history | grep command_pattern:查找历史命令中包含特定模式的命令。

!n:执行历史命令列表中的第 n 条命令。

!!:重复执行上一条命令。

查看文件编码

file -i file.txt:可以查看文件的编码格式以及其他信息。

监控网络连接

netstat:显示网络连接、路由表、接口状态等信息。

例如,netstat -an可以查看所有的网络连接和监听端口。

字符串分割和提取

cut:从文本行中提取特定的字段。

例如,cut -d ':' -f 1 file.txt可以从以 “:” 分隔的文件中提取第一列的内容。

临时文件创建

mktemp:创建一个临时文件或目录,并确保其名称是唯一的。

文件权限递归修改

chmod -Rchown -R:可以递归地修改目录及其下所有文件的权限或所有者。

执行远程命令(通过 SSH)

ssh user@remote_host command:在远程主机上执行特定命令并返回结果。

文件内容随机排序

shuf file.txt:对文件的内容进行随机排序。

其他实用命令

hostname:显示主机名。

date:显示当前日期和时间。

cal:显示日历。

history:查看命令历史记录。

man:查看命令的手册页,获取详细的命令使用说明。

例如,man ls 查看 “ls” 命令的手册。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值