当前位置: 首页 > news >正文

Linux Shell 基础操作笔记

一、目录导航与文件操作

常用命令

pwd:显示当前工作目录。

cd [目录]:切换到指定目录。

  • cd ~:返回用户主目录。

  • cd ..:切换到上一级目录。

  • cd -:切换到上一次所在的目录。

ls:列出当前目录下的文件和文件夹。

  • ls -R:递归列出当前目录及其子目录。

  • ls -al:以长格式列出所有文件和文件夹,包括隐藏文件。

mkdir [目录名]:创建新目录。

  • mkdir -p [目录路径]:递归创建多级目录。

touch [文件名]:创建空文件。

rm [文件名]:删除文件。

  • rm -fr [目录名]:强制递归删除目录及其内容。

# 切换到根目录
cd /
# 返回用户主目录
cd ~
# 列出根目录下的所有文件和文件夹
ls
# 创建多级目录结构
mkdir -p project/src/main/java
# 删除某个文件
rm file.txt
# 强制删除某个目录及其内容
rm -fr project

二、文件权限管理

权限基础

Linux文件权限分为读(r)、写(w)、执行(x)三种,分别对应4、2、1的数值。权限设置针对文件所有者(u)、所属组(g)、其他用户(o)三类用户。

常用命令

chmod [选项] [权限] [文件名]:修改文件权限。

  • chmod +x file.sh:为文件添加执行权限。

  • chmod u-w file:移除文件所有者的写权限。

  • chmod 755 file:设置文件权限为所有者可读写执行,组用户和其他用户可读执行。

# 创建一个脚本文件
vim script.sh
# 添加执行权限
chmod +x script.sh
# 移除写权限
chmod u-w script.sh
# 设置权限为755
chmod 755 script.sh

三、Shell脚本编程

脚本创建与执行

  1. 使用文本编辑器(如vim)创建脚本文件。

  2. 为脚本文件添加执行权限。

  3. 执行脚本。

示例:

创建并执行一个简单脚本

# 创建脚本文件
vim hello.sh
# 添加执行权限
chmod +x hello.sh
# 编辑脚本内容
#!/bin/bash
echo "Hello, World!"
# 执行脚本
./hello.sh

脚本中的变量与用户输入

# 定义变量
name="Alice"
# 用户输入
read -p "Enter your age: " age
# 输出变量和用户输入
echo "Name: $name, Age: $age"

条件语句

# if语句
if [ $a -eq $b ]; then
    echo "a equals b"
elif [ $a -gt $b ]; then
    echo "a greater than b"
else
    echo "a less than b"
fi
# case语句
case $choice in
    "1") echo "First option";;
    "2") echo "Second option";;
    *) echo "Invalid option";;
esac

循环语句

# while循环
count=0
while [ $count -lt 5 ]; do
    echo $count
    count=$((count + 1))
done
# for循环
for i in {1..5}; do
    echo $i
done
# until循环
num=0
until [ $num -ge 5 ]; do
    echo $num
    num=$((num + 1))
done

函数定义与调用

# 定义函数
greet() {
    echo "Hello, $1!"
}
# 调用函数
greet "Bob"

四、字符串操作

字符串拼接

# 使用双引号拼接
name="Alice"
greeting="Hello, "$name"!"
# 使用${}语法拼接
greeting_1="Hello, ${name}!"

字符串长度与截取

# 获取字符串长度
str="hello world"
len=${#str}
# 字符串截取
substr=${str:1:4}

五、数组操作

# 定义数组
array=(element1 element2 element3)
# 访问数组元素
echo ${array[0]}
# 遍历数组
for element in ${array[@]}; do
    echo $element
done
# 获取数组长度
echo ${#array[@]}

六、脚本间变量共享

使用source命令

# 在脚本中加载另一个脚本
source ./another_script.sh
# 访问被加载脚本中的变量
echo $shared_variable

注:查看权限设置

相关文章:

  • charles接口测试(断点测试)
  • 本人设计的最完全的光压发电机模型
  • 05_循环结构三目运算符
  • Spring MVC 配置详解与入门案例
  • SpringBoot 面试八股文
  • 基于@Scheduled注解(静态配置)实现定时任务
  • SQL调优
  • 搭建PG库和安装pgvector、pgRouting插件
  • uniapp 微信小程序图片下载保存功能
  • TypeScript 泛型 < T > 从入门到精通
  • 可视化图解算法:删除有序(排序)链表中重复的元素
  • 基于AOP注解+Redisson实现Cache-Aside缓存模式实战
  • 春日焕新居:约克VRF中央空调,科技赋能,带你开启健康呼吸新时代
  • 力扣题目分享:只出现1次的数字I II III(位运算版)
  • 宝塔docker flarum默认登录账号密码,crazymax/flarum镜像默认登录账号密码
  • 蓝桥杯算法题分享(二)
  • 从 Copilot 到垂直工具:AI 编程的 “专精特新“ 进化论
  • 用python写网络爬虫
  • 如何用Spring AI构建MCP Client-Server架构
  • 动手实践:单机安装高性能列式存储数据库ClickHouse
  • 俄罗斯总统普京到库尔斯克州视察
  • 欧盟就逐步放松对叙利亚制裁达成一致
  • 英伟达回应在上海设立新办公空间:正租用一个新办公空间,这是在中国持续深耕的努力
  • 总书记回信二周年之际,上海如何将垃圾分类深度融入城市发展?
  • 商务部:对原产于美国、欧盟、台湾地区和日本的进口共聚聚甲醛征收反倾销税
  • 打造信息消费新场景、新体验,上海信息消费节开幕