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脚本编程
脚本创建与执行
-
使用文本编辑器(如vim)创建脚本文件。
-
为脚本文件添加执行权限。
-
执行脚本。
示例:
创建并执行一个简单脚本
# 创建脚本文件
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
注:查看权限设置