/ 前言 /
持续更新中 . . .
/ 1 / 基础语法
1 . 1 拷贝
# 将a.txt中的内容拷贝到b.txt中
cp a.txt b.txt
# 将file文件复制到/path路径下
cp file /path/file
# 将path路径下所有文件拷贝到newPath下
cp -a path newPath
# 覆盖既有文件之前先询问用户
cp -i a.txt /path/a.txt
# 覆盖已存在的文件目标前将目标文件备份
cp -b a.txt /path/a.txt
# 强行复制文件/目录, 不管文件/目录是否存在
cp -f a.txt /path/a.txt
1 . 2 剪切/重命名文件/文件夹
# 将文件移动到指定路径下
mv <参数> file /path/file
# 参数
-b : 当文件存在时, 覆盖前, 为其创建一个备份
-f : 若目标文件或目录与现有的文件或目录重复, 则直接覆盖现有的文件或目录
-i : 覆盖前先行询问用户
-u : 当源文件比目标文件新或者目标文件不存在时, 才执行移动操作
1 . 3 创建文件
# 1
touch test.txt
# 2
vi test.txt
1 . 4 创建文件夹
mkdir <参数> file
# 参数
-p : 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限
1 . 5 删除文件/文件夹
语法
rm <参数> file
# 参数
-f : 强制删除文件或目录
-i : 删除文件或目录时先询问用户
-r : 删除当前目录下所有文件
示例
# 强制删除目录
rm -rf /path
# 强制删除文件
rm -f file
1 . 6 更改权限
1 . 6 . 1 chomd ( 修改文件读写权限 )
语法
chmod <参数> 文件
# 参数
-R : 修改当前目录下所有文件的权限
-v : 显示执行过程
示例
# 将path目录下所有文件权限改为可写可读可执行
chmod -R 777 /path
# 修改当前目录下所有后缀为.java的文件权限
chmod 777 *.java
# 修改文件的权限为可读
chmod 2 file
# 修改文件的权限为可写
chmod 4 file
# 修改文件的权限为可执行
chmod 1 file
# 修改文件的权限为没有任何权限
chmod 0 file
1 . 6 . 2 chown ( 修改文件所有者 )
只有文件所有者或管理员才可以使用此命令
语法
chown <参数> 用户 文件
# 参数
-R : 将当前目录下所有文件的所有者都改为指定用户
-v : 显示执行过程
示例
chown -R es /elasticsearch
1 . 7 查看文件大小
1 . 7 . 1 ( ll / ls -l 命令 )
[root@localhost src]# ll
-rw-r--r-- 1 root root 98 6月 24 10:01 test.txt
98就是文件大小
1 . 7 . 2 ( wc 命令 )
语法
wc <参数> 文件
# 参数
-c(--bytes/--chars) : 只显示Bytes数
-l(--lines) : 只显示列数
-w(--words) : 只显示字数
示例
[root@localhost src]# wc -c test.txt
98 test.txt
1 . 7 . 3 ( stat 命令 )
语法
stat <参数> 文件
# 参数
-L : 支持符号连接
-f : 显示文件系统状态而非文件状态
-t : 以简洁方式输出信息
示例
[root@localhost src]# stat test.txt
文件:"test.txt"
大小:98 块:8 IO 块:4096 普通文件
设备:fd02h/64770d Inode:403222111 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2020-06-24 10:05:52.772435759 +0800
最近更改:2020-06-24 10:01:07.291855652 +0800
最近改动:2020-06-24 10:01:07.292855685 +0800
1 . 7 . 4 ( du 命令 )
语法
du <参数> <文件>
# 参数
-b(-bytes) : 显示目录或文件大小时,以byte为单位
-k(--kilobytes) : 以KB(1024bytes)为单位输出
-m(--megabytes) : 以MB为单位输出。
-h(--human-readable) : 为输出数据添加单位(K,M,G)
示例
[root@localhost src]# du -b test.txt
98 test.txt
[root@localhost src]# du -h test.txt
4.0K test.txt
/ 2 / if 判断
语法
if [ 条件 ];then
elif [ 条件 ];then
else
fi
num=3
if [ $num = 1 ];then
echo "first"
elif [ $num = 2 ];then
echo "second"
else
echo "other"
fi
符号
-
-eq : 等于(=)
-
-nq : 不等于(!=)
-
-gt : 大于(>)
-
-lt : 小于(<)
-
-ge : 大于等于(>=)
-
-le : 小于等于(<=)
-
-z : 字符串的长度是否为0, 使用方式为 [ -z “字符串” ]
-
-n : 字符串的长度是否大于0 ,使用方式为 [ -n “$STRING’”], 如果是变量外围一定要有双引号
""
/ 3 / 循环
3 . 1 for循环
3 . 1 . 1 for (( i=0 ; i < length ; i++ ))
array=(1,2,3,4)
for ((i=0;i<${#array[@]};i++))
do
echo "${array[i]}"
done
3 . 1 . 2 for item in (1,2,3,4)
array=(1,2,3,4)
for item in ${array[*]}
do
echo "${item}"
done
3 . 1 . 3 for num in seq 1 5
for num in `seq 1 5`
do
echo $num
done
3 . 2 while循环
# 正常循环
num=1
while [ $num -gt 0 ]
do
echo "num > 0"
num=`expr $num - 1`
done
# 无限循环
while [ 1 ]
do
echo "死循环"
done
3 . 3 循环控制命令
3 . 3 . 1 break ( 结束循环 )
num=1
while [ $num -lt 10 ]
do
if [ $num -gt 5 ];then
break
fi
num=`expr $num + 1`
echo $num
done
3 . 3 . 2 continue ( 跳过本次循环进入下一次循环 )
for ((i=0;i<5;i++))
do
if [ $i -eq 2 ];then
continue
fi
echo $i
done
转载:https://blog.csdn.net/F1004145107/article/details/106674888
查看评论