鸟哥

鸟哥的Linux私房菜:3、学习shell与shell script

只愿长相守 提交于 2019-12-11 02:43:49
第 9 章、vim 程序编辑器 Linux 底下的配置文件多为文本文件,故使用 vim 即可进行设定编辑。 vim 可视为程序编辑器,可用以编辑 shell script, 配置文件等,避免打错字。 vi 为所有 unix like 的操作系统都会存在的编辑器,且执行速度快速。 vi 有三种模式,一般指令模式可变换到编辑与指令列模式,但编辑模式与指令列模式不能互换。 常用的按键有 i, [Esc],:wq 等。 vi 的画面大略可分为两部份,(1)上半部的本文与(2)最后一行的状态+指令列模式。 数字是有意义的,用来说明重复进行几次动作的意思,如 5yy 为复制 5 列之意。 光标的移动中,大写的G经常使用,尤其是 1G, G 移动到文章的头/尾功能! vi 的取代功能也很棒! :n1,n2s/old/new/g 要特别注意学习起来。 小数点「.」为重复进行前一次动作,也是经常使用的按键功能! 进入编辑模式几乎只要记住: i,o,R 三个按钮即可!尤其是新增一列的 o 与取代的 R。 vim 会主动的建立 swap 暂存档,所以不要随意断线! 如果在文章内有对齐的区块,可以使用 [ctr]-v 进行复制/贴上/删除的行为。 使用:sp 功能可以分区窗口。 若使用vim来撰写网页,若需要CSS元素数据,可透过 [crt]+x, [crt]+o 这两个连续组合按键来取得关 键词。

阅读鸟哥的风雪之隅PHP博客的笔记(1)

大兔子大兔子 提交于 2019-12-07 19:31:58
1. 在PHP中使用协程实现多任务调度 http://www.laruence.com/2015/05/28/3038.html 2. Curl的毫秒超时的一个”Bug” CentOS服务器上, 当你设置了小于1000ms的超时以后, curl不会发起任何请求, 而直接返回超时错误(Timeout reached 28). 原来, 这里面有一个坑, CURL默认的, 在Linux系统上, 如果使用了系统标准的DNS解析, 则会使用SIGALARM来提供控制域名解析超时的功能, 但是SIGALARM不支持小于1s的超时, 于是在libcurl 7.28.1的代码中(注意中文注释行): int Curl_resolv_timeout(struct connectdata *conn, const char *hostname, int port, struct Curl_dns_entry **entry, long timeoutms) { ....... ....... #ifdef USE_ALARM_TIMEOUT if(data->set.no_signal) /* Ignore the timeout when signals are disabled */ timeout = 0; else timeout = timeoutms; if(!timeout) /* USE

鸟哥的Linux私房菜——笔记1

谁都会走 提交于 2019-12-04 20:44:01
基础学习篇1 第0章 计算机概论 1 计算机硬件的五大单元:输入单元、输出单元、CPU内部的控制单元、算术逻辑单元、内存。 2 两种主要CPU种类:精简指令集(Reduced Instruction Set Computing,RISC)和复杂指令集(CISC)。 3 除了五大单元,计算机还需要许多其他接口设备,最重要的接口设备是 主板,主板负责将所有的设备连接在一起,让所有的设备能够进行协调和通信。而主板上最重要的组件是 主板芯片组,一般主板芯片组分为北桥和南桥,北桥的总线为系统总线,是内存传输的主要信道,所以速度较快;南桥是输入输出(I/O)总线。 4 CPU的外频是指 CPU与外部组件进行数据传输/运算时的速度,倍频是CPU内部用来加速工作性能的一个倍数。两者相乘得到CPU的频率。 5 CPU使用的一切数据都来自内存,运算后的数据也要写回内存。个人计算机的内存主要组件为 动态随机访问内存(Dynamic Random Access Memory,DRAM),通电时才能通信与使用,这种RAM被称为挥发性内存。 6 将SRAM(静态随机访问内存)集成到CPU中,可作为第二级高速缓存用来加快数据访问。SRAM比DRAM速度更快。 7 只读存储器ROM。 8 声卡、网卡、特殊功能卡使用PCI接口传输,需使用PCI适配卡。 9 显卡又称为VGA,通过 PCI-Express(显卡接口

Linux管道命令——《鸟哥的Linux私房菜》笔记

拜拜、爱过 提交于 2019-12-04 20:43:02
Linux管道命令——《鸟哥的Linux私房菜》笔记 0 前言 看完书之后,总感觉不记录下来的话,很快就会忘了,然后又需要重新到处翻书找资料,所以还是把内容记录下来,方便以后复习。本文大部分是书中的内容,中间加入部分自己的理解以及尝试的例子。 1 简单使用 管道命令使用“|”这个界定符号,用于两个命令中间,作用是把左边命令的标准输出作为右边命令的标准输入。 例如要查询/etc目录下的文件详情,但是内容太多会刷满屏幕,查看起来不方便,就可以利用管道命令通过less命令来查看输出。 ls -al /etc | less 需要注意的点: 管道命令仅能处理标准输出(standard output),会忽略出错时输出的信息(standard error output); 管道命令命令必须要能够接受来自前一个命令的数据成为标准输出继续处理才行。 2 选取命令 2.1 cut 2.1.1 命令介绍 cut命令可以将一段信息的某一段“切”出来,处理的信息是以“ 行 ”为单位。 命令说明如下: cut -d ‘分隔字符’ -f fields # 该命令将每行按“分隔字符”分割,然后选取fields参数的那几部分 cut -c 字符范围 # 该命令用于排列整齐的信息,可以取出每一行在选定字符范围内的串 参数: -d : 后面接分隔字符,与-f一起使用; -f : 依据-d的 分隔字符

鸟哥私房菜基础篇:程序管理与 SELinux 初探习题

亡梦爱人 提交于 2019-12-03 13:42:56
猫宁!!! 参考: http://cn.linux.vbird.org/linux_basic/0440processcontrol.php 1- 简单说明什么是程序 (program) 而什么是程序 (process)? 程序 (program) 是系统上面可以被运行的文件,由於 Linux 的完整档名 (由 / 写起) 仅能有一个, 所以 program 的档名具有单一性。当程序被运行后,就会启动成程序 (process), 一个 program 可以被不同的使用者或者相同的使用者重复的运行成为多个程序, 且该程序所造成的程序还因为不同的使用者,而有不同的权限,且每个 process 几乎都是独立的。 2- 我今天想要查询 /etc/crontab 与 crontab 这个程序的用法与写法,请问我该如何线上查询? 查询 crontab 命令可以使用 man crontab 或 info crontab ,至於查询 /etc/crontab ,则可以使用 man 5 crontab 罗! 3- 我要如何查询 crond 这个 daemon 的 PID 与他的 PRI 值呢? ps aux | grep crond 即可查到! 4- 我要如何修改 crond 这个 PID 的优先运行序? 先以 ps aux 找到 crond 的 PID 后,再以: renice -n number

鸟哥私房菜基础篇:例行性工作排程 (crontab)习题

与世无争的帅哥 提交于 2019-12-03 13:40:09
猫宁!!! 参考: http://cn.linux.vbird.org/linux_basic/0430cron.php 1- 今天假设我有一个命令程序,名称为: ping.sh 这个档名!我想要让系统每三分钟运行这个文件一次, 但是偏偏这个文件会有很多的信息显示出来,所以我的 root 帐号每天都会收到差不多四百多封的信件,光是收信就差不多快要疯掉了! 那么请问应该怎么配置比较好呢? 这个涉及数据流重导向的问题,我们可以将他导入文件或者直接丢弃!如果该信息不重要的话, 那么就予以丢弃,如果信息很重要的话,才将他保留下来!假设今天这个命令不重要, 所以将他丢弃掉!因此,可以这样写: */3 * * * * root /usr/local/ping.sh > /dev/null 2>&1 2- 您预计要在 2010 年的 2 月 14 日寄出一封给 kiki ,只有该年才寄出!该如何下达命令? at 1am 2010-02-14 3- 下达 crontab -e 之后,如果输入这一行,代表什么意思? * 15 * * 1-5 /usr/local/bin/tea_time.sh 在每星期的 1~5 ,下午 3 点的每分钟,共进行 60 次 /usr/local/bin/tea_time.sh 这个文件。 要特别注意的是,每个星期 1~5 的 3 点都会进行 60 次ㄟ!很麻烦吧

鸟哥私房菜基础篇:磁碟配额(Quota)与进阶文件系统管理习题

只愿长相守 提交于 2019-12-03 13:38:55
猫宁!!! 参考: http://cn.linux.vbird.org/linux_basic/0420quota.php 1- 在前一章的第一个大量新增帐号范例中, 如果我想要让每个用户均具有 soft/hard 各为 40MB/50MB 的容量时,应该如何修改这个 script ? 你得先要依据本章的作法,先将 /home 制作好 quota 的环境然后, 你可以在 do...done 内的最后一行,新增一行内容为: setquota -u $username 40000 50000 0 0 /home 这样就可以在制作用户时,指定升级口令且给予 quota 的限制! 2- 如果我想要让 RAID 具有保护数据的功能,防止因为硬件损毁而导致数据的遗失,那我应该要选择的 RAID 等级可能有哪些? (请以本章谈到的等级来思考即可) 具有备份数据的有: RAID-1, RAID-5, RAID-6 3- 在默认的 LVM 配置中,请问 LVM 能否具有『备份』的功能? 是有的,就是那个快照 (snopshot) 的功能,此功能即可进行数据的备份! 4-LVM 内的 LV 据说仅能达到 256 GB 的容量,请问如何克服此一容量问题? LV 的容量与 PE 这个数据有关,由於默认 PE 为 4MB ,所以才会有此限制。 若要修改这个限制值,则需要在建置 VG 时就给予 -s

note4--鸟哥的Linux私房菜

蓝咒 提交于 2019-12-02 16:06:00
《鸟哥的 Linux 私房菜》 note4 第五章、首次登陆与在线求助 , man page 1 、重新启动 x window ( 1 )注销 -- 〉重新登陆 ( 2 ) [Alt]+[Ctrl]+[Backspace] 2 、 X window 与文本模式(又叫终端机接口 \terminal\console )的切换 文字接口(执行等级 run level3 ): 登陆 tty1~tty6 终端机 :[Ctrl]+[Alt]+[F1]~[F6] 图形接口桌面( run level 5 ) 登陆: [Ctrl]+[Alt]+[F7] 以纯文本环境启动 Linux ,在 tty1~tty6 热议一个终端接口登陆后, [fangzheng@www~]$ startx 字型服务器( X Font Server,xfs ) 修改 run level* :用 vi 修改 /etc/inittab 3 、 tty1 CentOS release 5.3(Final) Kernel 2.6.18-128.el5 on an i686 以上两行来自 /etc/issue 以上核心版本: 2.6.18-128.el5, 硬件等级 i686 如果 64 位 linux 版本安装到 64 位 PC ,硬件等级为 [X86-64] 4 、注销 Linux $ exit 文本模式登陆后取得的程序成为壳(

鸟哥linux——Shell scripts

旧巷老猫 提交于 2019-12-01 20:09:01
shell script就是shell脚本的意思。利用shell的功能所写的一个'程序',本质就是一个纯文本文件。 注意:   1.指令的执行顺序从上到下,从左到右。   2.指令,选项与参数之间的多个空白都会被忽略掉。   3.如果读到enter符号就开始执行该行指令。 执行文件: 直接执行 以bash程序来执行:bash a或者sh a 样例一:创建第一个shell脚本输出holle world #!/bin/bash echo “holle world” exit 0 第一行:#!/bin/bash 表示使用/bin/bash这个文件中的环境配置文件来执行 小练习: 样例一:键盘输入姓,名 #!/bin/bash read -p “输入你的姓:” firstname read -p “输入你的名:” lastname echo -e “\n你的全名为:${firstname}${lastname}”exit 0样例二:加法运算#!/bin/bashecho -e "请输入2个数字a, b, 然后输出结果c \n"read -p "请输入a:" aread -p "请输入b:" bc=$((${a}+${b}))echo -e "\nc=${c}\n"esit 0 脚本执行方式的区别: 1.直接执行的方式 直接执行(相对路径,绝对路径),bash(或sh)执行脚本

鸟哥的linux私房菜-第六章

[亡魂溺海] 提交于 2019-11-30 12:02:46
鸟哥的linux私房菜-第六章 6.1 用户与用户组 6.2 Linux文件权限概念 6.2.2 如何改变文件属性与权限 6.2.3 目录与文件的权限意义 6.2.4 Linux文件种类与拓展名 6.3 linux的目录配置 Linux一般将文件可存取访问的身份分为三个类别,分别是owner、group、others,这3种身份各有read、write、execute等权限 6.1 用户与用户组 linux 用户身份与用户组记录的文件 默认的情况下,所有系统上的账号与一般身份用户,root的相关信息,都是记录在/etc/passwd这个文件中,至于个人的密码则是记录在 /etc/shadow 这个文件下,此外,Linux所有的组名都记录在 /etc/group 内,这3个文件可以说是Linux系统里面 账号、密码、用户信息 的集中地。 6.2 Linux文件权限概念 -rw-r–r-- 1 root root 42304 Sep 4 18:26 install.log 一共10个字符,第一个字符代表这个文件是“目录、文件、或者链接文件”等 若是[d]代表是目录。 若是[-]则是文件 若是[|]则是连接文件(linkfile) 若是[b]则是表示设备文件里面的可供存储的接口设备。 若是[c]则是表示设备文件里面的串行端口设备,例如鼠标、键盘(一次性读取设备)。 接下来的字符