工作中需要接触到Linux服务器,需要通过Putty登陆到远程服务器上查看日志,重启服务等,看样真到了学习使用Linux的时候了。那就开始吧,先打算从平时接触到的几个命令和一些简单概念开始,后期会通过《鸟哥的私房菜》这本书系统的好好学习一下吧。
gzip/gunzip(g-unzip): 这两个是Linux下使用非常广泛的压缩解压缩命令(gunzip其实就是gzip的硬链接,压缩与解压都可通过gzip单独完成),这两个命令均有一些比较好用的参数(查看参数可通过命令+ --help后缀进行,如果 gzip --help), 这里就强调一个就是 -c, 在两个命令下均是将命令的输出输入的标准输出中(前台的命令控制台)。对于gzip和gunzip,如果不使用-c进行压缩解压,在操作后都会把原始文件删除!使用-c参数,可以保证原始文件被保留。
看一个使用gunzip的例子:
gunzip -c access_gamestation_log.20121105-150000.gz | grep -i wii | tee tony.log
解压缩access_gamestation_log.20121105-150000.gz将内容输出到标准输出中,并且在其中寻找忽略大小写的wii,最后把得到的内容输入到tony.log文件中。
tee:从标准输出中读取内容,将这些内容再输出到某些文件和标准输出中!
cat:用于把一整个文件内容发送到标准输出中,如果不和别的命令配合使用,会将文件所有内容不分行地打印到屏幕上。cat还可以用于将多个文件内容合并并输出到标准输出中。可以配合重定向符(> 或 >>)将标准输出的内容重定向到其它文件中。> : 覆盖原始内容输入, >> : 将内容追加到原始内容的后面。tac : 倒序显示整个文件内容。
>和>>两种重定向符的区别:cat a.log > b.log将a.log的内容输入到b.log中,覆盖b.log中原始内容。cat a.log >> b.log,将a.log内容输入到b.log文件中,附加在b.log原始文件的尾部! > 重定向和 tee 的区别就是,tee是从标准输出(通常就是控制台)中读取内容输出到另一个输入流中,而 > ,是直接读取某个输出流的内容,输出到另一个输入流中!
ln : Linux中文件的连接有软硬之分,Hard Link和 SymbolicLink。在Linux中,每个磁盘中的文件都会有一个编号,叫做索引节点号,Linux支持多个文件路径执行同一个索引节点号,这就是硬连接的概念。硬连接允许用户为一个文件创建多个有效的文件路径!这样最大的好处是对于重要文件可以防止误删除发生,对于磁盘上的一个文件,只有其最后一个硬连接被删除了,才会导致该文件数据从磁盘上被清除!软连接(符号连接)就是Windows平台上的快捷方式,快捷方式的删除不会导致磁盘数据文件的删除!可以通过硬连接创建多个软连接,该硬连接被删除则依赖其的所有软连接都会失效!
ln命令默认创建的是硬连接,通过参数-s可以创建软连接。
mkdir:创建目录的命令
rmdir:删除空目录
touch:通常的使用手法是 touch file, file为文件或目录名称。如果该文件不存在,则创建一个空文件,如果存在,则改变该文件或目录的时间信息,包括存取时间和修改时间。这个命令在实际工作中有一个很经常使用的用处就是,修改了一个内嵌的jsp文件,touch一下最外层的jsp文件改变其修改时间,让这个内嵌的jsp文件进行重新加载。
rm:删除一个文件,通过-r参数可以用于删除目录,通过-f参数,可以进行强制删除!
cp:复制一个文件,cp 文件名 目的路径 即可将某个文件拷贝到特定的路径下!
alias: 建立别名的命令,可以将一串特别长的命令进行简化!直接执行alias命令, 可以列出目前系统中设置的所有别名。如果你要每次要进入一个特别长的路径目录中,你可以将那个cd命令做成一个别名,简化你的打开操作!
clear: 清屏。
passwd: 修改当前登录用户密码!需要输入原始密码。
cd: 切换目录,cd 目录名称 即可, 只运行 cd 可以切换到用户主目录中!系统变量 $HOME 代表用户主目录,可以通过 echo $HOME 查看