Linux

Linux概述

Linux是具备现代一切功能完整的Unix系统所具备的全部特征,其中包括真正的多任务、虚拟内存、共享库、需求装载、共享的写时复制程序执行、优秀的内存管理以及TCP/IP网络支持等。
Linux的基本思想有两点:
第一:一切都是文件,系统中的所有都归结为一个文件包括命令、硬件、软件设备、操作系统、进程等等
第二:每个软件都有确定的用途
Linux是一款免费的操作系统,并可以任意修改其源代码,多用户多任务
内核版本——主版本号.次版本号.修订次数 www.kernel.org
奇数版本——开发版本 2.5.1
偶数版本——稳定版本 2.6.1

Linux目录结构

FHS标准:
/boot:启动目录,内核存放地
/etc:配置文件存放地(例如网络配置文件)
/tmp:程序产生的临时文件
/home:用户的目录,存放用户,新建用户账号时,用户的家目录都存放在此目录
/lib:库文件,程序执行过程中,需要额外调用一些参数需要函数库协助
/bin:可执行文件和常用Linux命令
/sbin:系统管理员的命令和工具
/usr:应用程序和文件的安装地
/mnt:挂载其他的文件系统
/root:root账户的home目录,根目录
/dev:存放Linux系统下的设备文件

vi编辑器

vi生成新文件或者编辑查看文件 i插入文本 a追加文本 使用Esc键可以从编辑模式进入命令模式
Linux中切换中英文:CTRL+空格
命令模式可执行操作:
:w 保存文件
:wq 保存并且退出
:wq! 保存并且强制退出
:q 退出
:q! 强制退出
dd 删除一行文字
x 删除一个字符
:n 光标移至文本第n行
/ 查找某个字符串
G 光标移动至文本末尾
$光标移动至文本行尾

Linux命令

Linux管理文件和目录的指令
pwd打印当前用户所处路径
cd改变用户所在目录 cd …(上一级)cd(主目录)cd /home
ls显示指定目录下的内容 -l所有信息细节 -a全部文件 -al所有文件(隐藏文件)的详细信息 -R递归列举当前目录子目录
grep某个文件查找特定字符串 grep money 1.txt
cp拷贝文件(可以重新命令)cp /home/1.txt /root/2.txt -r递归复制整个目录、子目录和其他 -v显示复制进度 -i互动,覆盖目标文件,会询问
mv剪切文件或者目录 -i互动 -f强制不提示 -v显示移动进度
mkdir创建目录 mkdir -p aa/bb 创建嵌套目录
rmdir删除空目录 -p若删除的指定目录上层目录也空一起删除
rm删除文件 -i互动 -f强制不提示 -v进度 -r递归
touch 1 2 3创建多个文件
cat查看文件内容
线上查询的命令
man查询命令使用方法 man ls 退出按q
locate定位文件和目录 locate 文件或者目录名
whatis查询某个命令的含义 whatis mv
文件备份和压缩命令
bzip2压缩文件 bzip2 filename
bunzip2解压缩文件 bunzip2 filename.bz2
gzip压缩文件 -r递归,将目录下所有文件以及子目录一起处理
gunzip解压缩 gunzip filename.gz
tar将文件或者目录进行压缩或者解压缩:
tar [参数] [压缩后文件名] [需要压缩的文件或目录]

压缩
tar cvf xxx.tar 要压缩的文件或者目录
解压缩
tar xvf xxx.tar
不进行解压的情况下,显示压缩文件里面所包含的内容
tar tvf xxx.tar

-c压缩
-x解压缩
-t不解压的时候看压缩文件里面的文件列表
-z(gz格式)tar+gzip
-j(bz2格式)tar+bzip2
-v提示当前有哪些文件进行处理
-f指定压缩后文件名字
文件阅读的命令
head查看文件的开头部分 head -20 filename 默认前十行
tail查看文件结尾的后10行
more按页查看文件内容:
空格键和b键前后移动
-num一次显示行数
-f统计行数(除自动换行之外,自动换行统计成的也是一行) +num从num行开始显示
more +/查找字符串 文件名 从文件中查找第一个出现字符串的前两行显示
|管道将前面命令输出当作后面命令的输入 ls -al /etc | more -5
定位查找文件的命令
which从path环境变量所列目录中找出命令位置,显示完整的路径
whereis程序名搜索 -b只查找二进制文件 whereis -b passwd
管理使用者和设立权限的命令
chmod改变许可权限
权限组成 十位 -rw-r–r--
第一位:文件类型 -普通文档 d目录
第一组(三位):文件主人的权限 u
第二组:和文件主任同组成员的权限 g
第三组:其他人的权限 o
chmod u/g/o+/-/=权限 文件或者目录 chmod u+r b
数字表示权限 4读取 2写入 1执行
chmod 751 filename
chmod u=rwx,g=rx,o=x filename
useradd与userdel添加和删除用户
userdel -r 用户名 不仅删除用户,还把用户相关的目录文件一起清除
chgrp用于变更文件目录所属群组
chown更改文件拥有者主人(root才有权限)
su切换用户
passwd修改用户密码 passwd 用户名
有关关机和查看系统信息命令
exit退出
文本模式下使用快捷键CTRL+D
重新启动 reboot 或者 shutdown -r

shell

shell是指一种应用程序,提供了一个界面,用户提供这个界面访问操作系统内核服务
脚本和环境
脚本:可以被执行的文档
shell脚本:一种为shell编写的脚本
shell环境:编写代码的文本编辑器vi和一个解释执行的脚本编辑器 /bin/bash(bash就是指令,可以解析脚本)
shell将许多命令写在一起,让用户很轻松的执行一个文件的shell脚本,能够一次执行多个命令
脚本编写
vi 脚本的名字.sh
脚本第一行格式:
#!/bin/bash #!用来指定该脚本文件的解析程序
使得脚本具有可执行属性
chmod +x filename.sh
执行
.filename.sh
/bin/bash filename.sh(推荐)
shell变量

  • 用户自定义变量
    在shell编程中,支持的唯一类型的变量就是字符串,使用一个定义过的变量,只要在变量前面加上美元符号$即可 $变量名
#!/bin/bash 
your_name="yl"
a=2
echo ${your_name}

变量名外面的花括号可选
只读变量 readonly 变量名
删除变量 unset 变量名 删除后不能再次使用,不能删除只读变量

  • 系统默认变量 echo $PATH

字符串操作

  • 拼接字符串
#!/bin/bash 
your_name="yl"
pj="hello,${your_name}"
echo $pj
  • 获取字符串长度 ${#变量的名字}
#!/bin/bash 
your_name="yl"
echo ${#your_name}
  • 提取字符串
    以下实例从字符串第2个字符开始截取4个字符
    ${变量名:截取字符串下标:截取的长度}
    字符串中,下标是从0开始的
#!/bin/bash 
str="my teacher is boy"
echo ${str:1:4}

shell数组
array=(value0 value1 value3…valuen)

name=(12 32 5 43)
str=("ds" "yl" "fsd")

读取数组 ${数组名[下标]}
使用@符号可以获取数组中所有元素

echo ${str[1]}
echo ${str[@]}

获取数组长度

length=${#array_name[@]}

获取单个元素的长度

length=${#array_name[n]}

shell注释
以#开头的行就是注释,会被解释器忽略,没有多行注释,只有单行注释
shell基本运算符
expr是表达式计算工具,使用它能够完成表达式的求值操作

#!/bin/bash 
val=`expr 2+2`
echo "sum: $val"

shell中判断条件
1、if-else
if [ 判断条件 ]
then
语句块
else
语句块
fi

#!/bin/bash 
str1="fsd"
str2="fsdfsd"
if test $str1=$str2 #相当于 if [ $str1=$str2 ]
then 
	echo '两个字符串相等'
else
	echo '两个字符串不相等'
fi

if [ 判断条件1 ]
then
语句块1
elif [ 判断条件2 ]
then
语句块2
elif [ 判断条件3 ]
then
语句块3
else
语句块4
fi
2、case-esac
case $变量 in
“第一个变量内容”)
程序段1
;;
“第二个变量内容”)
程序段2
;;
“第n个变量内容”)
程序段n
;;
*)
都不成功,则执行默认的
;;
esac

#/bin/bash
echo "请输入数字:"
read a
case $a in
	"1")
	echo "北京烤鸭1"
	;;
	"2")
	echo "北京烤鸭2"
	;;
	"3")
	echo "北京烤鸭3"
	;;
	*)
	echo "满汉全席"
	;;
esac

关系运算符
-eq相等,相等true
-ne,不相等true
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
布尔运算符
!非运算
-o 或运算,有一个表达式为true,返回true
-a 与运算,两个表达式为true,才返回true
逻辑运算符
&& 逻辑and [[ $a -lt 100 && $b -gt 100]]
|| 逻辑or
字符串运算符
=相等 [ $a = $b ]
!=不相等 [ $a != $b ]
-z 字符串长度为0,返回true [ -z $b ]
-n字符串长度不为0返回true
str检测字符串是否为空 [ $str ] 不为空返回true
文件测试运算符
-d file 检测文件是否目录
-f file 检测文件是否普通文件
-r file 检测文件是否可读
-w file 检测文件是否可写
-x file 检测文件是否可执行
-s file 检测文件是否为空,文件大小是否大于0
-e file 检测文件目录是否存在
转义字符
格式:\进行转义操作 echo " “it is a test” "
常见转义字符 \b后退 \n换行 \t水平制表符 \ 反斜杠字符
特殊符号不需要开启转义
其他的要开启转义(-e) \b \n \t

#!/bin/bash 
echo -e "OK! \c" #开启转义 \c不换行
echo -e "hello\nworld"
echo -e "testing\b1234" #删除前一个字符testin1234

echo命令
1、显示转义字符
2、显示变量
read命令 从标准输入中读取一行,并把输入行的每个字段值指定给shell变量

#!/bin/bash 
echo "请输入你的名字:"
read name
echo "$name it is a test" 

3、显示换行
4、显示不换行
5、显示结果定向至文件
定向符>(覆盖) 把操作的结构保存在指定的文件中 >>(追加)

#!/bin/bash 
echo "it is a test" > myfile
echo "it is a test" >> myfile1

6、显示命令执行结果

#!/bin/bash 
echo `date` # 反引号,不是单引号

数值运算
$(()),对括号内的表达式求值

```bash
#!/bin/bash 
echo "请输入第一个数字:"
read name1
echo "请输入第二个数字:"
read name2
total=$(($num1*$num2))
echo "total=$total" 

循环
1、
while ((判断条件))
do
程序段
done

#/bin/bash
#循环变量
i=1
while (($i<=5))
do
 echo $i
 let "i++"
done

let命令,用于执行一个或者多个表达式,变量计算中不需要加上$来表示变量
2、
for 变量名 in 值1 值2 值3
do
程序段
done

for 变量名 in 值1 值2 值3;do
程序段
done
注意:
1、自定义变量赋值=左右两边不能有空格
2、BASH中语句结尾不需要分号
3、read从终端键盘获取用户输入值
4、[ “$name” == “yl” ] 中括号两边分别有一个空格,==与两边组件之间也各有一个空格,中括号内的变量最好使用双引号来设置
shell函数
函数就是将shell脚本程序划分成为一个个功能独立的代码块
格式1:
function 函数名(){
函数体
}
格式2:
函数名(){
函数体
}
执行:
函数名
直接使用函数名即可调用某个函数

#/bin/bash
function say(){
	echo "hello!world"
}
s(){
 	echo "hello!world"
}
say #调用
s

return 返回值,结果返回不输出
在shell中调用函数时可以向其传递参数,在函数内部通过$n的形式来获取参数的值,当n>=10,需要使用{n}来获取参数

#/bin/bash
fun(){
	echo "第一个参数是$1"
	echo "第二个参数是$2"
	echo "第十个参数是${10}"
	echo "第十一个参数是${11}"
	echo "参数总数是$#个"
	echo "作为一个字符串输出所有参数$*"
}
fun 1 2 3 4 5 6 7 8 9 10 11 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值