超详细的Shell命令大全

/ 前言 /

       持续更新中 . . .

/ 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 chmod ( 修改文件读写权限 )

语法

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

/ 4 / Linux中好用的软件包

4 . 1 Tree

Tree命令并不是Centos自带的命令, 需要安装
Tree命令会将当前目录下所有文件及文件夹以树状结构进行展示
效果

.
├── test.txt
└── wise
    └── wisetest.txt

1 directory, 2 files

安装

yum install tree -y
  • 13
    点赞
  • 228
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值