| 服务器问题 | ||
1、Linux 安装 准备工作 Vmware RHEL 5.5 Vmware基本配置 Linux安装及一般配置 磁盘的分区与目录挂载 硬盘零磁道位置的分区表记录为64B,因此一共可以创建4个主分区 实例:对30G硬盘,1G内存进行分区 / 10G 强制为主分区 /home 5G /usr 5G强制为主分区 /boot 500M /var 8G /swap 使用全部可用空间 交换空间的大小一般是物理内存的两倍 最后有一个100M多的空闲空间不需要理睬 2、Linux介绍 Unix GNU – GNU is Not Unix GCC GPL – General Public License,通用公共许可证 Free software – 自由软件 Linux Linux主要版本 Ubuntu – 用户桌面 RedHat – 使用最广,性能稳定,商业版,服务器 CentOS – RedHat的克隆版,免费 Linux的优点 性能稳定 较高的安全性和Bug的快速修复 支持多用户多任务 完善的用户和群组策略 资源耗费低 适合嵌入式应用 免费或费用低廉 Linux的缺点 专业软件支持不够 厂商支持度不够 标准化不足 使用不方便 3、Linux 桌面系统 图形界面登录 常用桌面系统 – GNOME、KDE(模仿windows桌面) GNOME桌面系统演示 Nautilus使用 – 文件资源管理器 KDE桌面系统演示 Konqueror的使用 远程登录 - 一般将Linux作为服务器用 SSH – Secure Shell, 安全外壳协议 应用层和传输层上的协议 支持多种系统 加密且压缩传输 SecureCRT – 收费 – 破解,不安全 选中文本 -> 右击 会话选项 -> 外观 脚本 -> 开始录制脚本 右击 -> 克隆会话 右击 -> 锁定会话 Xshell – 免费 – 推荐使用 外观 中击 - 复制 文件属性 -> 终端 -> 编码 - UTF-8,可支持中文 4、Linux 文件和目录管理 文件系统架构 Linux文件系统具有层级性 1)文件或者目录起始于根目录“/”成为树状结构 2)最顶层由/开始 文件和目录名区分大小写 区分大小写,而windows不区分大小写 路径通过“/”分隔开 “..”表示上层目录 “.”表示当前目录 隐藏目录或者文件名以“.”开始 ls –l ls –la 重要目录说明 home目录 1)root用户的home目录是/root 2)普通用户的目录是/home/user 3)su – xiang bin目录 1)常用的可执行文件 2)/bin、/usr/bin、/sbin等 3)/sbin 存放的是只有root用户权限执行的指令 外部设备mountpoint 1)/media、/mnt 2)当检测到设备接入会自动产生挂载点 /etc,系统的配置文件 - 只有root用户可以修改 /tmp,临时文件 /boot,系统内核和开机必要文件 /dev,系统所有的设备文件 /usr 1)unix system resource 2)保存程序的相关文件 /lost+found 1)每个分区都会自动创建 /var、/srv - /var存放数据库文件,程序执行过程中所使用的数据 /proc 虚拟文件系统,数据在内存中,如:系统内核、程序运行进程信息、网络状态 /lib、/usr/lib、/usr/local/lib - 存放一些可复用的函数或库 目录以及文件的命名规则 不超过255个字符 区分大小写 1)file、File、fILE表示不同的文件 除了/外,所有的字符都合法 1)避免文件名首字符使用+-.等 2)避免使用空格、制表符和@#$%[]()等 最好使用有意义的名称来命名 ls指令操作 ls,ls[options][file_or_dirs] 1)ls,列出当前目录内容 2)ls / ,显示根目录的内容 3)ls –a,显示隐藏文件 4)ls –l,显示详细内容 5)ls –ld,显示目录本身的属性 ls –l 相当于 ll ls –a ls –la ls –ld ls -lh 文件和目录操作 相对路径和绝对路径 1)绝对路径必须是/开头 2)相对路径一般比较短 切换目录 1)cd、pwd 2)cd ..,cd ~,cd – 3)su – 表示切换到root 复制文件和目录,cp 1)cp [options] file destination –p的参数不改变时间戳 2)cp [options] file1 file2 destination 3)cp -r dir1 dir2,复制目录 移动和重命名文件和目录,mv 1)移动操作类似于cp 删除文件和目录,rm 1)rm [options] filenames 2)-i,交互式 3)-r,递归删除 4)-f,force 新建文件和目录,touch,mkdir 1)cd、pwd 2)cd ..,cd ~,cd - 确定文件的格式 1)打开文件前确定格式使用不用的程序打开 2)file [options] filenames cat – 打开一些小文件 cat [options] filenames cat –b test.txt 显示带行号的文件内容 分页查看文本文件,less – 打开一些内容比较多的文本文件(大文件) 1)less [options] [filename] 2)使用pgUp、pgDown翻页 3)g 到最顶端 G 到最低端 4)/search 进行搜索 n N 5)q 5、Linux用户、群组和权限 Linux安全性模型 Linux使用User和Group控制使用者对文件的存取权限 用户使用账号和口令登录Linux 每个文件都有owner,并且owner属于某个Group 每个程序都有owner和Group 用户概述 每个用户都有一个唯一的User ID User的信息存储在/etc/passwd中 1)存储用户名和home目录等信息 如:less /etc/passwd xiang:x:500:500:xiang.yu:/home/xiang:/bin/bash x意味着要有密码才可以登录 第一个500表示UID 第二个500表示GID 2)/etc/shadow – 存储当前用户的密码 如:less /etc/shadow root:$1$H7TmDsKo$O8fYNYKC7YOpLZEcPCg4u0:16890:0:99999:7::: 采用MD5的加密算法 – 单向的哈希算法 每个User都有一个home目录 User未经授权将禁止读写或执行其他User的文件 root用户解读 1)超级管理员账号,具有至高无上的权限 2)一般不要随便用root登录并操作系统 用户群组概述 每个User都属于一个Group,具有唯一的标识符gid Group信息存储于/etc/group中 1)gid、成员等 2)/etc/gshadow 保存密码 系统会为每个User关联一个和User同名的Group 1)每个User至少存在于自己同名的Group中 2)User也可以加入其他的Group 在同一个Group中的成员可以共享其他成员的文件 权限的种类 只读权限,用r表示(read) 可以读取文件或者列出目录的内容(ls) 可写权限,用w表示(write) 可以写、删除文件或者目录 可执行权限,用x表示(execute) 1)可以执行可执行文件 2)可以进入目录并使用cd切换进入目录 没有任何权限,用-表示 注:当给某个用户授予读权限时,不要忘记授予执行权限 Linux文件和目录权限解读 d rwx-w---- 1)目录 2)owner权限为可读写可执行 3)group权限为可写 4)others没有任何权限 - rwxrwxr-x 1)文件 2)owner权限为可读写可执行 3)group权限为可读写可执行 4)others权限为可读可执行 Linux权限验证流程 # whoami 显示当前用户 如何设置Linux文件和目录的权限 a) 字符表示法 1)chmod [-R] mode file 2)模式类别 chmod a= perm 去除所有权限,不影响子目录 chmod –R a= perm 影响子目录 b) 数字表示法 1)使用一组三位数字来表示 2)第一组代表owner的权限 3)第二组代表group的权限 4)第三组代表others的权限 c) 如何使用Nautilus或Konqueror设置权限 6、Linux 用户和群组进阶学习 用户的主要群组和次要群组 1)主要群组 每个文件必须有一个组所有者,因此必须有一个与每个用户相关的默认组,这个默认组成为新建文件的组所有者,被称作用户的主要群组。用户的主要群组在passwd文件中的第四个字段中定义。 2)次要群组 除了主要群组,用户也可以根据需要再隶属于其他群组,这些组被称为次要群组,在group文件中的第四个字段中定义 # groups 查看当前用户的所有群组,第一个是主要群组 用户的管理 1)useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明] [-d 家目录] [-s shell] -u:制定一个特殊的UID给该账号 -g:指定一个主要群组的名称,会修改passwd文件 -G:指定次要群组的名称,会修改group文件 -M:强制不要创建用户家目录,系统账号默认 -m:强制建立用户家目录,一般账号默认 -c:passwd文件的第五个字段的说明文字 -d:指定用户的家目录位置,不要使用默认的值 -s:指定默认的shell,如果没有指定则默认是/bin/bash 2)usermod [-cdegGlsuLU] username -c:该账号的说明文字 -d:账号的家目录 -e:指定用户帐号禁用的日期,格式YY-MM-DD -G:修改次要群组的名称,会修改group文件 -g:修改主要群组名称 -a:与-G合用,可增加次要群组 -l:将当前账号的名称重命名为指定的名称 -u:修改UID -L:暂时将用户的密码冻结无法登录 -U:解冻账号,其实是删除shadow的!字符 实例:给用户xiang增加次要群组user1 # useradd user1 # usermod –aG user1 xiang 3)userdel [-r] username -r:连同用户的家目录一起删除 4)passwd,修改密码 用户信息的检查 1)finger [-s] username:查阅用户相关的信息 -s:仅仅列出用户的账号、全名、登录时间等 2)id,可以查阅某人或者自己相关的UID、GID信息 3)whoami 4)who&w 5)users 6)groups 用户群组的管理 1)groupadd [-g gid] [-r] 组名 -g:后面接特定的GID,用来指定GID,从500开始 -r:建立系统群组,小于500 2)groupmod [-g gid] [-n group_name] 群组名 -g:修改既有的GID数字 -n:修改既有的组名 3)groupdel [groupname] 删除特定的群组 默认权限的控制 1)内核级别,文件的默认权限是666 2)内核级别,目录的默认权限是777 3)通过umask来阻止一些权限,从而产生最终的权限 4)非管理账号的umask为0002 5)root的umask为0022 6)umask作用原理 在root用户下,新建文件后默认权限是644 在root用户下,新建目录后默认权限是755 # umask 002 //可以进行修改 7)使用减法计算是错误的,应该理解为遮盖 7、文件的压缩与打包 7-1关于文件压缩和打包 1)文件压缩 通过压缩算法将文件的体积缩小,同时会将多个文件合并至一起方便交换、传输。 2)文件打包 将多个文件或者整个目录合并成一个文件,用来进行文件的备份、分发、传输等。 3)Linux支持的压缩格式 1)*.Z ,compress程序压缩文件 2)*.gz ,gzip程序压缩文件 3)*.bz2,bzip2程序压缩文件 4)*.tar,tar程序打包文件,并未压缩 5)*.tar.gz,tar打包的档案,使用gzip压缩 6)*.tar.bz2,tar打包的文件,使用bzip2压缩 Linux文件压缩指令 1)gzip [-cdtv#] 文件名称 1)扩展名为*.gz 2)-c:将压缩的数据输出到屏幕上 3)-d:解压缩的参数 4)-t:进行文件的一致性校验看是否损坏 5)-v:显示和原文件相比的压缩比 6)-#:压缩等级,-1最快,-9最慢,默认是-6 实例: gzip –c list >list.gz 进行重定向,会保留源文件,默认使用gzip压缩时会删除源文件 gzip –v1 list 2)bzip2 [-cdkzv#] 文件名称 1)扩展名为*.bz2 2)-c:将压缩的数据输出到屏幕上 3)-d:解压缩的参数,该参数代表执行解压缩操作 4)-k:保留原文件并不删除原始文件 5)-z:压缩的参数,该参数代表是执行压缩操作 6)-v:显示和原文件对比的压缩比 7)-#:压缩等级,-1最快,-9最慢,默认是-6 Linux文件打包指令 1)tar [-jcv] –f finaname.tar.bz2 待压缩的档案或者目录名 将某个文件或者目录打包并使用bzip2压缩成一个文件 2)tar [-jxv] –f filename.tar.bz2 –C 解压缩的目录 将压缩文件解压缩至特定的目录 3)参数解释 1)-c:建立打包档案 2)-t:查看打包的文件都有哪些文件名 3)-x:解压缩或者解打包文件,和-C搭配使用解压缩至特定目录 4)-j:通过bz2支持进行压缩或者解压缩 5)-z:使用gzip进行压缩或者解压缩 6)-v:将正在处理的文件名显示出来 7)-f:紧跟要被处理的文件名,建议单独写一个选项 实例: # tar –jcvf test.tar.bz2 test # tar –jxvf test.tar.bz2 –C dir # tar –zcvf test.tar.gz test # tar –zxvf test.tar.gz –C dir 8、Linux 软件的安装 8-1 如何通过源码安装 什么是源码包: 附带有程序的源代码、configure文件、说明文档的安装包 一般先以tar打包,再以压缩软件压缩,如tar.gz或 tar.bz2 需要自定义参数进行编译安装 使用wget进行下载,支持多线程,断点 如:wget http://~ configure – 实际上是shell脚本 自定义参数 配置安装环境,必要性检查 生成makefile文件 make&install 编译生成二进制文件 执行安装 使用源码包进行安装的过程 获取源码安装包,如去官网下载 解压缩,阅读install或readme文件,获取安装说明 根据安装说明安装好该软件依赖的其他软件 建立makefile文件(通过configure检测安装环境,定义必要的参数) 根据生成的makefile文件,执行make指令进行编译操作 根据makefile中要install的内容,将上步骤中编译好的二进制文件安装到系统中 常用指令: 1)./configure –help,查看参数信息,建立makefile文件 2)make clean,读取makefile中关于clean的内容执行clean操作(非必需) 3)make,根据makefile中的设置执行编译操作 4)make install,将编译的二进制文件安装到系统中 实例:memcached和libevent两个有依赖的包进行演示 # tar -zxvf *.tar.gz # ./configure --prefix=/root/local/libevent //来指定安装目录,默认是/usr/local下 # make # make install # tar –zxvf *.tar.gz # ./configure --prefix=/root/local/memcached --with-libevent=/root/local/libevent //依赖包 # make # make install 指定安装目录的好处是如果要安装出错或重装,直接删除 8-2 RPM、YUM简介 RPM RedHat Package Manager的简称,RedHat包管理器 以数据库的记录方式将软件安装到Linux 软件包事先编译好并且打包成RPM机制的文件,类似于Windows的安装程序 软件信息记录在本地数据库,方便查询、升级、卸载 不允许自定义参数和设置,限制较多 SRPM Source RPM,附带源代码的RPM 包,扩展名以src.rpm命名 不可以直接安装,需要通过编译后再安装 可以修改参数文件自定义配置项 和RPM比较类似 YUM Yellow dog Update, Modified的简称,基于RPM包管理 能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无需繁琐地一次次下载、安装 使用简单、方便 8-3 RPM的使用 默认安装路径 1)/etc : 配置文件所在目录,如/etc/my.cnf、/etc/crontab等 2)/usr/bin : 一些可执行文件 3)/usr/lib : 程序使用的函数库(连接库),.so像windows中的C:\Windows\System32 4)/usr/share/doc : 软件使用手册与说明 5)/usr/share/man : man page文件 RPM安装 rpm [-ivh] rpm1 rpm2 : 安装rpm1/rpm2并显示进度和详情 --nodeps : 忽略依赖问题执意安装 --replacefiles : 对于已经安装过的某个文件覆盖安装 --replacepkgs : 已经安装过的软件重新安装 --force : --replacefiles 和 –replacepkgs --test : 测试软件能否被正确安装,rpm –ivh *** --test --justdb : RPM数据库损坏或者产生错误时更新数据库信息 --nosignature : 忽略数字签名的检查 --prefix : 改变软件的默认安装路径 --noscripts : 禁止RPM执行一些后置指令,如一些初始化的指令 实例: http://www.rpmfind.net/中,使用wget 在安装光盘中,使用cp # rpm -ivh python-*.rpm RPM升级 1)–Uvh : 如果软件安装过则更新,若没安装过直接安装 2)-Fvh : 只有该软件安装过才会升级,否则不予升级 实例: # rpm –qa python 查看当前软件的版本 # rpm –Uvh python-*.rpm 升级 RPM查询 1)-q : 只查询软件是否安装 2)-qa : 列出本机安装的所有的软件名称,可以通过 | grep来过滤 3)-qi : 列出软件的详细信息,如开发商、版本、说明等 4)-ql : 列出该软件所有的文件、所在目录完整名(list) 5)-qc : 列出该软件所有的配置文件 6)-qR : 列出该软件依赖的其他软件的文件 7)-qf : 查询某个文件属于哪个软件所有 8)--noscripts:禁止RPM执行一些后置指令,如一些初始化的指令 实例: # rpm –qa python RPM验证 1)-V : 查询软件所有被修改过的文件 2)-Va : 不接文件名,列出本机所有可能被修改过的程序文件 3)-Vp : 接文件名,列出该软件中可能被修改的文件 RPM卸载与数据库重建 注意要从上往下依次卸载,先卸载不被任何其他软件依赖的软件 -e : 卸载软件 --rebuilddb 重建RPM数据库 8-4 YUM的使用 YUM的安装:执行下面脚本 #!/bin/bash rpm -qa|grep yum|xargs rpm -e --nodeps wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-4.el5.i386.rpm rpm -ivh yum-* cd /etc/yum.repos.d/ mv rhel-debuginfo.repo rhel-debuginfo.repo.bakup mv rhel-source.repo rhel-source.repo.bakup wget http://www.linuxidc.com/files/2011/05/06/CentOS-Base.repo yum makecache 查询,yum [list|info|search|provides|whatprovides] 参数 search : 查询某个程序的名称或者是描述 ( yum search mysql) list : 列出目前yum所管理的所有软件以及版本 (rpm -qa) info : 类似list,查询软件的功能、版本说明 (rpm -qai) provides : 通过文件查询所属软件 (rpm -qf) 实例: yum list >list 新创建一个,覆盖 yum list >>list 将内容追加到list后面,如果没有则新建 安装、升级,yum [install | update] 程序名称 install : 安装软件 update : 升级软件,不指定名称则升级整个系统 卸载,yum [remove] 程序名称 remove : 卸载 yum的配置 /etc/yum.repos.d/CentOS-Base.repo yum clean [package | headers | all] /var/cache/yum 9、vi编辑器的使用 9-1 vi vim 9-2 vi的三种模式 命令模式 插入模式,通过aio进入 扩展模式,通过:进入 9-3 移动光标 hjkl -> 左下上右 w下一个字符,b上一个字符 (上一个句子,)下一个句子,{上一个段落,}下一个段落 9-4 命令模式下修改、复制、删除等操作 9-5 撤销操作 a)u,撤销最近一次的修改,undo b)ctrl – r,取消最后一次的撤销,redo c)U,撤销所有修改 9-6 查找操作 a)/text, 向后搜索 b)?text,向前搜索 c)n,搜索下一个同样的内容 d)N,搜索上一个同样的内容 9-7 粘贴操作 a)用p粘贴复制、修改或者删除的数据 b)对于行,p粘贴在行上,P粘贴在行下 c)对于字符,p粘贴在字符右侧,P粘贴在字符左侧 9-8 命令模式下的一些技巧 a)dtc,删除从光标到c之间的所有字符 b)rc,将光标下的字符替换为c c)dw,删除游标处所在的字符 d)5dd,删除5行数据 e)5yy,复制5行数据 f)5x,删除5个字符 g)R,进入替换状态,Esc退出 9-9 保存、退出,进入扩展模式 a):w,保存 b):q,退出 c):wq,保存并退出 d):w!,强制保存 e):q!,强制退出 f):wq!,强制保存退出 9-10 文件内定位 1)G,跳转到文件最后一行 2)1G,跳转到文件第一行 3)ctrl d,往下滚动半屏 4)ctrl u,往下滚动半屏 9-11 屏幕定位相关 1)H,跳转到本屏显示的第一行 2)M,跳转到本屏显示的中间一行 3)L,跳转到本屏显示的最后一行 4)z Enter,使当前的行成为屏幕显示的第一行 5)z -,使当前行成为屏幕的最后一行 9-12 查找并批量替换 – 通过sed来查找 实例: :s/i/- 将本行中i替换为- :s/i/-/g 将本行中所有的i替换为- :1,10s/i/-/g 将1到10行中的所有的i替换为- :1,$s/i/-/g 将文件中所有的i替换为- 9-13 读取和保存 实例: :r test.txt 将test.txt的内容读入到当前文件 :1,3 w newfile.txt 将1-3行的内容写入到newfile.txt中 :1,$ w newfile.txt 将整个文件写入到newfile.txt中 :1,3 w >>oldfile.txt 将1-3行数据追加到oldfile.txt中 9-14 设置 1):set,显示常用的配置选项 2):set all,显示所有的配置选项 3):set number,设置行号 10、bash shell 的学习 10-1 bash shell 的概述 Bash是Bourne Again Shell的简称,是从Unix系统中的sh发展而来,是用户和Linux内核交互的工具,用户通过bash操作内核完成系统的使用和管理 Shell的种类 /bin/sh – 已经被/bin/bash替代 /bin/bash – 默认的shell /bin/ksh – 源自贝尔实验室,兼容bash /bin/tcsh – 整合C shell,功能更为强大 /bin/csh – 已经被tcsh取代 /bin/zsh – 源自ksh功能更为强大 10-2 bash shell 的配置 变量概述 变量是代表一些值得符号: 可以通过变量来设置shell或者其他程序 变量存在于内存中 Linux有自定义变量(local)和环境变量(environment) 自定义变量和环境变量作用范围不同 可以使用以下指令查看所有变量: set可以查看所有变量 env只能查看环境变量 unset删除变量 bash shell有以下几种设置方式: 通过自定义变量设置 VARIABLE=value来设置 echo $VARIABLE获取变量值 变量名不能以数字或特殊字符开头 实例: # mysql=/root/dirs/mysql/bin # echo $mysql # cd $mysql 常见的变量 1)HISTFILESIZE: 记录历史指令保存的最大值 2)COLUMNS: 终端窗口显示的宽度 3)LINES: 终端窗口显示的高度 4)PS1: 设置提示符号前面的内容样式(\d, \h, \t, \u, \w, \!, \$, \l, \#等) 实例: # set |grep PS1 # PS1=‘[\u@\h \w \t]\$’ 通过别名设置 # type ll # alias cls=’clear’ # alias //查看所有别名 # alias cls //查看别名值 # type –a cls # unalias cls //删除别名定义 通过set指令设置 set自身查看所有变量值 设置shell内部的属性值(set –o noclobber, set –o vi) 通过环境变量设置 自定义变量只能在当前的shell环境中有效 环境变量会在整个主机下的shell环境中生效 使用$或export [variable name]来设置 常用变量介绍: HOME:指向当前用户的家目录 LANG:应用程序使用何种语言显示界面 PWD:指向用户当前的工作目录路径 PATH变量: 系统预设的环境变量 执行一些没有指定路径的指令时会去该路径中找 PATH=$PATH.: 将隐藏路径设置到PATH中,会带来安全性问题 可以使用which指令来找到某个指令所在的位置 10-3 shell startup scripts的原理和功能 概述 用户登录或其他非登录动作时会自动执行的一些shell脚本: 建立自定义变量或者执行set指令设置shell 建立环境变量,设置其他程序 使用alias,简化后续的操作 登录的时候执行哪些程序 分为login和non-login脚本 login shell: 通过完整的登录流程时运行的shell 首先会读取/etc/profile(PATH/USER/HOSTNAME/HISTSIZE等) 读取/etc/profile.d/*.sh(颜色、语言、指令别名等) ~/.bash_profile、~/.bash_login、~/profile(只依次读取其中一个) ~/.bash_rc、/etc/bashrc source指令加载脚本的变更 non-login shell: - 即在终端中输入bash时 不需要登录即可运行的shell,如su和原bash下的新bash动作 ~.bash_rc、/etc/bashrc 读取/etc/profile.d/*.sh (颜色、语言、指令别名等) ~/.bash_logout: 在注销用户时会运行该脚本 可以执行备份、缓存和临时文件清理等任务 10-4 数据流重定向和管道命令 标准输入输出和错误输出概述 概念: stdin是指令数据的输入,代码为0,使用<或者<<,默认是键盘 stdout是指令执行成功返回的结果,代码为1,使用>或者>>,默认由屏幕显示 stderr是指令执行失败返回的错误信息,代码为2,使用2>或2>>,默认是屏幕 实例: # ls -al /dev/std* 数据流重定向的使用 <: 指定输入的数据媒介来源 1>: 将正确的内容覆盖输出到指定的媒介 1>>: 将正确的内容追加到指定的媒介 2>: 将错误信息覆盖输出到指定的媒介 2>>: 将错误信息追加到输出指定的媒介 实例: # find /root ins 1>success 2>failed # find /root ins >all 或者 # find /root ins &>all 其中&就是表示0、1、2 # tr ‘a-z’ ‘A-Z’ <hello.c p="" 将hello.c的小写转换为大写 多个指令执行的判断方法 实例: # mkdir test&&cd test&&touch conf.txt //前者执行成功才会执行后者 # mkdir test||mkdir test1 //将第一个执行失败,才会去执行第二个,若第一个执行成功,不会执行第二个 管道命令概述 命令通过管道符|连接 能够接受标准输入(stdin),如tail/more/grep等 能够接受来自前一个指令的正确的数据作为stdin进行处理 实例: # ls –la |more //通过翻页的形式 # ls –la |more |grep hostname grep指令,grep [-cinv] ‘key’ filename,支持正则 1)-c, 计算字符出现的个数 2)-i, 忽略大小写进行查找 3)-n, 输出行号 4)-v, 显示没有该字符的行 实例: # grep –in ‘[a-z]the’ test.txt //显示行号并忽略大小写显示‘the’ # grep –ic ‘the’ test.txt //统计并忽略大小写‘the’出现的次数 # grep –icv ‘the’ test.txt //统计出‘the’没有出现的行 # grep –in –-color=auto ‘the’ content.txt //显示‘the’的行号,标红,忽略大小写 # grep –in –-color=auto ‘the’ content.txt |grep –-color=auto take //继续过滤 sort指令,sort [-fbknrtu] filename 1)-f, 忽略大小写 2)-b, 忽略最前面的空格 3)-m, 以月份英文名字排序 4)-n, 使用数字排序 5)-r, 逆向排序 6)-t, 分隔符,默认是tab分割 7)-k, 以第几列来排序 实例: # cd /root/usr/bin # ls –l # ls –l |sort –t ‘ ’ –k 5 –n //按照第五列以空格分开从小到大排序 wc指令,wc[-lwm] filename,统计功能 1)-i, 统计行 2)-w, 统计词 3)-m, 统计字符 实例: # cat content.txt |wc –l # cat content.txt |wc –w # cat content.txt |wc –m 除此之外还有很多管道命令:tr cut join paste等
|







关注官方微信