第十六周-day65-Shell编程day02_判断两数大小,使用传参的方法定义变量,判断参数是否为(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

请输入指定文件路径: /server/scripts/1.sh /etc/hosts /etc/hostname
/server/scripts/1.sh /etc/hosts /etc/hostname存在
/server/scripts/1.sh /etc/hosts /etc/hostname存在
/server/scripts/1.sh /etc/hosts /etc/hostname存在




---


#### 3.3 字符串测试表达式


![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS1lNDI0ODlkOWY1YjgyZjY0LnBuZw)



#################
#判断变量是否存在
#################
[root@shell ~]# a=111
[root@shell ~]# b=1111
[root@shell ~]# test “ a " = " a" = " a"="b” && echo ture||echo false
false
[root@shell ~]# test “ a " = " a"=" a"="b” && echo ture||echo false
ture
[root@shell ~]# echo $a
111
[root@shell ~]# echo $b
1111

[root@shell scripts]# test -n “KaTeX parse error: Expected 'EOF', got '&' at position 4: a" &̲& echo ture||ec…a” && echo ture||echo false
false
[root@shell scripts]# echo KaTeX parse error: Expected 'EOF', got '#' at position 27: …@shell scripts]#̲ unset a [root@…a" && echo ture||echo false
false
[root@shell scripts]# test -z “$a” && echo ture||echo false
ture


##### ※3.4 练习


![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS03MzlhNTZiZGFhZTg0OGUxLnBuZw)



> 
> **1. 方法第一种**
> 
> 
> 



#第二种
[root@shell scripts]# cat testday2-3-2.sh
#!/bin/bash

判断传入参数的个数

[ “$#” != “2” ] && {
echo “参数必须为2 Usage <$0 arg1 arg2>”
exit 1
}

# 判断传参是否为整数
expr $1 + $2 + 1 &> /dev/null
[ "$?" != "0" ] && {
  echo "参数必须为整数"
    exit 2
}  

echo -n '相加: '; echo $(($1+$2))
echo -n '相减: '; echo $(($1-$2))
echo -n '相乘: '; echo $(($1\*$2))
echo -n '幂运算: '; echo $(($1\*\*$2))
# 判断除数是否为0
[ "$2" = "0" ] && {
    echo "除数必须不能为0!!!"
        exit 3
    }
    echo -n '相除: '; echo $(($1/$2))
    echo -n '取余: '; echo $(($1%$2))
    [root@shell scripts]# sh testday2-3-2.sh 5 6.1

参数必须为整数
[root@shell scripts]# sh testday2-3-2.sh 5 6 7
参数必须为2 Usage <testday2-3-2.sh arg1 arg2>
[root@shell scripts]# sh testday2-3-2.sh 5 0
相加: 5
相减: 5
相乘: 0
幂运算: 1
除数必须不能为0!!!
[root@shell scripts]# sh testday2-3-2.sh 6 3
相加: 9
相减: 3
相乘: 18
幂运算: 216
相除: 2
取余: 0



> 
> **2.方法第二种**
> 
> 
> 



#第三种 read读入默认2个参数

[root@shell scripts]# cat testday2-5.sh
#!/bin/bash
##############################################################

File Name: testday2-5.sh

Version: V1.0

Author: lcx

Organization: www.oldboyedu.com

##############################################################
read -p “请输入需要计算的内容:” m n

判断传参是否为整数

expr $m + KaTeX parse error: Expected 'EOF', got '&' at position 7: n + 1 &̲> /dev/null [ "?" != “0” ] && {
echo “参数必须为整数”
exit 2
}

echo -n '相加: '; echo ( ( (( ((m+$n))
echo -n '相减: '; echo ( ( (( ((m-$n))
echo -n '相乘: '; echo ( ( (( ((m*$n))
echo -n '幂运算: '; echo ( ( (( ((m**$n))

判断除数是否为0

[ “$n” = “0” ] && {
echo “除数必须不能为0!!!”
exit 3
}
echo -n '相除: '; echo ( ( (( ((m/$n))
echo -n '取余: '; echo ( ( (( ((m%$n))
[root@shell scripts]# sh testday2-5.sh
请输入需要计算的内容:5 6 7
参数必须为整数
[root@shell scripts]# sh testday2-5.sh
请输入需要计算的内容:5 6.1
参数必须为整数
[root@shell scripts]# sh testday2-5.sh
请输入需要计算的内容:5 0
相加: 5
相减: 5
相乘: 0
幂运算: 1
除数必须不能为0!!!
[root@shell scripts]# sh testday2-5.sh
请输入需要计算的内容:4 6
相加: 10
相减: -2
相乘: 24
幂运算: 4096
相除: 0
取余: 4


#### 4. 整数二元比较操作符


![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS1hMjFlMTdmYzUxODA3OGZlLnBuZw)


![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS1jMDliYzQ2ZDNjZWQ5MDk3LnBuZw)



> 
> ##### 查看当前磁盘/当前状态,如果使用率超过10%,则触发报警发邮件
> 
> 
> 



[root@shell scripts]# df -h|awk ‘NR==2{print $(NF-1)}’
11%

[root@shell scripts]# df -h|awk ‘NR==2{print $(NF-1)}’
11%
[root@shell scripts]# cat testday2-6.sh
#!/bin/bash
##############################################################

File Name: testday2-6.sh

Version: V1.0

Author: lcx

Organization: www.oldboyedu.com

##############################################################
#查看当前磁盘/当前状态,如果使用率超过10%,则触发报警发邮件
use=df -h|awk 'NR==2{print $(NF-1)}'
userNum=${use/%/}
[ KaTeX parse error: Expected 'EOF', got '&' at position 18: …erNum -gt 10 ] &̲& { echo "s…use"
echo “shell服务器磁盘使用率超过$use”|mail -s “磁盘不足” 245684979@qq.com
}
[root@shell scripts]# sh testday2-6.sh
shell服务器磁盘使用率超过11%


![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS1iOTI4MTI3MTdiYjRlNjI0LnBuZw)



> 
> ##### 查看内存使用状况,如果占用超过10%,则触发报警
> 
> 
> 



[root@shell day02]# cat testday2-7.sh
#!/bin/bash
##############################################################

File Name: testday2-7.sh

Version: V1.0

Author: lcx

Organization: www.oldboyedu.com

##############################################################
#查看内存使用状况,如果占用超过10%,则触发报警
free=free -h|awk 'NR==2{print $3/$2\*100}'
freeNum=${free/.*/}
[ KaTeX parse error: Expected 'EOF', got '&' at position 17: …reeNum -gt 5 ] &̲& { echo "s…{freeNum}%"
echo “shell服务器内存使用率超过${freeNum}%”|mail -s “内存不足” 245684979@qq.com
}
[root@shell day02]# sh testday2-7.sh
shell服务器内存使用率超过9%


![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS0wYTI4YzkzZjU3MDA5OTliLnBuZw)




---


#### 5.逻辑操作符


![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS1kYjMyZjI5OTJhM2ZlODMxLnBuZw)



#练习查看结果

[ -f ip.sh -a 2 -lt 3 ]&& echo 0||echo 1

0

[ -f ip.sh -a 2 -lt 3 -a 5 -gt 6 ]&& echo 0||echo 1

1

[ -f ip.sh -o 2 -gt 3 ]&& echo 0||echo 1

0

[ -f ip1.sh -o 2 -gt 3 ]&& echo 0||echo 1

1

[ ! -f ip1.sh -o 2 -gt 3 ]&& echo 0||echo 1

0

[ -f ip.sh ] && [ 2 -lt 3 ] && [ 2 -lt 3 ]&&echo 0||echo 1

0

[ -f ip.sh ] && [ 2 -lt 3 ] && [ 2 -eq 3 ]&&echo 0||echo 1

1

[ -f ip.sh ] && [ 2 -lt 3 ] && [ 2 -lt 3 ]&&echo 0||echo 1

0

[[ -f ip.sh ]] && [[ 2 -lt 3 ]] && [[ 3 -gt 2 ]]&&echo 0||echo 1

0




---


#### 6. 练习


![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS05NTliYjc1NzVkYjY1YjhmLnBuZw)



> 
> 1、 输入或者通过命令传入一个字符或者数字,如果传入的数字**等于1就打印1**,如果**等于2就打印2**;如果**不等于1也不等于2,就提示输入不对**,然后退出程序。(两种比较方式任选其一:数字比较或字符串比较)
> 
> 
> 



[root@shell day02]# cat testday2-10.sh
#!/bin/bash
##############################################################

File Name: testday2-10.sh

Version: V1.0

Author: lcx

Organization: www.oldboyedu.com

##############################################################

read -p “请输入一个字符或者数字:” a

[ $a -eq 1 ]&& {
echo $a
exit 0
}||
[ $a -eq 2 ]&& {
echo $a
exit 0
}||
echo 输入错误!
exit 1
}

#[ $a -ne 1 -a $a -ne 2 ]&& echo 输入错误!
[root@shell day02]# sh testday2-10.sh
请输入一个字符或者数字:1
1
[root@shell day02]# sh testday2-10.sh
请输入一个字符或者数字:2
2
[root@shell day02]# sh testday2-10.sh
请输入一个字符或者数字:3
输入错误!



> 
> 2、 开发shell脚本,分别以脚本传参方式和read读入方式比较两个整数大小,用条件表达式(禁止if)进行判断并以屏幕输出的方式提醒用户比较结果。(一共需要开发2个脚本,在传参和read读入方式实现时,需要对变量是否为数字及传参个数是否正确给予提示)
> 
> 
> 



> 
> 1)判断是否是两个参数
> 
> 
> 2)判断是否为整数
> 
> 
> 3)[ 2 -gt 3 ] && echo “2大于3”|| echo “2等于3”|| echo “2小于3“
> 
> 
> 



#第一种
[root@shell scripts]# cat testday2-8.sh
#!/bin/bash
#read读入方式
read -p “请输入两个整数: " a b
#判断是否为整数
expr $a + $b &> /dev/null
[ $? -eq 0 ]&& echo 参数正确!||{
echo “参数必须为整数”
exit 2:
}
[ $a -gt KaTeX parse error: Expected 'EOF', got '&' at position 4: b ]&̲& { echo "数…a] > [$b]”
}
[ $a -lt KaTeX parse error: Expected 'EOF', got '&' at position 4: b ]&̲& { echo "数…a] < [$b] "
}
[ $a -eq KaTeX parse error: Expected 'EOF', got '&' at position 4: b ]&̲& { echo "数…a] = [$b]"
}
[root@shell scripts]# sh testday2-8.sh
请输入两个整数: 5 6
参数正确!
数值对比: [5] < [6]
[root@shell scripts]# sh testday2-8.sh
请输入两个整数: 8 1
参数正确!
数值对比: [8] > [1]
[root@shell scripts]# sh testday2-8.sh
请输入两个整数: 8 8
参数正确!
数值对比: [8] = [8]
[root@shell scripts]# sh testday2-8.sh
请输入两个整数: 2.1 1
参数必须为整数



#第二种
[root@shell scripts]# cat testday2-9.sh
#!/bin/bash
#取参方式
a=$1
b=$2

#判断是否为整数
expr $a + $b &> /dev/null
[ $? -eq 0 ]&& echo 参数正确!||{
echo “参数必须为整数”
exit
}
[ $a -gt KaTeX parse error: Expected 'EOF', got '&' at position 4: b ]&̲& { echo "数…a] > [$b]"
}
[ $a -lt KaTeX parse error: Expected 'EOF', got '&' at position 4: b ]&̲& { echo "数…a] < [$b] "
}
[ $a -eq KaTeX parse error: Expected 'EOF', got '&' at position 4: b ]&̲& { echo "数…a] = [$b]"
}
[root@shell scripts]# sh testday2-9.sh 8 8
参数正确!
数值对比: [8] = [8]
[root@shell scripts]# sh testday2-9.sh 8 6
参数正确!
数值对比: [8] > [6]
[root@shell scripts]# sh testday2-9.sh 6 8
参数正确!
数值对比: [6] < [8]
[root@shell scripts]# sh testday2-9.sh 6 8.1
参数必须为整数



> 
> **3、 打印菜单,按照选择项选择你喜欢的美女**
> 
> 
> 



> 
> 示例菜单:
> 
> 
> 
> ```
> [root@oldboy scripts]# sh meinv.sh
> 
> 1.heijiajia
> 
> 2.高圆圆
> 
> 3.蔡徐坤
> 
> please input the num you like: 
> 
> ```
> 
> 要求:
> 
> 
> 1)当用户输入1时,输出“I guess you like heijiajia”,然后退出脚本
> 
> 
> 2)当用户输入非1-3的字符时,输出“I guess you are not man”,然后退出脚本
> 
> 
> 



[root@shell scripts]# cat caidan.sh
#!/bin/bash
prefix="I guess you like "

#菜单
cat <<EOF
1.heijiajia
2.高圆圆
3.蔡徐坤
EOF

read -p "please input the num you like: " num
[ KaTeX parse error: Expected 'EOF', got '&' at position 15: num -eq "1" ] &̲& { echo "prefix"heijiajia
}
[ KaTeX parse error: Expected 'EOF', got '&' at position 15: num -eq "2" ] &̲& { echo "prefix"高圆圆
}
[ $num -eq “3” ] && {
echo “打篮球那个 Are You OK??”
}

#echo -e “\t1.heijiajia\n\t2.gaoyuanyuan\n\t3.caixukun”

[root@shell scripts]# sh caidan.sh
1.heijiajia
2.高圆圆
3.蔡徐坤
please input the num you like: 1
I guess you like heijiajia
[root@shell scripts]# sh caidan.sh
1.heijiajia
2.高圆圆
3.蔡徐坤
please input the num you like: 2
I guess you like 高圆圆
[root@shell scripts]# sh caidan.sh
1.heijiajia
2.高圆圆
3.蔡徐坤
please input the num you like: 3
打篮球那个 Are You OK??




---


#### 7.Shell练习作业



> 
> **1.检查OSPF route-ID配置,配置如下,请用shell编写代码,条件如下:**
> 
> 
> 



检查OSPF route-ID配置,配置如下,请用shell编写代码,条件如下:
1、检查ospf的route-id值
2、route-id值必须与interface LoopBack0的IP地址值相同
grep -A 1 “interface LoopBack0” 3.txt | sed -n ‘$p’ | awk '{print $3}
3、如果两个值不相等,或ospf的route-id值不以139开头,则打印出route-id的值
ofpf 100
route-id 139.11.0.1
area 0.0.0.0
network 139.11.0.1 0.0.0.0
network 140.11.0.0 0.0.0.3
network 140.11.0.8 0.0.0.3
network 140.11.0.16 0.0.0.3
network 140.11.0.24 0.0.0.3
network 140.11.0.32 0.0.0.3

interface LoopBack0
ip address 139.11.0.1 255.255.255.255



> 
> ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS01Mzc2MGZkNGEwMTZlMDUwLnBuZw)  
>  ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS03ZjVmZDEzMmM1ZTg1ZTIzLnBuZw)
> 
> 
> 



[root@shell day02]# vim zuoye01.sh
1 #!/bin/bash
2 ##############################################################
3 # File Name: zuoye01.sh
4 # Version: V1.0
5 # Author: lcx
6 # Organization: www.oldboyedu.com
7 ##############################################################
8 #ospf route-ID配置文件路径/server/scripts/day02/3.txt
9 dir=/server/scripts/day02/3.txt
10 routeID=cat $dir |awk 'NR==2{print $2}'
11 interfaceIP=grep -A 1 "interface LoopBack0" $dir|awk 'NR==2{print $3}'
12 routeIPhead=cat $dir |awk -F"[ .]+" 'NR==2{print $2}'
13 head=“139”
14 #检查ospf的route-id值
15 echo “osps的route-id为: KaTeX parse error: Expected 'EOF', got '#' at position 14: routeID" 16 #̲检查route-id与inte…routeID” != “KaTeX parse error: Expected 'EOF', got '&' at position 15: interfaceIP" ]&̲&{ 18 echo…interfaceIP ID为KaTeX parse error: Expected 'EOF', got '}' at position 14: routeID" 19 }̲ 20 [ "routeIPhead” != “139” ]&&{
21 echo “2.route-id的值不是139开头 routeID为:$routeID”
22 }
[root@shell day02]# sh zuoye01.sh
osps的route-id为: 239.11.0.1
1.IP与ID不相等 IP为:139.11.0.1 ID为239.11.0.1
2.route-id的值不是139开头 routeID为:239.11.0.1
[root@shell day02]# sh zuoye01.sh
osps的route-id为: 139.11.0.1



> 
> **2.处理以下文件内容,将域名提取并进行计数排序,如处理:**
> 
> 
> 



处理以下文件内容,将域名提取并进行计数排序,如处理:
http://www.baidu.com/index.html
http://www.baidu.com/1.html
http://post.baidu.com/index.html
http://mp3.baidu.com/index.html
http://www.baidu.com/3.html
http://post.baidu.com/2.html
得到如下结果:
域名的出现次数 域名
3 www.baidu.com
2 post.baidu.com
1 mp3.baidu.com



> 
> 思路:  
>  ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS1kZGU0ZTEyODE1NzEzNzEwLnBuZw)
> 
> 
> 



[root@shell day02]# cat 4.txt |awk -F’[/]’ ‘{print $3}’|sort|uniq -c|sort -rn|sed ‘1i域名的出现次数 域名’
域名的出现次数 域名
3 www.baidu.com
2 post.baidu.com
1 mp3.baidu.com



> 
> **3.打印菜单,按照选择项一键安装不同的web服务**
> 
> 
> 



打印菜单,按照选择项一键安装不同的web服务
示例菜单:
[root@oldboy scripts]# sh menu.sh
1.[install lnmp]
2.[install lamp]
3.[exit]
please input the num you want:
要求:
1)当用户输入1时,输出“start installing lamp提示”,然后执行/server/scripts/lamp.sh,(执行方式使用全路径方式执行)。
脚本内容输出“lamp is installed”并退出脚本,此为工作中的一键安装lamp脚本
2)当用户输入2时,输出“start installing lnmp提示”,然后执行/server/scripts/lnmp.sh, (执行方式使用 全路径方式执行)。
脚本内容输出“lnmp is installed”并退出脚本,此为工作中的一键安装lnmp脚本
3)当输出3时,退出当前菜单及脚本
4)当用户输入非1-3的字符时,输出“Input Error”,然后退出脚本
5)对执行的脚本进行相关的条件判断,例如:脚本是否存在,是否可执行等操作,尽量使用今天讲的知识点


![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNjk1MjE0OS0wMTgwMWZmNTk3YmMwNmIzLnBuZw)



#技术水平有限,不求精简只求实现

[root@shell day02]# cat zuoye02.sh
#!/bin/bash
##############################################################

File Name: zuoye02.sh

Version: V1.0

Author: lcx

Organization: www.oldboyedu.com

##############################################################
#检测脚本是否存在且非空,是否可执行
file1=[ -s /server/scripts/lamp.sh ]&& echo ture||echo fluse
file2=[ -s /server/scripts/lnmp.sh ]&& echo ture||echo fluse
exec1=[ -x /server/scripts/lamp.sh ]&& echo ture||echo fluse
exec2=[ -x /server/scripts/lnmp.sh ]&& echo ture||echo fluse
[ $file1 = “ture” ]&& echo lamp.sh脚本文件存在且非空||{
echo “lamp.sh脚本文件不存在或是一个空文件!!!”
}&&{
[ $exec1 = “ture” ]&& echo lamp.sh脚本文件可以执行||{
echo “lamp.sh脚本文件不可执行!!!”
}&&{
[ $file2 = “ture” ]&& echo lnmp.sh脚本文件存在且非空||
echo -eq “lnmp.sh脚本文件不存在或是一个空文件!!!”
}&&{
[ $exec2 = “ture” ]&& echo lnmp.sh脚本文件可以执行||{
echo “lnmp.sh脚本文件不可执行!!!”
exit
}
}
}
#打印菜单,按照选择项一键安装不同的web服务
cat <<EOF
1.[install lnmp]
2.[install lamp]
3.[exit]
EOF

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值