学习地址:
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 可显示文件权限,执行结果如下:
第1位 | 2~4位 | 5~7位 | 8~10位 | 数字 | user | user |
---|---|---|---|---|---|---|
文件类型 | 所有者权限 | 所有组权限 | 普通用户权限 | 执行次数 | 用户名 | 组名 |
- 普通文件 | ||||||
d 目录文件 | r 可读 | r 可读 | r 可读 | |||
p 管理文件 | w 可写 | w 可写 | w 可写 | |||
i 链接文件 | x 可执行 | x 可执行 | x 可执行 | |||
b 块设备文件 | - 无权限 | - 无权限 | - 无权限 | |||
c 字符设备文件 | ||||||
s 套接字文件 |
修改权限
命令 | 用法 | 解释 |
---|---|---|
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
<未完·待续>