Linux Public Basics公共基础
备注:本文以倒叙方式编辑,各版块内容从下至上。比如先编写的“ Linux文件系统”,而后是“系统管理命令整理”,故在本文表现为后者位于前者的上面,以此类推。是为了不断更新内容而考虑。
20161108
备注1:20161108 15:54,系统学习过之后上述列出的内容就不再显得生疏。建议先了解目录树和 Linux文件系统层次化标准(Linux FileSystem Hierarchy Standard(FHS)),然后再系统学习相应系统操作命令(关于应用服务的搭建可以在学习基础操作命令后就开始)。(个人是先学习少数常用系统基础的操作命令,然后直接上手应用服务的搭建,在实践中练习并精进命令的使用,同时了解FHS&目录树,然后再系统全面地学习操作系统管理与维护、审计的命令以及应用服务如数据库的内部操作命令)
2.本文开篇部分不够系统化,是初学之初零散的记录。重点部分在于系统操作命令的梳理和FHS!!!!!!
---------零散记录已删除,会在公共基础--中阶 博文中整理出来-------------------
20161021 08:39——11:21
系统管理命令整理
一、Linux操作系统基础知识(系统管理常用命令)统筹总结
---Shell基本命令---
------------1----------------------------------------
备注:1.登录操作系统之后,终端界面命令行的第一字符#代表是root用户登录;$代表是普通用户登录2.linux系统中“目录”就是windows中的文件夹
cd:change directory 改变目录即是换个工作场所
cd - ------ 返回到上一目录
cd ~ 或者 cd [直接回车] ------进入当前用户的主目录、家目录
cd 指定目录路径 进入相应的目录中
备注:cd 自动识别目录,如“cd /etc/sysconfig”等效于“cd /etc/sysconfig/”(注意后者末尾添加了正斜杠,自动识别存在的目录的功能的还有mv、cp等,比如cp,将文件复制到另一路径下若目的路径下有同名子目录名则不能复制成功;比如mv用于移动并重命名时若目的路径下有与重命名同名的子目录则重命名失效而是将文件原样移动到目的路径的同名子目录中去)
ls [-l\a\F\d\h] 列出目录内容, 选项分别表示长信息显示、显示含隐藏文件的所有文件、以后缀形式显示文件类别、d:directory查看目录属性、以M字节显示文件大小
ls -l 简写是ll,同效命令是vdir
备注:ls不仅可以查看当前目录下的内容(文件或子目录),还可以指定路径目录下的内容,并且几乎所有命令都有类似“隔山打牛”的功能,如vim、more、source
du -sh /home/shixiu #查看目录全体文件所占空间大小,-s, --summarize,h,human,不使用-s选项的话将会显示一个目录下的所有分支子目录的信息。
pwd: print working directory 打印/查看当前所在路径或说目录
----------2-------------------------------------------
cp :copy ,复制文件或目录 支持复制并重命名(常用选项-r|R 、-a)
cp /etc/sysconfig/iptables /tmp/network #将指定路径下的文件复制到别处并重命名
cp -r /home/shixiu/ /tmp/sxiu #将指定路径下的目录复制并重命名到别处,需选项-r
选项-r或-R:recursive递归 copy directories recursively
选项 -a :能够复制文件及其属性(创建时建、属主)
mv:move,移动文件或目录支持移动并重命名
mv /home/shixiu/abc /tmp/cba #将指定路径下的文件移动并重命名到指定的别处(若不需要重命名则不需要在路径中后缀重命名名称)
mv /home/test/ /tmp/testdir #将指定路径下的目录一定并重命名到指定的别处(若不需要重命名则不需要在路径中后缀重命名名称),mv移动目录不需要额外选项
备注:cp,将文件复制并重命名到另一路径下若目的路径下有同名子目录或文件则:同名子目录则不能复制成功(可见似乎目录的存在性强于文件),同名文件则可覆盖目的路径下原有文件而复制并重命名成功;将目录复制(-r)并重命名到另一路径下若目的路径下有与重命名名称同名的子目录或文件则:同名子目录则重命名失效而将被复制目录原样复制到目的路径的子目录中,同名文件则也是不能成功的,根据提示即是说文件和目录不能相互覆盖(进一步,其实在同一个目录中不存在文件与目录同名);比如mv用于移动文件并重命名时若目的路径下有与重命名同名的子目录或文件则:同名子目录则将文件原样移动到目的路径的同名子目录中去,同名文件则可将移动文件覆盖目的路径中原有文件移动成功;mv用于移动目录并重命名若目的路径下有与重命名同名的子目录或是文件则重命名失败:同名子目录则会移动其中做子子目录,同名文件则因不能覆盖提示失败。
--------------3----------------------------------------------------
cat 一望到底地查看N个文本文件,不支持逆序显示
cat -n file 查看文本文件并显示行号
-n number 该参数用于显示行号的方式浏览文件,类似浏览方式的还有head和tail
tac 一望到底地逆序查看N个文本文件,不支持显示行号和逆序浏览
head 用于显示N个文件的开头-n用于指定显示文件开头n行,默认则是10行
tail 用于显示N个文件的结尾,-n用于指定显示文件末尾n行,默认则是10行;同时另一种常见用法为“tail -f catalina.out”实时监视文件的增长,# -f:follow该参数用于监视File文件增长。
more 分页方式查看N个文本文件,不支持显示行号和逆序显示
浏览过程中,按下空格向下翻动一页,按Enter键向下滚动一行,按Q退出
/keyword #浏览过程中正斜杠+关键字的方式可以全文向下检索关键字,检索过程中按“n”来持续检索过程,但是more浏览的检索过程不高亮显示关键字;相反的向上检索more不支持!需要注意的是在检索之初输入关键字有误要删除时需要按组合键Ctrl+Backspace
less 分页方式查看文本文件,不支持显示行号,似乎不支持N个文本同时查看,支持逆序显示
浏览过程中,按下空格向下翻动一页,按Enter键向下滚动一行,按Q退出,此外通俗评价是“less的特性看起来更像是一个文本编辑器------只是去掉了文本编辑的功能”,它额外的特性有:(1)可以倒回去向上回顾;(2)支持方向键上下左右浏览以及主键盘字母键J向下K向上来控制浏览;(3)支持文本编辑的光标移动功能,比如按G跳转到文件末尾行,按gg跳转到文件第一行;(4)支持按照行号方式浏览文件(5)/keyword #浏览过程中正斜杠+关键字的方式可以全文向下检索关键字,与more浏览检索相同,额外的less浏览检索的关键字会被高亮显示,且less支持向上检索,通过“?keyword”。
grep 不打开浏览全部文件,只输出文件中检索部分的内容
grep keyword testfile #从testfile中查看keyword所在行的内容
grep通常的组合用法:ps -ef |grep mysql;netstat -anp|grep 8080,即是将前者查找的结果作为输入从中检索并只显示出要查找的内容
--------------4---------------------------------------------------------
find 文件查找,在文件系统中
find /etc/sysconfig -name iptables #在指定路径目录下查找名为iptables的文件
常用选项 :
-i ignore 忽略被查找文件名称大小写,结合-name选项使用(-iname)
-name 按照文件名称查找,常结合"-i ”选项,即-iname,表示匹配文件名查找,并忽略文件名的大小写
-t type 按照文件类型查找(选项可用参数:f:file普通文件、d:directory目录文件、c:charactor字符设备文件、b:block块设备文件、p:pipe有名|命名管道、l:linnk符号链接)
-atime access time 按照被访问时间查找 -ctime change time 按照属性被修改时间查找
-mtime modified time 按照内容被修改时间查找(+n大于n天、-n小于n天)
-user 按照文件所有者来查找
-inode 按照文件i节点来查找
locate 查找文件,快速地,在自动建立的文件名数据库中(最小化安装的centos6.4中没找到该命令,安装mlocate软件包即可)
备注:1. 该命令由软件包mlocate提供,安装mlocate(安装方式:yum -y install mlocate)即可使用locate命令,
2.初装后,使用前需要更新文件名数据库,命令是updatedb。
3.locate查询的是自身的文件名数据库,要注意的是该库中不包含/tmp和/proc目录下的文件,即是说locate无法查询到该目录下的文件。
which 查找程序文件 提供该文件的二进制可执行文件所在位置 和 命令的别名
which excutive-file-name#查找excutive-file-name可执行文件所在路径
备注:若在它所查找的所有路径下没有发现要找的可执行程序则返回如下:
/usr/bin/which: no locate in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_72/bin:/root/bin)
whereis 查找程序文件 并提供该文件的二进制可执行文件、源代码文件和使用手册存放位置
whereis excutive-file-name #查找excutive-file-name可执行文件所在路径
备注:若在它所查找的所有路径下没有发现要找的可执行程序则返回“excufile:”
grep 查找文件内容 *******
grep multiuser /etc/inittab #显示"multiuser"所在行的内容
grep -i multiuser /etc/inittab #显示"multiuser"所在行的内容,不区分关键字的大小写
grep -v ^# /etc/inittab #不显示以“#”为首的行的内容(显示/etc/inittab文件中非注释内容,即只显示有效信息 )
grep -rn "8081" /home/gastest/ #查看/home/gastest/下包含字符串8081的所有文件
grep -rn "port" /home/gastest/ #查看/home/gastest/下包含字符串port的所有文件
grep在系统管理中常被结合使用的两条命令是:
ps -ef |grep mysql #查看相应的进程信息 和 netstat -anlp |grep8080 查看相应的端口信息
man 获取命令和配置文件帮助
备注:最小化安装的操作系统中没有该命令,需要自行安装,可执行如下命令来安装:yum -y install man
whatis 获取命令帮助| 命令简要说明
whatis uname #命令直接以想要查询命令名称为参数
apropos 获取配置文件帮助| 配置文件简要说明
apropos services
command --help|-h 获取命令的常用选项信息
”------4------"PART4 小结:
--------------------------
find\locate;找文件
which\whereis;找命令:可执行文件
grep;找文件内容
----------------------------
man;命令帮助&配置帮助
whatis\apropos;命令帮助\配置帮助
cmd --help;命令常用选项
----------------------------
---文件&目录管理---
touch 新建空文件|刷新文件时间属性
mkdir 新建目录(常用选项-p, --parents)
mkdir -p /tmp/abcparent/abc #欲新建一条全新的路径需要用到-p选项
rm remove删除[指定路径]文件或目录(常用选项-r:recursive,-f:force)
rm -rf /tmp/testfile # -r recursive代表递归执行相应的命令、-f force代表强制该操作
tar 打包|解包目录或文件(常用选项-czvf|-xzvf)
tar cvf documentname.tar /tmp #将tmp目录打包成名为documentname.tar的包文件
tar xvf documentname.tar #将包文件拆开解开,-c create、-x extract提取、-f file指定文件
tar czvf documentname.tar.gz /tmp #将tmp目录打包成名为documentname.tar的包文件,并调用gzip将包文件压缩为documentname.tar.gz
tar xzvf documentname..tar.gz #调用gzip将压缩文件解开,再将包文件打开
tar cjvf documentname.tar.bz2 /tmp #将tmp目录打包成名为documentname.tar的包文件,并调用bzip2将包文件压缩为documentname.tar.bz2
tar xjvf documentname.tar.bz2 #调用bzip2将压缩文件解开,再将包文件打开
备注1:从tar命令说明一下linux系统管理中路径用法的特殊性和一般性。举例如下:
在/tmp路径下存在XYZ.tar.gz包文件,解压缩的命令可写作:tar xzvf XYZ.tar.gz 和 tar xzvf /tmp/XYZ.tar.gz 。其中前者就是特殊写法,缺省了文件所在路径(表明压缩包文件在当前路径下)的tar命令,后者是一般写法,指明了压缩包文件所在的绝对路径。如果压缩包文件就在要解压到的当前路径下,一般会缺省其路径,命令和参数后直接跟压缩包名称即可,但是要明白这是一种缺省路径的特殊写法,要明白与之关联的一般写法,这样就可以思考下一个问题:压缩包文件位于/usr/local路径下,要在/tmp路径下执行解压缩,将其解压到/tmp路径下