Linux
文章目录
一 Linux常见命令
1.查看当前的目录
pwd
2.切换目录
cd 目录名
cd .
cd ..(上一级目录)
3.查看目录内容
ls
ll(可以查看详情)
4.清屏
ctrl + l
5.新建文件夹
mkdir 文件夹名
mkdir -p 多级目录
6.删除文件夹
rm -rf 文件夹名/文件名
-r 同时删除该目录下的所有文件
-f 强制删除文件或目录
慎用 rm -rf /
7.修改文件夹(会将源文件移除掉)
mv 源文件夹 目标文件夹
mv :删除源文件
8.安装命令
yum install 需要下载的包名(例如 tree )
9.查看目录的树状结构
tree
10.文件操作(新建文件)
touch 文件名
11.拷贝文件
cp 源文件 目标文件
cp -R/-r 源目录 目标目录
12.解压文件
Linux中压缩文件的格式是 xxx.tar.gz,不是 windows 中的 .rar,.zip
tar -zxvf 压缩文件名
13.查看文件的内容
cat 文件名
more,less 分页显示文本文件内容
head,tail 查看文本中开头或结尾部分的内容
head -n a.log 查看 a.log 文件的前5行
tail -F b.log 循环读取
14.文件上传
yum -y install lrzsz
rz
15.删除空目录
rmdir
16.文件夹的权限操作
r:读(4)
w:写(2)
x:执行(1)
7:rwx
6:rw
5:rx
1:x
0:-(什么也没有)
a:所有(用户,组,其他用户)
u:用户
g:组
o:其他用户
chmod -R 777 文件夹名称( -R 是对文件夹及其子文件夹赋予同样的权限)
17.输出信息
echo "需要输出的字符串"
echo $某个变量(该操作为输出某个变量所存储的值)
18.使文件生效
source 文件名
二 用户和组账号管理
1.用户
useradd 用户名
userdel 用户名
2.组
groupadd 组名
groupdel 组名
三 vim编辑器
1.用法
vi/vim 文件名
2.模式
有三种模式,一般模式、插入模式( i a o 进入)、底行模式
3.部分底行模式命令
:set nu 显示行号
:set nonu 取消显示行号
:n 到文本的第 n 行
4.安装大数据平台
- hadoop安装及部署.txt
- 所需软件
- hadoop-2.7.3.exe
- jdk1.8.0_111.exe
- jdk 中的 ct.sym 需要替换为 ct.sym
5.安装 mysql 数据库
资料 |
---|
Linux下安装使用mysql数据库.docx |
四 常见命令汇总
资料 |
---|
Linux常见命令汇总.pdf |
Linux常用命令回顾.pdf |
Linux使用指南.docx |
shell编程.pptx |
五 Linux 的 shell 编程
1.shell 介绍
- shell 的基本概念
- shell 也是一门编程语言,即 shell 脚本, shell 是解释执行的脚本语言,可直接调用 Linux 命令。
- shell 的使用场景
- 我们安装软件的时候,需要很多的步骤,在一台电脑上操作需要10分钟,直接手工操作是不具备可复制性的。
我们可以将这些安装操作编写成为一段脚本,以后只要执行这一段代码,就可以完成安装操作。
- 我们安装软件的时候,需要很多的步骤,在一台电脑上操作需要10分钟,直接手工操作是不具备可复制性的。
2.shell 变量
- shell 程序的开发:
- 编写 xx.sh 文件
- 执行这个文件
- 执行方式
- 方式一
输入 .sh 文件的绝对路径或相对路径 绝对路径 /xx/xx.sh 相对路径 ./xx.sh 需要有执行权限 chmod +x xx.sh 执行时会新开一个 bash
- 方式二
sh 文件名 不需要执行权限 执行时会新开一个 bash
- 方式三
在脚本的路径前再加“. ” .空格 目录 不需要执行权限 执行时不会新开一个 bash
- 方式一
- 用户自定义变量
- 直接写变量名就 OK ,不需要数据类型
- 命名规则
- 变量名称可以有字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写,便于区分。
- 默认类型都是字符串,可用’'定义,也可用""定义。
- 变量用等号连接值,等号左右两侧不能有空格。
- 变量的值如果有空格,需要使用单引号或者双引号包括。
- 字符串变量的定义区别
总结:单引号不会解析变量
- 环境变量
- 用户自定义的变量在 sh 结束的时候,变量就消失了。为了做到全局配置,我们可以将变量做成全局的。
- 全局的变量也称为环境变量,环境变量必须存储在一个地方,以供其他的用户来使用。
- /etc/profile
- /home/用户名/.bash_profile (相当于 ~/bash_profile )
- 位置参数变量
- 预定义变量
3. shell 程序逻辑
1. shell 运算符
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
-
算数运算符
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。(注意使用的是反引号 ` ,而不是单引号 ’ )
案例:编写一个计算器,用户传入两个值,我们做加法,输出结果#!/bin/bash result=`expr $1 + $2` echo "sum=$result"
-
关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字
假定变量 a 为 10 ,变量 b 为 20运算符 说明 举例 -eq 检测两个数是否相等,相等返回true [ $a -eq $b ] 返回false -ne 检测两个数是否相等,不相等返回true [ $a -ne $b ] 返回true -gt 检测左边的数是否大于右边的,如果是,则返回true [ $a -gt $b ] 返回false -lt 检测左边的数是否小于右边的,如果是,则返回true [ $a -lt $b ] 返回true -ge 检测左边的数是否大于等于右边的,如果是,则返回true [ $a -ge $b ] 返回false -le 检测左边的数是否小于等于右边的,如果是,则返回true [ $a -le $b ] 返回true -
布尔运算符
假定变量 a 为 10 ,变量 b 为 20运算符 说明 举例 -a 与运算,两个表达式都为 true 才返回 true [ $a -lt 20 -a $b -gt 100 ] 返回true -o 或运算,有一个表达式为 true 则返回 true [ $a -lt 20 -o $b -gt 100 ] 返回true ! 非运算,表达式为 true 则返回 false ,否则返回 true [ ! false] 返回true -
逻辑运算符
假定变量 a 为 10 ,变量 b 为 20运算符 说明 举例 && 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回false |\ 逻辑的 OR -
字符串运算符
假定变量 a 为 “abc” ,变量 b 为 “efg”运算符 说明 举例 = 检测两个字符串是否相等,相等返回true [ $a = $b ] 返回false != 检测两个字符串是否相等,不相等返回true [ $a != $b ] 返回true -z 或 -Z 检测字符串长度是否为 0 ,为 0 返回true [ -Z $a ] 返回false -n 检测字符串长度是否为 0 ,不为 0 返回true [ -n $a ] 返回true str 检测字符串是否为空( null ) ,不为空返回true [ $a ] 返回true -
文件测试符
文件测试运算符用于检测文件的各种属性
运算符 | 说明 | 举例 |
---|---|---|
-d file | 检测文件是否是目录,如果是,则返回true | [ -d $file ] 返回false |
-f file | 检测文件是否是普通文件如果是,则返回true | [ -f $file ] 返回true |
-r file | 检测文件是否可读,如果是,则返回true | [ -r $file ] 返回true |
-w file | 检测文件是否可写 ,如果是,则返回true | [ -w $file ] 返回true |
2. 分支结构
-
test 命令用于检查某个条件是否成立
- 案例:从入口输入一个用户名字符串参数,用来做登录,admin 提示登录成功,否则登录失败
#!/bin/bash name=$1 name2="admin" if test $name = $name2 then echo "登录成功" else echo "登录失败" fi
- 案例:从入口输入一个用户名字符串参数,用来做登录,admin 提示登录成功,否则登录失败
-
常规的 if 分支语句
if 语句 语法格式: if [判断条件] then 输出结果1 输出结果2 ...... fi
#!/bin/bash score=$1 if [ $score -lt 60 ] then echo "不及格" elif [ $score -lt 70 ] then echo "及格" elif [ $score -lt 80 ] then echo "良好" else echo "优秀" fi
-
菜单样式的分支语句 case
格式为: case $变量名 in "第一个变量内容") 程序段 ;; "第二个变量内容") 程序段 ;; *) 不包含第一个变量内容与第二个变量内容的其他程序执行段 ;; esac 注意: (1) case 语句最后必须以 esac 为结尾 (2) 每一个变量内容的程序段最后都需要两个分号来表示该程序段的结束 (3) 最后的 "*" 作用表示默认的意思
-
案例一
#!/bin/bash # 输入标识 read -p "输入标识:" tag # 判断 case "$tag" in # 单个选项 1) echo "tag = 1";; # 多个选项 2|3) echo "tag = 2 or tag = 3";; # 通配符,任意内容都行 *) echo "default";; esac
-
案例二
#!/bin/bash # echo "请输入菜品 ID (1:吃鸡 2:吃鸭 3:吃鱼):" # read menu read -p "请输入菜品 ID (1:吃鸡 2:吃鸭 3:吃鱼):" menu echo "你输入的是:$menu" case $menu in "1") echo "吃鸡";; "2") echo "吃鸭";; "3") echo "吃鱼";; *) echo "吃土";; esac
-
-
注意
在 shll 脚本中,有单等号 “=” 、双等号 “==" 和 “-eq” 共3种相等判断符。
在 shel 脚本中,单等号和双等号属于算数运算符; “-eq” 属于关系运算符。
其使用场景限制:
(1) 单等号和双等号能用于字符 string 类型和整型 integer 的相等判断
(2) 相等关系运算符 “-eq" 仅能用于整型 integer 的相等比较
(3) 相等关系运算符 "-eq” 不能在算数运算表达式 “(())” 中
(4) 在条件表达式 “[]” 中,单等号和双等号等价。都是相等算数运算符
(5) 在算数运算表达式 “(())” 中,单等号是赋值算数运算符,双等号为相等算数运算符
总结:在进行相等判断时,最通用的方法是使用双等号 “==” 相等判断符
3. 循环结构
作业1:
1.分别使用 while/for 输出1~20
2.计算1~100的和并输出
3.输出1~50之间的所有的偶数
4.批量为某个文件夹下的所有文件修改扩展名