Linux大家都不陌生,我是在大三的时候开始接触Linux,上课的时候一位给我们上课的老师闲聊的时候说,你们计算机专业的学生要好好去学Linux,对于你们以后发展或者是就业都很有帮助. 开始的时候是一种从众心理,慢慢的学习中发现自己越来越喜欢,也慢慢摸索出了高效学习Linux的方法,一次偶然的机会,朋友介绍了一门名字叫<Linux就该这么学>的书,开始了我的学习之路,在这里跟大家分享一下. 对于刚开始学习的人来说,很多人都喜欢在linux论坛问一些问题,或者是看视频,书籍等,我刚开始的时候也是…
1. top - 进程活动监控命令 top 命令会显示 Linux 的进程.它提供了一个运行中系统的实时动态视图,即实际的进程活动.默认情况下,它显示在服务器上运行的 CPU 占用率最高的任务,并且每五秒更新一次. 图 01:Linux top 命令 top 的常用快捷键 常用快捷键列表: < 如显示不全,请左右滑动 > 快捷键 用法 t 是否显示汇总信息 m 是否显示内存信息 A 根据各种系统资源的利用率对进程进行排序,有助于快速识别系统中性能不佳的任务. f 进入 top 的交互式配置屏幕…
Linux就这个范儿 第16章 谁都可以从头再来--从头开始编译一套Linux系统  nsswitch.conf配置文件 朋友们,今天我对你们说,在此时此刻,我们虽然遭受种种困难和挫折,我仍然有一个梦想.……我梦想有一天,这个国家会站起来,并真正实现其信条的真谛:‘我们认为这些真理是不言而喻的:人人生而平等.’……我梦想有一天,幽谷上升.高山下降,坎坷曲折之路成坦途,圣光披露.照满人间.——马丁·路德·金这有点扯远了,我肯定是比不上马丁·路德·金的.不过我曾经也有一个梦想,就是:当我的电脑一开机…
也许简单看书就是没有刻意训练.更没有反馈,所以没有效果 我倒是想起自己,研究VCL源码的时候,都是自己给自己提问,然后苦思冥想.自己解决问题,然后Windows编程水平果然上了一个台阶.对什么叫做“框架”也有真正的了解. ----------------------------------------------------------------------------------------------- 有很多读者问李叫兽:为什么你年纪不大,经验并不多,但却能擅长复杂的商业策略和文案写作,…
点击返回 自学Linux命令行与Shell脚本之路 1.1-Linux初识(架构.内核.shell) 1. Linux架构 Linux系统一般有4个主要部分:内核.shell.文件系统和应用程序.(有的书籍分为硬件.内核.系统调用和应用程序) 内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统.部分层次结构如图所示. 最内层是计算机资源(硬件),最外层是用户常用的应用: 硬件是物质基础,而应用提供服务. Linux首先启动内核 (kernel),…
点击返回 自学Linux命令行与Shell脚本之路 1.2-Linux目录结构 /:  根目录,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib./sbin应该和根目录放置在一个分区中 /bin:/usr/bin:   可执行二进制文件的目录,如常用的命令ls.tar.mv.cat等. /boot:   放置linux系统启动时用到的一些文件./boot/vmlinuz为linux的内核文件,以及/boot/gurb.建议单独分区,分区大小100M即可 /dev: …
点击返回 自学Linux命令行与Shell脚本之路 1.3-Linux文件系统 文件系统是文件存放在磁盘等存储设备上的组织方法.Linux系统能支持多种目前流行的文件系统,如EXT2. EXT3. FAT. FAT32. VFAT和ISO9660. 1. 文件类型概述 1.1 Linux下面的文件类型主要有: 普通文件:C语言元代码.SHELL脚本.二进制的可执行文件等.分为纯文本和二进制. 目录文件:目录,存储文件的唯一地方. 链接文件:指向同一个文件或目录的的文件. 设备文件:与系统外设相关…
点击返回 自学Linux命令行与Shell脚本之路 2.2-GHOME Terminal仿真器 GNOME Terminal是GNOME桌面环境的默认终端仿真器.很多发行版,如RHEL.Fedora和CentOS,默认采用的都是GNOME桌面环境,因此GNOME Terminal自然也就是默认配备了.不过其他一些桌面环境,比如Ubuntu Unity,也采用GNOME Terminal作为默认的终端仿真软件包.它使用起来非常简单,是Linux新手的不错选择.这部分将带你学习如何访问.配置和使用G…
点击返回 自学Linux命令行与Shell脚本之路 3.5-目录处理命令mkdir rmdir 1. mkdir命令 创建一个或多个新的目录. mkdir 命令创建由 Directory 参数指定的一个或多个新的目录.每个新目录包含标准项 .(点)和 ..(点-点).您可以使用 -m Mode 标志为新的目录指定许可权. 将新目录的拥有者标识和组标识分别设置为进程的有效用户标识和组标识.setgid 位是从父目录中继承下来的.要更改 setgid 位,可以指定 -m Mode 标志或者在目录创建…
点击返回 自学Linux命令行与Shell脚本之路 3.6-文件查看命令file cat more less tail head 1.参看文件类型file 该命令用来识别文件类型,也可用来辨别一些文件的编码格式.它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的. file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...] -b 列出辨识结果时,不显示文件名称. -c 详细显示指令执行过程,便于排错或…
点击返回 自学Linux命令行与Shell脚本之路 4.1-监测程序ps top kill 1. PS命令 linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令.使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结束.进程有没有僵死.哪些进程占用了过多的资源等等. ps的3种不同类型的命令行参数: UNIX 风格,选项…
点击返回 自学Linux命令行与Shell脚本之路 5.2-shell内建命令history alias 外部命令:有时称为文件系统命令,是存在于bash shell之外的程序,通常位于/bin./usr/bin ./sbin ./usr/sbin中                  当外部命令执行时会创建一个子进程,叫做衍生,,此时就需要花费时间和精力设置新i进程的环境                  ps就是一个外部命令,可以使用which.type命令找到它 内建命令: 不需要借用外部程…
点击返回 自学Linux命令行与Shell脚本之路 6.1-环境变量概念 环境变量 在Linux中,很多程序和脚本都通过环境变量来获取系统信息.存储临时数据和配置信息: bash shell使用环境变量来存储有关shell会话和工作环境信息: 允许你在内存中存储数据,以便运行在shell的程序和脚本访问:是存储永久数据的一种简单方法,用来识别用户账户.系统.shell的特性,以及任何你需要存储的数据: 在bash shell中,环境变量分为:全局变量:不仅对shell会话可见,对所有shell创…
点击返回 自学Linux命令行与Shell脚本之路 6.2-用户自定义环境变量 1.设置局部用户定义变量 一旦启动bash shell(或者执行一个shell脚本),你就能创建这个shell进程可见的局部环境变量: 局部环境变量一定更要使用小写: 可以通过  =  给环境变量赋值,值可以使数值或者字符串: 变量名.等号.值之间没有空格: 若给一个变量赋值一个含有空格的字符串值,必须用   " "   来界定字符串的首尾: 设置了局部环境变量之后,就能在shell进程任何地方使用,但是如…
点击返回 自学Linux命令行与Shell脚本之路 6.3-系统环境变量持久化 在你登录Linux系统启动一个bash shell时,默认情况下bash在几个文件中查找命令,这几个文件成为启动文件:bash检查的启动文件取决于你启动bash shell的方式,启动bash shell有3中方式: 登录时当做默认登录shell: 作为非登录shell的交互shell,在命令行中输入bash: 作为运行脚本的非交互shell,在shell脚本中执行shell: 1  登陆shell 当你登录Linu…
点击返回 自学Linux命令行与Shell脚本之路 7.1-linux用户账户和组 linux安全系统的核心是用户账户.每个能进入linux系统的用户都会被分配唯一的用户账户,用户对系统中各对象的访问权限取决于他们登陆时用的账户.用户权限是通过创建用户时分配的用户ID(UID)来跟踪的. 1. 用户账户 Linux系统使用特定的文件和工具来跟踪和管理系统上的用户账户,经常使用的有/etc/passwd    /etc/shadow  1.1  /etc/passwd 文件 /etc/passwd…
点击返回 自学Linux命令行与Shell脚本之路 7.2-linux文件权限 在linux中每个文件有所有者.所在组.其它组的概念 所有者一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者用ls ‐ahl命令可以看到文件的所有者也可以使用chown 用户名 文件名来修改文件的所有者 所在组在linux中的每个用户必须属于一个组,不能独立于组外当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组用ls ‐ahl命令可以看到文件的所有组也可以使用chgrp 组名 文件名来修改…
点击返回 自学Linux命令行与Shell脚本之路 7.3-linux共享文件 在linux系统中共享文件的方法是通过创建组. 1. linux为每个文件和目录存储了3个额外的信息位: SUID设置用户ID  当文件被用户使用时,程序会以文件属主的权限运行 SGID设置组ID     对文件来说,程序会以文件属组的权限运行对目录来说,目录创建的新文件会以目录的默认属组作为默认属组 粘着位    进程结束后文件还驻留在内存中 SUID设置用户ID用s表示. 用户对应的前三位的x位上如果有,就用小s…
点击返回 自学Linux命令行与Shell脚本之路 8.1-linux文件系统概述及操作 1. linux支持的文件系统 Windows常用的分区格式有三种,分别是FAT16.FAT32.NTFS格式 Linux支持的文件系统:NFS.MINIX.MS-DOS和ext2,日志文件系统:ext3.ext4.JFS.ReiserFS和XFS,同时还有加密文件系统(CFS)和虚拟文件系统(/proc) 1.1 基本文件系统 Ext:extended filesystem扩展文件系统.使用虚拟目录来操作…
点击返回 自学Linux命令行与Shell脚本之路 9.2-基于Red Hat系统工具包存在两种方式之一:RPM包 本节主要介绍基于Red Had的系统(测试系统centos) 1. 工具包存在两种方式:RPM包与源码包 1.1.RPM包与源码包区别 安装之前的区别:概念上的区别 源码包是开源的,比RPM包安装更自由,但是它安装更慢,更容易报错: RPM包是经过编译的,不能看到源代码,但是它安装更快,报错更容易解决,只有依赖性问题.        缺点:安装的环境必须与编译时的环境一致或者相当:…
点击返回 自学Linux命令行与Shell脚本之路 9.3-基于Red Hat系统工具包:RPM属性依赖的解决方式-YUM在线升级 本节主要介绍基于Red Had的系统(测试系统centos) yum特点 自动解决包的倚赖性问题能更方便的添加/删除/更新RPM包 便于管理大量系统的更新问题 可以同时配置多个资源库(Repository) 简洁的配置文件(/etc/yum.conf) 保持与RPM数据库的一致性 有一个比较详细的log,可以查看何时升级安装了什么软件包等 使用方便 yum是Cent…
点击返回 自学Linux命令行与Shell脚本之路 9.4-基于Red Hat系统工具包存在两种方式之二:源码包 本节主要介绍基于Red Had的系统(测试系统centos) 1. 工具包存在两种方式:RPM包与源码包 1.1.RPM包与源码包区别 安装之前的区别:概念上的区别 源码包是开源的,比RPM包安装更自由,但是它安装更慢,更容易报错: RPM包是经过编译的,不能看到源代码,但是它安装更快,报错更容易解决,只有依赖性问题.        缺点:安装的环境必须与编译时的环境一致或者相当:包…
点击返回 自学Linux命令行与Shell脚本之路 10.1-使用编辑器vim 所有的 Unix系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在.但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计. Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方. vim…
点击返回 自学Linux命令行与Shell脚本之路 11.1-shell概述 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell. Shell 脚本Shell 脚本(shell scri…
点击返回 自学Linux命令行与Shell脚本之路 11.3-使用变量 Shell脚本的执行通常可以采用以下几种方式: 1):bash script-name或sh script-name(推荐使用) 2):path/script-name 或./script-name(当前路径下执行脚本) 3):source script-name或 . script-name #→注意”.”点号. 4):sh<script-name或cat scripts-name|sh(同样适合bash) 定义变量时,变…
点击返回 自学Linux命令行与Shell脚本之路 11.4-重定向输入输出 Linux 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> file 将输出以追加的方式重定向到 file. n >…
点击返回 自学Linux命令行与Shell脚本之路 11.5-执行数字运算 1. Shell基本运算符 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. 例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '): 注意: 表达式和运算符之间要有空格,…
点击返回 自学Linux命令行与Shell脚本之路 11.6-退出shell shell运行的每一个命令都是使用 退出状态码 告诉shell它已经运行完毕.退出状态码是一个0~255的整数值,在命令结束运行时由命令传给shell. linux退出状态码表: 1            一般性未知错误 2            不适合的shell命令 126        命令不可执行 127        没有找到命令 128        无效的退出参数 128+      与linux信号x相…
点击返回 自学Linux命令行与Shell脚本之路 12.1-结构化命令if-then 许多程序要求对shell脚本中的命令施加一些逻辑流程控制.有一类命令会根据条件使脚本跳过某些命令.这样的命令通常称为结构化命令(structured command). 1. 基本的结构化if-then语句 结构化命令允许你改变程序执行的顺序.在bash shell中有不少结构化命令,基本的结构化命令就是if-then语句,if-then语句可以有两种格式 第一种: if command then comma…
点击返回 自学Linux命令行与Shell脚本之路 12.2-test命令 if-then语句不能测试命令退出状态码之外的条件,test命令提供了在if-then语句中测试不同条件的途径. 如果test命令中列出的条件成立,test命令就会退出并返回状态码0 如果test命令中列出的条件不成立,test命令就会退出并返回非0的退出状态码,这使得if-thon语句不会在执行 1.  test命令 格式: test condition condition是test命令要测试的一系列参数和值.当用在i…