走进命令行的世界
Linux初探
基本命令
日期与时间
1 | date # 查看当前时间 |
文件操作
1 | cd ~ # 切换到家目录 |
文件查看
1 | cat invictus # 输出文件内容 |
命令路径查看
1 | which git # 查看某个命令的路径 |
文件结构与权限
文件结构
Linux文件属性
- 用户身份
- 拥有者(user)
- 用户组(group)
- 其他人(others)
- 权限
- 可读(r)
- 对于文件:可以使用类似cat命令查看
- 对于目录:可以使用类似ls命令查看
- 可写(w)
- 对于文件:可以使用类似vim命令进行更改
- 对于目录:可以使用类似touch命令在目录中创建新文件
- 可执行(x)
- 对于文件:可以运行
- 对于目录:可以使用类似cd命令进入
- 可读(r)
- 类型
- 目录(d)
- 文件(-)
- 链接(l)
1 | pwd # 查看当前路径 |
权限更改
1 | cd ~ |
grep命令与正则表达式
1 | ls |
变量
普通变量
1 | a=10 |
全局变量
1 | echo $USER ##当前登陆系统的用户的用户名 |
1 | echo $PATH ##等价于windows中环境变量->系统变量->Path |
打包与解包
zip与unzip
1 | ls # 空目录 |
- 如果需要打包的文件很多,则可以使用
-r
选项来递归的打包
1 | ## 该shell脚本将在该目录下创建10个文本文件 |
- 我们运行以上脚本来产生足够多的文件,并使用
zip -r
命令全部打包
1 | ls |
- 既然打包完成了,我们可以使用
unzip
命令对.zip
文件解包,可以使用-d
选项指定输出目录
1 | mkdir unzip # 创建unzip/目录,之后会解包到该目录 |
- 有时候我们并不像解压,只是简单的查看
.zip
文件中所包含的内容,则可以使用unzip -l
1 | unzip -l file.zip # 使用-l选项列出file.zip中所包含的所有文件 |
tar
1 | tar --help |
压缩与提取
.xz
1 | xz --help |
.bz2
1 | bzip2 --help |
.gz
1 | gzip --help |
Shell 脚本
控制语句与变量
shell脚本的关系操作符
>
—>-gt
<
—>-lt
>=
—>-ge
<=
—>-le
==
—>-eq
!=
—>-ne
shell脚本的if语句
1 | if [ ... ] |
shell脚本的for语句
1 | for x in ... |
shell脚本的while语句
1 | while [ ... ] |
重定向
1 | ls |
算术操作符
1 | + # 加法 |
举例
简单的shell脚本
- 脚本
1 | ls |
- 输出(运行
sh file.sh
命令)
1 | invictus |
变量的赋值与运行
- 脚本
1 | a=10 # 对变量的赋值操作符两边不能有空格 |
- 输出
1 | 10 |
字符串输出
- 脚本
1 | a=10 |
- 输出
1 | 10 |
字符串的连续输出
- 脚本
1 | a=10 |
- 输出
1 | 10 |
echo输出
- 脚本
1 | a=10 |
- 输出
1 | Hello World 10 |
变量求和并输出
- 脚本
1 | a=10 |
- 输出
1 | 13 |
变量求和并输出
- 脚本
1 | a=10 |
- 输出
1 | 30 |
条件语句
- 脚本
1 | a=1 |
- 输出
1 | 3 |
for循环
- 脚本
1 | for x in 1 2 3 4 5 6 7 8 9 # for语句格式 |
- 输出
1 | 1 |
while循环
- 脚本
1 | x=1 |
- 输出
1 | 1 |
字符串与数组
字符串变量
- 脚本
1 | a="hello" |
- 输出
1 | hello |
输入与输出
- 脚本
1 | echo "Please enter a = " |
- 输出
1 | Please enter a = |
字符串的比较
- 脚本
1 | password="hello123" |
- 输出
1 | Please enter a password: |
字符串拼接
- 脚本
1 | str1="hello" |
- 输出
1 | hello world |
判断字符串是否为空
- 脚本
1 | string="" |
- 输出
1 | string is zero |
数组定义(需要bash运行而不是sh)
- 脚本
1 | arr=(7 8 9 10) # 数组定义 |
- 输出(应该使用bash filename.sh命令)
1 | test.sh: 1: test.sh: Syntax error: "(" unexpected # 使用sh命令会报错 |
数组遍历
- 脚本
1 | arr=(7 8 9 10) |
- 输出
1 | 7 |
下载
1 | wget --help |
下载该教程
以下方法可以下载该教程的PDF版本以及HTML版本
- 使用git
git clone https://github.com/wangyuxiang0829/My-Perspective-on-Linux.git
- 访问网页
https://github.com/wangyuxiang0829/My-Perspective-on-Linux.git