学习地址:

https://learnku.com/articles/5932/bash-command-and-syntax-take-you-to-upgrade-hit-boss,

菜鸟教程

https://www.youtube.com/watch?v=oxuRxtrO2Ag

shell命令行

基础命令

命令 解释
ls 展示文件及目录;
ls -a 展示所有文件及目录(包括隐藏的);
pwd 输出当前目录(print working directory);
cd xx 传送到某个目录下;
pushd xx 传送到某个目录下,可返回;
popd 👆-返回;
locate 检索
history 查看近1,000行你执行过的指令;

查看命令信息

命令 解释
whatis xx 对某行指令做出简介。eg:whatis cal ;
apropos xx 例举出与xx有关的相关操作。 eg: apropos time ;
which xx 检查xx指令是否存在,在哪里。eg: which cal;
man xx 查看xx用法 ;eg: man man

文件操作

命令 用法 解释
mkdir mkdir xx1 xx2 新建文件夹xx1和xx2
touch touch xx1 xx2 1. 如果xx文件存在,则update这个文件,刷新文件中记录的时间;/n
2. 如果xx文件不存在,则新建该文件。
cp cp ~/xx rexx 将某路径下的xx文件copy到当前目录,且命名为rexx
mv mv xx1 xx2 将xx1移动/move到xx2,xx1消失。若原来存在xx2,则xx2被覆盖;/n 若不存在,则相当于重命名了。
rm rm xx 删除/remove某个文件【删了就没有了,没有回收站
rm xx* 删除该文件夹下以xx打头的所有文件。同理,rm * 就是所有文件了。
rm -r xxDirectory 删除xx文件夹和该文件夹下所有文件。
rmdir rmdir xxDirectory 删除某个文件夹。
rmdir * 删除所有文件夹。

文本操作

命令 用法 解释
cat cat xx1,xx2 查看某(些)个文本。
cat >> xx 编辑某个文本,内容会覆盖原文件。按 ctrl+D/c 返回编辑状态。
cat > xx 编辑某个文本,内容会在添加在原文件末尾。
nano nano 新建一个文本。ctrl^x退出,y/n是否保存。
nano xx 打开并编辑某个文本。
xcommand > xxFile ls / > a 将某条指令执行的结果写入a文本文件。

权限操作

命令 解释
sudo -s 进入root模式,后续的所有操作是root权限。exit退出。
su -userA 切换账号,进入userA。
su - 切换到root账号。exit退出。

ls -l 可显示文件权限,执行结果如下:

image-20210104152415759.png

第1位 2~4位 5~7位 8~10位 数字 user user
文件类型 所有者权限 所有组权限 普通用户权限 执行次数 用户名 组名
- 普通文件
d 目录文件 r 可读 r 可读 r 可读
p 管理文件 w 可写 w 可写 w 可写
i 链接文件 x 可执行 x 可执行 x 可执行
b 块设备文件 - 无权限 - 无权限 - 无权限
c 字符设备文件
s 套接字文件

image-20210104153655672.png

修改权限

命令 用法 解释
chmod (change mode) chmod +x filed 给filed文件(普通用户)添加可执行权限。
chmod +r filed 给filed文件(普通用户)添加可读权限。
chmod +w filed 给filed文件(普通用户)添加可写权限。

也可以这么写,更舒服;参考上图:

chmod 743 filed —> 设置filed权限位:rwx,r–,-wx ;

因为我们可以用1-7的数字表示每一种权限的组合;

1 2 3 4 5 6 7
1 2 1+2 4 1+4 2+4 1+2+4
x/可执行 w/可写 x+w/ r/可读 x+r/可执行可读 w+r/可写可读 x+w+r/可读可写可执行

语法

变量

变量类型

运行shell时,会同时存在三种变量:

  • 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  • 2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  • 3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
语法 说明
Shell 字符串 str='this is a string' your_name="runoob"
string="abcd" echo ${#string} #输出 4
Shell 数组 array_name=(value0 value1 value2 value3) 创建数组:数组名=(值1 值2 … 值n)
valuen=${array_name[n]} echo ${array_name[@]} # @表示获取所有元素
length=${#array_name[@]} length=${#array_name[*]} # 获取数组长度

流程控制

https://www.runoob.com/linux/linux-shell-process-control.html

Shell 函数

https://www.runoob.com/linux/linux-shell-func.html

<未完·待续>