Linux 实战技能 100 讲
尹会生
前游戏公司技术总监,前新浪网技术经理
47505 人已学习
新⼈⾸单¥68
课程目录
已完结/共 118 讲
第五章:文本操作篇 (15讲)
Linux 实战技能 100 讲
登录|注册
留言
7
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 79 | 自定义函数
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 什么是Linux
04 | Linux的内核版本及常见发行版
05 | 安装VirtualBox虚拟机
06 | 在虚拟机中安装Linux系统
07 | 第一次启动Linux
08 | 万能的帮助命令:man、help、info
09 | 初识pwd和ls命令
10 | 详解ls命令
11 | 详解cd命令
12 | 创建和删除目录
13 | 复制和移动目录
14 | 如何在Linux下进行文本查看
15 | 打包压缩和解压缩
16 | Vim的四种模式
17 | Vim的正常模式
18 | Vim的命令模式
19 | Vim的可视模式
20 | 用户和用户组管理及密码管理
21 | su和sudo命令的区别和使用方法
22 | 用户和用户组的配置文件介绍
23 | 文件与目录权限的表示方法
24 | 文件权限的修改方法和数字表示方法
25 | 权限管理以及文件的特殊权限
26 | 网络管理
27 | 查看网络配置
28 | 修改网络配置
29 | 网络故障排除命令
30 | 网络管理和配置文件
31 | 软件包管理器的使用
32 | 使用rpm命令安装软件包
33 | 使用yum包管理器安装软件包
34 | 通过源代码编译安装软件包
35 | 如何进行内核升级
36 | grub配置文件介绍
37 | 使用ps和top命令查看进程
38 | 进程的控制与进程之间的关系
39 | 进程的通信方式与信号:kill命令
40 | 守护进程
41 | screen命令和系统日志
42 | 服务管理工具systemctl
43 | SELinux简介
44 | 内存与磁盘管理
45 | 内存查看命令
46 | 磁盘分区和文件大小查看
47 | 文件系统管理
48 | i节点和数据块操作
49 | 分区和挂载
50 | 分区和挂载磁盘配额
51 | 交换分区swap的查看与创建
52 | 软件RAID的使用
53 | 逻辑卷LVM的用途与创建
54 | 系统综合状态查看命令sar以及第三方命令
55 | 什么是Shell
56 | Linux的启动过程
57 | Shell脚本的格式
58 | 脚本不同执行方式的影响
59 | 管道
60 | 重定向
61 | 变量赋值
62 | 变量引用及作用范围
63 | 环境变量、预定义变量与位置变量
64 | 环境变量配置文件
65 | 数组
66 | 转义和引用
67 | 运算符
68 | 特殊字符大全
69 | test比较
70 | if判断的使用
71 | if-else判断的使用
72 | 嵌套if的使用
73 | case分支
74 | for的基本使用
75 | C语言风格的for
76 | while循环和until循环
77 | 循环的嵌套和break、continue语句
78 | 使用循环处理位置参数
79 | 自定义函数
80 | 系统函数库介绍
81 | 脚本资源控制
82 | 信号
83 | 一次性计划任务
84 | 周期性计划任务
85 | 为脚本加锁
86 | 元字符介绍
87 | find 演示
88 | sed和awk介绍
89 | sed替换命令讲解
90 | sed的替换指令加强版
91 | sed的其他常用命令
92 | sed多行模式空间
93 | 什么是sed的保持空间
94 | 认识awk
95 | awk的字段
96 | awk表达式
97 | awk判断和循环
98 | awk数组
99 | awk数组功能的使用
100 | awk函数
101 | 防火墙概述
102 | iptables规则的基本使用演示
103 | iptables过滤规则的使用
105 | firewalld
104 | iptables nat表的使用
106 | SSH介绍之Telnet明文漏洞
107 | SSH服务演示
108 | FTP服务器vsftpd介绍与软件包安装
109 | vsftpd配置文件介绍
110 | vsftp虚拟用户
111 | samba服务演示
112 | NFS服务
113 | Nginx基本配置文件
114 | 使用Nginx配置域名虚拟主机
115 | LNMP环境搭建
116 | DNS服务的原理
117 | NAS演示
118 | 结课测试&结束语
登录 后留言

全部留言(7)

  • 最新
  • 精选
Jimmy(陈基明)®
老师, 请教一个问题: function nvd(){ executeResult=1 until [ $executeResult -eq 0 ] do executeResult=`$*` sleep 3 done } 写了上面这个函数用来当命令执行失败时就重复执行. 但发现使用这个函数执行的命令输出的日志出现错乱,

作者回复: 日志错乱应该是又后台输出导致的,可以考虑把关键信息重定向的某个日志文件,屏幕输出错乱因为前后台机制,没办法保证同步的

2020-04-03
1
高坤
老师,checkpid()方法的返回值有用到吗?echo $?是获取上一次命令的执行成功或者失败的结果还是获取上一次命令的返回值(比如函数的返回值)?

作者回复: echo $? 是exit语句跟着的值,我提供个例子 demo.sh echo "do some thing" exit 128 执行demo 后,使用echo $? 看到的是128 ,使用echo $? 判断程序是否正确执行了,是因为系统命令遵循了命令正确执行返回0 ,执行错误返回非0 的一个规范

2019-12-07
1
Frank
老师,定义在文件里面的函数,怎么能在命令行直接运行。这个是怎么回事哦,不懂呢?

作者回复: 定义在文件里的函数,需要使用 source 文件名或 . 文件名方式运行一次才能在命令行里直接使用,例如 source /etc/profile 方式,/etc/profile 里的脚本就被执行一次了,如果有函数的定义,自然也被执行了

2019-10-29
3
1
浩仔是程序员
shell函数如果需要传一个数组和另外一个参数,应该怎么读取呢

作者回复: function func() 使用$1 $2 ... $n 方式读取参数,类似命令行参数一样 }

2021-10-24
Mao
老师函数可以返回一个数组吗?

作者回复: 可以返回数组,前提是定义函数的返回值要返回数组才行

2019-10-16
吴琰
老师,有看到过function::fname这样的函数定义方法,和一般的函数定义有什么区别呢?
2022-10-15
Jimmy(陈基明)®
如果不使用这个函数来执行的话, 直接命令的输出是如下: ➜ temp youtube-dl https://www.youtube.com/watch\?v\=UVRihPDSULo [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: [u'-v', u'--proxy', u'http://127.0.0.1:6152', u'--all-subs', u'-f', u'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4', u'https://www.youtube.com/watch?v=UVRihPDSULo'] [debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8 [debug] youtube-dl version 2020.02.16 [debug] Python version 2.7.16 (CPython) - Darwin-19.4.0-x86_64-i386-64bit [debug] exe versions: ffmpeg 4.2.2, ffprobe 4.2.2, rtmpdump 2.4 [debug] Proxy map: {u'http': u'http://127.0.0.1:6152', u'https': u'http://127.0.0.1:6152'} [youtube] UVRihPDSULo: Downloading webpage [youtube] UVRihPDSULo: Downloading video info webpage WARNING: unable to download video info webpage: <urlopen error EOF occurred in violation of protocol (_ssl.c:727)> WARNING: unable to download video info webpage: <urlopen error EOF occurred in violation of protocol (_ssl.c:727)> WARNING: video doesn't have subtitles [debug] Invoking downloader on u'https://r2---sn-i3belne6.googlevideo.com/videoplayback?expire=..... [download] Destination: China _ Top Plays & Highlights _ FIBA Basketball World Cup 2019-UVRihPDSULo.f136.mp4 [download] 6.0% of 82.56MiB at 700.48KiB/s ETA 01:53^C ERROR: Interrupted by user 请问怎么才能让他原样输出? 另外貌似上面的函数没能达到预期效果, 把视频下载下来后, 发现还是会继续执行同样的命令, 这个脚本写的是有什么问题吗? 谢谢~
2020-04-03
收起评论