回想起来,从事linux运维工作已近5年之久了,日常工作中会用到很多常规命令,之前简单罗列了一些命令:http://www.cnblogs.com/kevingrace/p/5985486.html
今天在这里,详细总结下运维工作中常常用到的一些操作命令(依据本人使用经验而言):

[Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/var']

错误提示:没有可用的临时目录
可能原因:系统的inodes或磁盘空间占满了。清理下inodes空间即可,比如发现/var/spool/clientmqueue/目录里面有大量小文件,清理下一些无用文件。

文件系统结构和基本操作命令                                                                 

chmod命令:改变权限

常用用法:chmod -R xxxx FILE
含义:设置文件或者目录的权限属性,加上R选项,表示递归设置目录下文件和目录的权限属性
上面有4个x,每个x的值为0-7,如果少于4个,那么默认在前面用0值补全,即“77”等价于“0077”。为了简单起见,我们每次使用的时候,都指定4个x好了。
第一个"x":设置SUID(4),SGID(2),STICKY(1)
第二个"x":设置文件属主的r权限(4),w写权限(2),x执行权限(1)
第三个"x":设置文件所属组的r权限(4),w写权限(2),x执行权限(1)
第四个"x":设置其他用户的r权限(4),w写权限(2),x执行权限(1) 备注:
设置了SUID,会把文件属主的"rwx"中的x替换为s[文件属主具有x权限]或者S[文件属主不具有x权限]
设置了SGID,会把文件所属组的"rwx"中的x替换为s[文件所属组具有x权限]或者S[文件所属组不具有x权限]
设置了STICKY,会把其他用户的"rwx"中的x替换为t[其他用户具有x权限]或者T[其他用户不具有x权限] 另外有一个问题需要注意:
1)在清除一般文件的SUID,SGID,STICKY权限的时候,可以使用"chmod 0xxx"的形式
2)在清除目录的SUID,SGID权限的时候,不可以使用"chmod 0xxx"的形式。在[1]中也提到了一个解决方案,
就是在原先的4个x的基础上,再加一个或多个前置x,我们取1位0好了,即"0xxxx"的形式。 综上,我们使用"0xxxx"(指定5位)来设置文件属主,文件所属组,其他用户的rwx权限和SUID,SGID,STICKY权限。

chown命令:改变属主

常用用法:chown [-R] OWNER FILE
含义:改变文件的所有者,加上R选项,表示递归 通常使用时会加上改变所属组的部分,即"所属者.所属组" 或者 "所属者:所属组"
chown [-R] OWNER.GROUP FILE
chown [-R] OWNER:GROUP FILE

chgrp命令:改变属组

常用用法:chgrp [-R] GROUP FILE
含义:将FILE的用户组改为GROUP,如果指定了-R选项,那么递归改变

rm命令:删除文件

常用用法:rm -rf FILE
含义:删除文件
-r:如果FILE是目录,那么递归删除目录;
-f:如果FILE是只读文件,不再提醒,直接删除

find命令:查找文件

一、常用用法
find path [-maxdepth N] test 二、含义与选项
2.1、含义
在指定路径下,找到符合条件的文件和目录。 2.2、选项表示的意思
"path":表示查找范围的路径。
"-maxdepth N":表示查找的最深深度为N层。
"test":查找需要满足的条件。 三、常用的test
3.1、关于文件时间的几个test
test 说明
-amin n 以最后访问文件block节点中数据的时间为判断依据,以多少个分钟为单位
-atime n 以最后访问文件block节点中数据的时间为判断依据,以多少个24小时为单位
-cmin n 以最后修改文件inode节点中元数据的时间为判断依据,以多少个分钟为单位
-ctime n 以最后修改文件inode节点中元数据的时间为判断依据,以多少个24小时为单位
-mmin n 以最后修改文件block节点中数据的时间为判断依据,以多少个分钟为单位
-mtime n 以最后修改文件block节点中数据的时间为判断依据,以多少个24小时为单位 需要注意:在以上6个选项中,数字"n"有3种形式,分别是:n,+n,-n 为了更加透彻完整地理解,可以归纳得到如下结论。
3.1.1)以"多少个分钟"为单位的选项
第一种情况"n"为"n"
(FileTime-(NowTime-n*UNIT))>0 && (FileTime-(NowTime-n*UNIT))<=UNIT 第二种情况"n"为"+n"
(FileTime-(NowTime-n*UNIT))<0 第三种情况"n"为"-n"
(FileTime-(NowTime-n*UNIT))>0
"n"和"-n"的情况具有一定的重复区域,即某个时刻"n"能够找到某个文件,"-n"也能够找到相同的文件。 3.1.2)以"多少个24小时"为单位的选项
第一种情况"n"为"n"
(FileTime-(NowTime-(n+1)*UNIT))>0 && (FileTime-(NowTime-(n+1)*UNIT))<=UNIT 第二种情况"n"为"+n"
(FileTime-(NowTime-(n+1)*UNIT))<0 第三种情况"n"为"-n"
(FileTime-(NowTime-n*UNIT))>0 注意:这里没有"n+1",避免了"n"和"-n"的情况下的重复区域。 特别备注:
1)在上述描述中,系统当前时间(NowTime)和文件相应字段的时间(FileTime)都表示成以秒为单位;在以"多少个分钟"为单位的选项中,
UNIT=60(1分钟有60秒),在以"多少个24小时"为单位的选项中,UNIT=24*60*3600(24小时有24*60*3600秒)
2)加了"-daystart"选项后,NowTime就变为当日午夜时间 3.1.3)举一些例子来看
先假设系统当前时间是"2015-06-09 13:35:50"。
示例1
那么find . -amin 10命令,查找的文件的"atime"范围:
2015-06-09 13:25:51 -- 2015-06-09 13:26:50 示例2
那么find . -amin -10命令,查找的文件的"atime"范围:
2015-06-09 > 13:25:50[因此,"2015-06-09 13:26:30"就既能通过-amin 10得到,也能通过-amin -10得到] 示例3
那么find . -amin +10命令,查找的文件的"atime"范围:
2015-06-09 < 13:25:50 示例4
那么find . -atime 5命令,查找的文件的"atime"范围:
2015-06-03 13:35:51 -- 2015-06-04 13:35:50 示例5
那么find . -atime -5命令,查找的文件的"atime"范围:
2015-06-04 > 13:35:50 示例6
那么find . -atime +5,查找的文件的"atime"范围
2015-06-03 < 13:35:50 3.2、关于文件权限的test
test 说明
-perm mode 目的文件的权限跟"mode"一致
-perm -mode 目的文件的权限包含了"mode"
-perm /mode 目的文件的权限跟"mode"有交集 3.3、关于文件类型的test
关于文件类型的test为"-type c",其中"c"表示文件类型特征码,对于文件类型特征码的介绍:
b block (buffered) special
c character (unbuffered) special
d directory
p named pipe (FIFO)
f regular file
l symbolic link;
s socket
D door (Solaris) 3.4、关于文件所属用户的test
"-user uname":表示属于"uname"这个用户的文件,"uname"可以是"用户名称",也可以是"用户ID,即uid"。 3.5、关于文件所属用户组的test
"-group gname":表示属于"gname"这个用户组的文件,"gname"可以是"用户组名称",也可以是"用户组ID,即gid"。 3.6、关于文件名称的test
"-name pattern":文件名符合"pattern"这个正则表达式的文件。 四、其他
"find"命令的完整定义:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression] 但是在使用"find"命令的时候,一般不解析遇到的软符号链接文件,如果解析的话很容易造成递归死循环,而我们一般也不使用调试和优化选项,
因此"-H","-L","-P","-D","-O"这些选项一般不常用。 "expression"中包括了"options","tests","actions",以及它们之间的"operators"这四个部分。但是"options"一般也没有什么用,除了
"-maxdepth"这个"option"],"actions"也比较复杂,因而我们可以选择先使用简单的"find"命令,找出符合条件的文件,然后再通过管道或者
脚本的方式进行操作。 因此,最终"-H","-L","-P","-D","-O","expression"中的"options","actions","operators"都不需要。

ln命令:建立符号链接文件

常用用法:ln [-s] TARGET LINK_NAME
含义:
有-s选项,表示建立到TARGET的软符号链接文件,软符号链接文件的文件名为LINK_NAME
没有-s选项,表示建立到TARGET的硬符号链接文件,硬符号链接文件的文件名为LINK_NAME 注意:当一个区分比如/分区空间快爆满时,可以将这个分区下的大文件先mv到别的大分区下(比如home区分),然后再将这个大文件从home分区软链接回到/分区下

mount命令

格式:mount [-参数] [设备名称] [挂载点] 

其中常用的参数有:
-a 安装在/etc/fstab文件中类出的所有文件系统。
-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。
-n 不把安装记录在/etc/mtab 文件中。
-r 讲文件系统安装为只读。
-v 详细显示安装信息。
-w 将文件系统安装为可写,为命令默认情况。 -t 指定设备的文件系统类型,常见的有:
ext2 linux目前常用的文件系统
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 网络文件系统
iso9660 CD-ROM光盘标准文件系统
ntfs windows NT/2000/XP的文件系统
auto 自动检测文件系统 -o 指定挂载文件系统时的选项,有些也可写到在/etc/fstab中。常用的有:
defaults 使用所有选项的默认值(auto、nouser、rw、suid)
auto/noauto 允许/不允许以 –a选项进行安装
dev/nodev 对/不对文件系统上的特殊设备进行解释
exec/noexec 允许/不允许执行二进制代码
suid/nosuid 确认/不确认suid和sgid位
user /nouser 允许/不允许一般用户挂载
codepage=XXX 代码页
iocharset=XXX 字符集
ro 以只读方式挂载
rw 以读写方式挂载
remount 重新安装已经安装了的文件系统
loop 挂载回旋设备 需要注意:
挂载点必须是一个已经存在的目录,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount以后会恢复正常。 使用多个参数的时候,-o只用一次,参数之间用半角逗号隔开:
[root@redis-new01 ~]# mount –o remount,rw / 例如要挂载windows下文件系统为FAT32的D盘,一般而言在Linux下这个分区对应/dev/hda5,根据具体的分区情况会有不同,
这里就以hda5来举例说明:
[root@redis-new01 ~]# mkdir /mnt/hda5 //创建hda5的目录作为挂载点,位置和目录名可自定义//
[root@redis-new01 ~]# mount -t vfat /dev/hda5 /mnt/hda5 一般而言,Linux会自动探测分区的文件系统,除非让你指定时,否则-t vfat 可以省掉。
[root@redis-new01 ~]# mount /dev/hda5 /mnt/hda5
这样就可以进入/mnt/hda5目录去访问分区中的资源了。 =====为什么mount上分区后显示不了中文文件为问号/乱码?=====
显示问号表明你的系统中没有可识别使用的中文字体,请先安装中文字体。确保你的系统已经可以很好的显示中文。显示为乱码一般是mount默认
使用的文件系统编码和文件系统中文件的实际编码不一致造成的。要想正常显示中文文件,mount时需要用到 -o 参数里的codepage和iocharset
选项。codepage指定文件系统的代码页,简体中文中文代码是936;iocharset指定字符集,简体中文一般用cp936或gb2312。
[root@redis-new01 ~]# mount –o iocharset=gb2312 codepage=936 /dev/hda5 /mnt/hda5 一般来说 mount –o iocharset=cp936 /dev/hda5 /mnt/hda5 就可以解决问题了。
如果这样做了以后还有问题,请尝试UTF-8编码:
[root@redis-new01 ~]# mount –o iocharset=utf8 /dev/hda5 /mnt/hda5 =====为什么mount上去以后分区普通用户不可写?=====
mount时加上 –o umask=000 即可:
[root@redis-new01 ~]# mount –o umask=000, iocharset=cp936 /dev/hda5 /mnt/hda5 =====为什么mount上去后的分区中的文件都变成短文件名了?=====
这是文件系统挂错的原因,将FAT32挂载成FAT16时就会出现这种情况,先umount,然后用 –t vfat 重新挂载即可解决问题。
[root@redis-new01 ~]# mount –t vat /dev/hda5 /mnt/hda5 =====为什么不能mount ntfs分区?======
这是内核不支持NTFS文件系统的原因,请重新编译内核或者安装内核的NTFS文件系统支持包,以使得内核有NTFS文件系统的支持。 =====如何挂载U盘和mp3?=====
如果计算机没有其它SCSI设备和usb外设的情况下,插入的U盘的设备路径是 /dev/sda1,用命令:
[root@redis-new01 ~]# mkdir /mnt/u
[root@redis-new01 ~]# mount /dev/sda1 /mnt/u
挂载即可。 =====可以直接使用iso文件吗?=====
可以,就是mount的这一选项使得Linux下有免费虚拟光驱的说法,具体用法是:
[root@redis-new01 ~]# mkdir /mnt/iso
[root@redis-new01 ~]# mount –o loop linux.iso /mnt/iso
当然,挂载以后挂载点/mnt/iso也是只读的。 =====怎么不可以mount iso文件?=====
一般而言,大多数的发行版使用的内核均已将loop设备的支持编译进去了,但是也有没有的情况,所以请确保系统所使用的内核支持loop设备。
第二种情况是iso文件被放置到了NTFS或其它只读文件系统中了。挂载loop 设备必须要求挂载到一个可写的分区中,目前Linux内核对NTFS
文件系统的写支持非常有限,请将iso文件复制到其它可写文件系统中后再挂载。 =====如何挂载光驱和软驱=====
一般来说CDROM的设备文件是/dev/hdc,软驱的设备名是/dev/fd0
[root@redis-new01 ~]# mkdir /mnt/cdrom
[root@redis-new01 ~]# mount /dev/hdc /mnt/cdrom //挂载光驱 //
[root@redis-new01 ~]# mkdir /mnt/floppy
[root@redis-new01 ~]# mount /dev/fd0 /mnt/floppy //挂载软驱 // =====为何挂载的CD-ROM不能显示中文文件?=====
使用 –o iocharset=cp936 选项一般能解决问题,否则使用utf-8编码。
[root@redis-new01 ~]# mount –o iocharset=cp936 /dev/hdc /mnt/cdrom =====如何开机自动挂载分区?=====
每次挂载都要输入那么长的命令的确是繁琐了些,只要将分区信息写到/etc/fstab文件中即可实现系统启动的自动挂载,例如对于/dev/hda5的自动挂载添加如下的行即可:
/dev/hda5 /mnt/hda5 vfat defaults,iocharset=cp936, rw 0 0 ===== 如何挂载samba 分区?=====
[root@redis-new01 ~]# mkdir /mnt/share
[root@redis-new01 ~]# mount -t smbfs -o username=root,password=abc,codepage=936,iocharset=gb2312//192.168.1.100/share /mnt/share
如果中文显示不正常请尝试UTF-8编码。当然可以写到fstab中实现自动挂载。 =====mount --bind是什么意思?=====
mount --bind 是将一个目录中的内容挂载到另一个目录上,用法是
[root@redis-new01 ~]# mount --bind olddir newdir 该命令使得自己搭建的FTP要共享某个目录的时候变得特别方便。如果要取消mount用命令:
[root@redis-new01 ~]# mount --move olddir newdir 即可。 如果mount --bind 也想写入fstab中的话格式如下:
olddir newdir none bind 0 0 =====umount基本用法是?=====
譬如 /dev/hda5 已经挂载在/mnt/hda5上,用一下三条命令均可卸载挂载的文件系统
[root@redis-new01 ~]# umount /dev/hda5
[root@redis-new01 ~]# umount /mnt/hda5
[root@redis-new01 ~]# umount /dev/hda5 /mnt/hda5 =====为什么umount的时候老显示 device busy?=====
这是因为有程序正在访问这个设备,最简单的办法就是让访问该设备的程序退出以后再umount。
可能有时候用户搞不清除究竟是什么程序在访问设备,如果用户不急着umount,则可以用:
[root@redis-new01 ~]# umount -l /mnt/hda5
来卸载设备。选项 –l 并不是马上umount,而是在该目录空闲后再umount。
还可以先用命令 ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样就umount的非常放心了。 方法一:
# fuser -m -v /nfs_old/
/nfs_old/: root 2699 ..c.. bash
root 2999 ..c.. su 如上所示,有两个进程占用了,将其kill掉,再重新取消挂载。
# kill -9 2699 2999
# umount /nfs_old/ 方法二:
# umount -l /nfs_old/ 方法三:
# fuser -km /nfs_old/ =========================案例说明=========================
在做项目时,客户需要FTP同时访问两个目录,即实现一个ftp账号同时访问两个目录。要清楚,在建FTP时,都是一个用户对应一个目录,
当FTP用户登录后,就只访问当前目录。但如果需要访问到其他目录,这个该如何解决呢? 刚开始以为使用链接可以实现这个功能,但是发现链接成功了,但是使用ftp是不可以访问的,不成功。
最终解决方法:使用mount的方法,把目录挂到,原来的目录中。 例如:
用户test要同时访问到目录/data1、/data2
在test用户家目录下新建两个目录test1、test2
然把把/data1、/data2挂到对应的test1、test2
[root@huanqiu ~][root@redis-new01 ~]# mkdir /home/test/{test1,test2}
[root@huanqiu ~][root@redis-new01 ~]# mount --bind /data1 /home/test/test1
[root@huanqiu ~][root@redis-new01 ~]# mount --bind /data2 /home/test/test2 这样就可以使用test账号登陆ftp后,同时访问到/data1、/data2目录了。

mkdir命令:建立目录

常用用法:
含义:创建目录;
如果是创建层次目录结构(即创建连级目录),就加上-p参数。
例如:
mkdir test1 test2 ...
mkdir -p test/test1/test2/test3
mkdir test/test{1,2,3,4,5}

tar命令:打包

解压
语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。 主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。
x 从档案文件中释放文件。相当于拆包。
t 列出档案文件的内容,查看已经备份了哪些文件。 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。 辅助选项:
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压? 一般格式为xx.tar.gz或xx. tgz
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩或解压?一般格式为xx.tar.bz2
-v :压缩的过程中显示文件!这个常用
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加其他参数!
-p :使用原文件的原来属性(属性不会依据使用者而变)
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
--remove-files:打包后将源文件删除 常常使用的结构:
tar
tar.gz
tar.bz2 比如将文件file1打包上上面三种格式,分别是:
tar -vcf file.tar file #将文件file打包成tar格式,打包参数-c
tar -vxf file.tar -C /mnt #将file.tar包解压到目标目录/mnt上,解包参数-x,-C是解压到哪个目标目录下 tar -zvcf file.tar.gz file
tar -zvxf file.tar.gz -C /mnt tar -jvcf file.tar.bz2 file
tar -jvxf file.tar.bz2 -C /mnt 示例一:
[root@localhost ~]# ll /mnt/kevin.txt
-rw-r--r--. 1 root root 0 Jun 8 03:03 /mnt/kevin.txt
[root@localhost ~]# tar -zvcf /opt/kevin-`date +%Y%m%d`.tar.gz /mnt/kevin.txt --remove-files
tar: Removing leading `/' from member names
/mnt/kevin.txt
[root@localhost ~]# ll /opt/
-rw-r--r--. 1 root root 118 Jun 8 03:03 kevin-20180608.tar.gz
[root@localhost ~]# ll /mnt/kevin.txt
ls: cannot access /mnt/kevin.txt: No such file or directory 示例二:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc    <==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc  <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc  <==打包后,以 bzip2 压缩 特别注意:
在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
上述指令在执行的时候,会显示一个警告讯息: tar: Removing leading `/" from member names 这是关于绝对路径的特殊设定。 示例三:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
就得要加上 z 这个参数了!这很重要的! 示例四:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的!以这个示例来说
我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz
则解开的目录会在 /usr/local/src/etc ,另外,如果您进入 /usr/local/src/etc
则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔! 示例五:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了! 示例六:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc 另外:tar命令的C参数
[root@linux ~]# tar -cvf file2.tar /home/usr2/file2
tar: Removing leading '/' from members names
home/usr2/file2
该命令可以将/home/usr2/file2文件打包到当前目录下的file2.tar中, 需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr2/,根目录'/'被自动去掉了)一并被压缩进来。使用tar命令解压缩后会出现以下情况: [root@linux ~]# tar -xvf file2.tar
[root@linux ~]# ls
…… …… home …… ……
解压缩后的文件名不是想象中的file2,而是home/usr2/file2。 [root@linux ~]# tar -cvf file2.tar -C /home/usr2 file2
该命令中的-C dir参数,将tar的工作目录从当前目录改为/home/usr2,将file2文件(不带绝对路径)压缩到file2.tar中。 注意:-C dir参数的作用在于改变工作目录,其有效期为该命令中下一次-C dir参数之前。 使用tar的-C dir参数,同样可以做到在当前目录/home/usr1下将文件解压缩到其他目录,
例如:
[root@linux ~]# tar -xvf file2.tar -C /home/usr2
而tar不用-C dir参数时是无法做到的: [root@linux ~]# tar -xvf file2.tar /home/usr2
tar: /tmp/file: Not found in archive
tar: Error exit delayed from previous errors

unrar命令:解压RAR文件

一、常用用法
unrar x "rar文件名" 二、含义与选项
2.1、含义
解压rar文件到当前目录,并保存原压缩文件目录结构。 2.2、选项
“x”:解压时保存原压缩文件目录结构 示例:
查看rar包中的内容:
[root@redis-new01 ~]# unrar l *.rar
或者
[root@redis-new01 ~]# unrar v *.rar 测试rar包是否能解压成功:
[root@redis-new01 ~]# unrar t *.rar 解压到当前文件夹:
[root@redis-new01 ~]# unrar e *.rar 解压到指定文件夹:
[root@redis-new01 ~]# unrar x *.rar /tmp ===========================================================
zip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
1)用法:
gzip [选项参数][-s <压缩字尾字符串>] [文件...]
或 gzip [选项参数][-s <压缩字尾字符串>] [目录] 2)功能:
gzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为".gz"。
事实上gzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。 3)选项参数:
-d --decompress --uncompress                  解开压缩文件;
-v --verbose                         显示指令执行过程;
-l --list                          列出压缩文件的相关信息;
-r --recursive                        递归处理,将指定目录下的所有文件及子目录一并处理;
-A --catenate:                       新增文件到已存在的备份文件;
-B                              设置区块大小
-c                              把解压后的文件输出到标准输出设备 示例一
[root@redis-new01 ~]# gzip *
[root@redis-new01 ~]# ll
总用量 12
-r-xr-xr-x. 1 sunjimeng root 411 5月 9 07:59 head_text.gz
-r-xr-xr-x. 1 root sunjimeng 67 5月 9 08:15 less1.gz
-r-xr-xr-x. 1 root sunjimeng 80 5月 9 08:16 less2.gz 示例二
[root@redis-new01 ~]# gzip -d *     //解压当前目录的所有文件
[root@redis-new01 ~]# gzip *                //解压并不能像压缩时那样什么参数都不带,需要带解压命令-d
gzip: head_text.gz already has .gz suffix -- unchanged
gzip: less1.gz already has .gz suffix -- unchanged
gzip: less2.gz already has .gz suffix -- unchanged
[root@redis-new01 ~]# gzip -d *
[root@redis-new01 ~]# ll
总用量 12
-r-xr-xr-x. 1 sunjimeng root 664 5月 9 07:59 head_text
-r-xr-xr-x. 1 root sunjimeng 45 5月 9 08:15 less1
-r-xr-xr-x. 1 root sunjimeng 57 5月 9 08:16 less2 示例三
[root@redis-new01 ~]# gzip -v *
head_text: 42.3% -- replaced with head_text.gz
less1: 4.4% -- replaced with less1.gz
less2: 1.8% -- replaced with less2.gz
[root@redis-new01 ~]# gzip -dv *
head_text.gz: 42.3% -- replaced with head_text
less1.gz: 4.4% -- replaced with less1
less2.gz: 1.8% -- replaced with less2 示例四
[root@redis-new01 ~]# gzip -l *
[root@redis-new01 ~]# gzip -l *
compressed uncompressed ratio uncompressed_name
411 664 42.3% head_text
67 45 4.4% less1
80 57 1.8% less2
558 766 30.3% (totals)
[root@redis-new01 ~]# ll
总用量 12
-r-xr-xr-x. 1 sunjimeng root 411 5月 9 07:59 head_text.gz
-r-xr-xr-x. 1 root sunjimeng 67 5月 9 08:15 less1.gz
-r-xr-xr-x. 1 root sunjimeng 80 5月 9 08:16 less2.gz 示例五
[root@redis-new01 ~]# tar -cvf Dir.tar Dir
Dir/
Dir/head_text.gz
Dir/less1.gz
Dir/less2.gz
[root@redis-new01 ~]# ll
总用量 12
dr-xr-xr-x. 2 root sunjimeng 55 5月 24 07:28 Dir
-rw-r--r--. 1 root root 10240 5月 24 07:34 Dir.tar
[root@redis-new01 ~]# gzip -v Dir.tar
Dir.tar: 92.1% -- replaced with Dir.tar.gz
[root@redis-new01 ~]# gzip -l Dir.tar.gz
compressed uncompressed ratio uncompressed_name
833 10240 92.1% Dir.tar 示例六
[root@redis-new01 ~]# tar cvf Dir1.tar -R Dir
块 0:Dir/
块 1:Dir/head_text.gz
块 3:Dir/less1.gz
块 5:Dir/less2.gz
[root@redis-new01 ~]# tar -cvf Dir2.tar Dir
Dir/
Dir/head_text.gz
Dir/less1.gz
Dir/less2.gz
[root@redis-new01 ~]# tar -cvf Dir3.tar -R Dir
块 0:Dir/
块 1:Dir/head_text.gz
块 3:Dir/less1.gz
块 5:Dir/less2.gz 示例七
[root@redis-new01 ~]# gzip -vr findDir      //递归的压缩子文件夹下的文件
gzip: findDir/Dir/head_text.gz already has .gz suffix -- unchanged
gzip: findDir/Dir/less1.gz already has .gz suffix -- unchanged
gzip: findDir/Dir/less2.gz already has .gz suffix -- unchanged
gzip: findDir/Dir.tar.gz already has .gz suffix -- unchanged
findDir/Dir1.tar: 92.1% -- replaced with findDir/Dir1.tar.gz
findDir/Dir2.tar: 92.1% -- replaced with findDir/Dir2.tar.gz
findDir/Dir3.tar: 92.1% -- replaced with findDir/Dir3.tar.gz
[root@redis-new01 ~]# ls -l findDir
总用量 16
-rw-r--r--. 1 root root 833 5月 24 07:34 Dir.tar.gz
-rw-r--r--. 1 root root 834 5月 24 07:43 Dir3.tar.gz
-rw-r--r--. 1 root root 834 5月 24 07:39 Dir2.tar.gz
-rw-r--r--. 1 root root 834 5月 24 07:39 Dir1.tar.gz
dr-xr-xr-x. 2 root sunjimeng 55 5月 24 07:28 Dir
[root@redis-new01 ~]# ls -l findDir/Dir
总用量 12
-r-xr-xr-x. 1 root sunjimeng 80 5月 9 08:16 less2.gz
-r-xr-xr-x. 1 root sunjimeng 67 5月 9 08:15 less1.gz
-r-xr-xr-x. 1 sunjimeng root 411 5月 9 07:59 head_text.gz 示例八
[root@redis-new01 ~]# gzip -rdv Dir        //递归的解压目录下的所有.gz的文件
[root@redis-new01 ~]# ls -l Dir
总用量 12
-r-xr-xr-x. 1 sunjimeng root 411 5月 9 07:59 head_text.gz
-r-xr-xr-x. 1 root sunjimeng 67 5月 9 08:15 less1.gz
-r-xr-xr-x. 1 root sunjimeng 80 5月 9 08:16 less2.gz
[root@redis-new01 ~]# gzip -rdv Dir
Dir/head_text.gz: 42.3% -- replaced with Dir/head_text
Dir/less1.gz: 4.4% -- replaced with Dir/less1
Dir/less2.gz: 1.8% -- replaced with Dir/less2
[root@redis-new01 ~]# ls -l Dir
总用量 12
-r-xr-xr-x. 1 sunjimeng root 664 5月 9 07:59 head_text
-r-xr-xr-x. 1 root sunjimeng 45 5月 9 08:15 less1
-r-xr-xr-x. 1 root sunjimeng 57 5月 9 08:16 less2
[root@redis-new01 ~]# gzip -r Dir
[root@redis-new01 ~]# ls -l Dir
总用量 12
-r-xr-xr-x. 1 sunjimeng root 411 5月 9 07:59 head_text.gz
-r-xr-xr-x. 1 root sunjimeng 67 5月 9 08:15 less1.gz
-r-xr-xr-x. 1 root sunjimeng 80 5月 9 08:16 less2.gz
[root@redis-new01 ~]# gzip -dv Dir
gzip: Dir is a directory -- ignored

zip/unzip

命令名:zip
功能说明:压缩文件。
语  法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工 作目录>][-ll][-n <字 尾字符串>][-t <日 期时间>][-<压 缩效率>][压 缩文件][文件...][-i <范本样式>][-x <范本样式>]
补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具 有".zip"扩展名 的压缩文件。 参  数:
-A 调 整可执行的自动解压缩文件。
-b<工作目录> 指 定暂时存放文件的目录。
-c 替 每个被压缩的文件加上注释。
-d 从 压缩文件内删除指定的文件。
-D 压 缩文件内不建立目录名称。
-f 此 参数的效果和指定"-u"参 数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-F 尝 试修复已损坏的压缩文件。
-g 将 文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h 在 线帮助。
-i<范本样式> 只 压缩符合条件的文件。
-j 只 保存文件名称及其内容,而不存放任何目录名称。
-J 删 除压缩文件前面不必要的数据。
-k 使 用MS-DOS兼容格 式的文件名称。
-l 压 缩文件时,把LF字符 置换成LF+CR字 符。
-ll 压 缩文件时,把LF+CR字 符置换成LF字符。
-L 显 示版权信息。
-m 将 文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串> 不 压缩具有特定字尾字符串的文件。
-o 以 压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q 不显 示指令执行过程。
-r 递 归处理,将指定目录下的所有文件和子目录一并处理。
-S 包 含系统和隐藏文件。
-t<日期时间> 把 压缩文件的日期设成指定的日期。
-T 检 查备份文件内的每个文件是否正确无误。
-u 更 换较新的文件到压缩文件内。
-v 显 示指令执行过程或显示版本信息。
-V 保 存VMS操作系统的文 件属性。
-w 在 文件名称里假如版本编号,本参数仅在VMS操 作系统下有效。
-x<范本样式> 压 缩时排除符合条件的文件。
-X 不 保存额外的文件属性。
-y 直 接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之 类的系统下有效。
-z 替 压缩文件加上注释。
-$ 保 存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率> 压 缩效率是一个介于1-9的 数值。 示例1: 压缩test.MYI
[root@mysql test]# zip test1.zip test.MYI
adding: test.MYI (deflated 42%) [root@mysql test]#ll
-rw-r--r-- 1 root root 1033755 09-24 10:03 test1.zip 压缩率为8的
[root@mysql test]# zip test2.zip -8 test.MYI
adding: test.MYI (deflated 42%) [root@mysql test]#ll
-rw-r--r-- 1 root root 1033451 09-24 10:03 test2.zip 示例2: 将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件
[root@mysql test]# zip -r test.zip ./* 打包目录
[root@mysql test]# zip test2.zip test2/* 示例3: 删除压缩文件test1.zip中test.MYI文件
[root@mysql test]# zip -d test1.zip test.MYI 删除打包文件目录下的文件
[root@mysql test]# zip -d test2.zip test2/ln.log
deleting: tests/ln.log 示例4: 向压缩文件中test1.zip中添加test. MYI文件
[root@mysql test]# zip -m test1.zip test. MYI 示例5: 压缩文件时排除某个文件
[root@mysql test]# zip test3.zip tests/* -x tests/ln.log =====================================================
命令名: unzip
功 能说明:解压缩zip文 件
语  法:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密 码>][.zip文 件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
补充说明:unzip为.zip压缩文件的解压缩程序。
参  数:
-c 将 解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更 新现有的文件。
-l 显 示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任 何的转换。
-t 检 查压缩文件是否正确。,但不解压。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中 的其他文件解压缩到目录中。
-v 执 行是时显示详细的信息。或查看压缩文件目录,但不解压。
-z 仅 显示压缩文件的备注文字。
-a 对 文本文件进行必要的字符转换。
-b 不 要对文本文件进行字符转换。
-C 压 缩文件中的文件名称区分大小写。
-j 不 处理压缩文件中原有的目录路径。
-L 将 压缩文件中的全部文件名改为小写。
-M 将 输出结果送到more程 序处理。
-n 解 压缩时不要覆盖原有的文件。
-o 不 必先询问用户,unzip执 行后覆盖原有文件。
-P<密码> 使 用zip的密码选项。
-q 执 行时不显示任何信息。
-s 将 文件名中的空白字符转换为底线字符。
-V 保 留VMS的文件版本信 息。
-X 解 压缩时同时回存文件原来的UID/GID。 [.zip文件] 指定.zip压缩文件。
[文件] 指定 要处理.zip压缩文 件中的哪些文件。
-d<目录> 指 定文件解压缩后所要存储的目录。
-x<文件> 指 定不要处理.zip压 缩文件中的哪些文件。
-Z unzip -Z等 于执行zipinfo指 令。 示例1:将压缩文件text.zip在当前目录下解压缩。
[root@mysql test]# unzip test.zip 示例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
[root@mysql test]# unzip -n test.zip -d /tmp 示例3:查看压缩文件目录,但不解压。
[root@mysql test]# unzip -v test.zip 示例4:将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
[root@mysql test]# unzip -o test.zip -d tmp/

pwd命令:打印当前目录

常用用法:pwd [-P]
含义:
打印当前目录
不含"-P"选项,表示打印当前目录,如果目录路径中包含链接文件,不进行解析
含有"-P"选项,表示打印当前目录,如果目录路径中包含链接文件,则进行解析 #echo $PWD 打印当前所在路径

umask命令:文件默认权限

常用用法:umask [mask]
含义:
1、没有"mask"参数,表示打印当前的mask设置值
2、有"mask"参数,表示设置当前的mask值为"mask"
3、mask值的用途
mask值表示创建文件时默认需要减去的权限
创建一般文件时,默认的权限是"0666-mask",即0666减去umask码值
创建目录时,默认的权限是"0777-mask",即0777减去umask码值
注意,以上的相减操作不能通过数字形式直接相减,这会产生错误,需要通过对应的rwx形式进行操作
比如"0666-0003"
数字直接相减结果是:0663
正确的方式是:"rw-rw-rw-"减去"-------wx",结果为"rw-rw-r--"
4、mask设置值是跟当前的shell环境相关联的设置

which命令:在$PATH变量指定的路径中查找文件

常用用法:which -a filename
含义:
在$PATH变量指定的路径中查找所有文件名为filename的文件,并将所有找到的文件的路径打印出来 备注:
1)需要全部匹配,而不能是部分匹配
比如
“which ps”的结果是"/bin/ps"
"which p"的结果是空白,"/bin/ps"不是合法结果
2)需要匹配文件名,与路径中的目录名匹配不符合要求
比如
"which bin"的结果是空白,"/bin/ps"不是合法结果

whereis命令:在标准的Linux下的几个目录中查找文件相关联的源代码,帮助文档,二进制文件

常用用法:whereis filename
含义:基于"/var/lib/mlocate/mlocate.db"数据库,在标准的Linux下的几个目录中查找filename相关联的源代码,帮助文档,二进制文件
比如"whereis man",匹配到的帮助文档为"/usr/share/man/man7/man.7.gz /usr/share/man/man1/man.1.gz",匹配到的二进制文件为"/usr/bin/man /usr/bin/X11/man /usr/local/man /usr/share/man"
比如"whereis kernel",匹配到的源代码"/usr/src/linux-headers-3.16.0-30/kernel /usr/src/linux-headers-3.16.0-30-generic/kernel" 备注:
1)由于是在标准的几个目录中查找,因而扩展性不强
2)通过整体匹配,而不是部分匹配
"whereis ma"不能匹配到"/usr/bin/man"
3)匹配文件名,而不是匹配路径中的目录名
"whereis bin"不能匹配到"/bin/ps"

locate命令:基于“/var/lib/mlocate/mlocate.db”这个数据库查找文件

常用用法:locate [-i] PATTERN
含义:
1)查找包含"PATTERN"的文件路径
2)整个查找过程基于"/var/lib/mlocate/mlocate.db"这个数据库
3)系统每天更新一次"/var/lib/mlocate/mlocate.db"数据库
4)可以通过"updatedb"命令手动更新"/var/lib/mlocate/mlocate.db"数据库

file命令:打印推测得到的文件类型

常用用法:file -i filename
含义:
打印filename指代的文件的类型和编码格式,没有命令能够确切知道某个文件的编码格式,只能是推测,因此得到的最终文件编码格式不一定是正确的
-i选项:以“mime type”形式打印文件类型和编码格式

stat命令:打印文件信息

常用用法:stat 文件路径
含义:打印文件的一些详细信息
比如现在有一个"readme"文件,执行"stat readme"命令,可得如图1所示结果。有一个"Desktop"目录,执行"stat Desktop"命令,可得 [root@huanqiu ~]# stat web.xml
File: `web.xml'
Size: 2438 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 2764173 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-09-08 17:25:51.994707928 +0800
Modify: 2016-09-08 17:25:48.595682668 +0800
Change: 2016-09-08 17:25:48.595682668 +0800 [root@huanqiu ~]# stat sudoers/
File: `sudoers/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd00h/64768d Inode: 2817544 Links: 2
Access: (0700/drwx------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-10-20 15:05:06.551702069 +0800
Modify: 2016-01-21 18:35:44.286016733 +0800
Change: 2016-01-21 18:35:44.286016733 +0800 输出信息中属性的解释如下:
File:文件名称
Size:文件的大小,这个大小是文件的使用大小(关于文件的“使用大小”和“占用大小”可见《Ext文件系统中,文件的“占用大小”和“使用大小”》)。注意,如果是目录文件,该属性值并没有累加统计该目录文件下的子文件的使用大小
Blocks:这个Blocks不是指"inode/block"体系中的block数量。其实指的是某种容量单元的数量。不过可以通过公式“Blocks*单个该种容量单元所含字节数/一个block节点所含字节数”换算得到需要的block节点数量,其中单个该种容量单元所含字节数,可通过"stat --format=%B readme"获得。假如单个该种容量单元的含有字节数为512B,一个block节点含有字节数为4096B,现在Blocks=8,那么block节点数量=1。注意,这个属性极易混淆
IO Block:optimal I/O transfer size hint
"regular file":该值表示文件类型
Device:设备号
Inode:Inode节点号
Links:文件的硬链接计数
Access:文件读取执行权限相关信息
Uid:文件所属用户的信息
Gid:文件所属组的信息
Access:atime
Modify:mtime
Change:ctime
Birth:文件创建时间,一般情况下不存在该属性值

basename命令:去除路径前缀和后缀

常用用法:basename NAME [SUFFIX]
含义:
给定一个文件名路径,除去前导的目录名,如果指定了SUFFIX,那么也除去SUFFIX指定的后缀,把最终结果打印出来
比如
basename include/stdio.h .h
除去前导的目录名"include/",得到stdio.h
指定SUFFIX=.h,那么除去.h后缀,最后得到stdio
打印stdio

dirname命令:获取路径的目录部分

常用用法:dirname NAME
含义:
给定一个文件名路径,除去最后一部分名称内容,接着除去冗余的后导"/",打印最终结果;
如果文件名路径中不包含"/",那么最后打印"." --------------------------------------------------------------------------------------------------
扩展小提示: 截取目录的方法,有以下两种:
1)dirname命令:用于取给定路径的目录部分。这个命令很少直接在shell命令行中使用,一般把它用在shell脚本中,用于取得脚本文件所在目录,
然后将当前目录切换过去。
其实就是取所给路径的倒数第二级及其之前的路径部分,如下:
[root@jenkins-server Shell]# dirname main/protected/xqsjmob/themes/tpl2/common/page_statistics.tpl
main/protected/xqsjmob/themes/tpl2/common
[root@jenkins-server Shell]# dirname /usr/local/tomcat7/webapps/jenkins/scripts/Shell
/usr/local/tomcat7/webapps/jenkins/scripts
[root@jenkins-server Shell]# dirname FF_Online.sh #取的结果既是当前路径目录下
. 2)可以用${pathname%/*}截取掉pathname后面的文件部分。
下面比较下这两种方法的效果:即dirname取的是倒数第二级及其以上级的路径,而${pathname%/*}取的是"删除最后一个/符号后的路径部分"
[root@jenkins-server Shell]# pathname=/usr/bin/sort; echo $(dirname $pathname) ${pathname%/*}
/usr/bin /usr/bin
You have new mail in /var/spool/mail/root
[root@jenkins-server Shell]# pathname=/usr/bin/sort/; echo $(dirname $pathname) ${pathname%/*}
/usr/bin /usr/bin/sort
[root@jenkins-server Shell]# pathname=/usr/; echo $(dirname $pathname) ${pathname%/*}
/ /usr
[root@jenkins-server Shell]# pathname=/usr; echo $(dirname $pathname) ${pathname%/*}
/

du命令:查看文件大小

一、常用用法
du -sh [--apparent-size] 文件路径(文件可以是目录,也可以是一般文件) 二、含义与选项
2.1、含义
当文件为一般文件时,估算该一般文件的大小;当文件为目录时,估算"该目录自身的大小+目录下所有子文件(递归进行)的大小"。 2.2、选项表示的意思
"-s":当du命令的操作对象是一个目录时,不打印该目录下子文件的大小统计情况,只打印目录总体的大小统计情况
"-h":以人类可读形式展示文件大小
"--apparent-size":当不加该选项时,"文件大小"是指文件的"占用大小";当加了该选项后,"文件大小"是指文件的"使用大小"。 三、实验
现在有一个"test1"目录,其下有一个"test2"目录,"test2"目录下有一个"test3"目录,在"test3"目录下有一个"test4.txt"文件,如下所示:
[root@redis-new01 ~]# ll -d test1
drwxr-xr-x 3 root root 4096 Oct 27 21:17 test1
[root@redis-new01 ~]# ls test1/
test2
[root@redis-new01 ~]# ls test1/test2/
test3
[root@redis-new01 ~]# ls test1/test2/test3/
test4.txt "test1"目录对应1个block节点(大小为4096B),"test2"目录也对应1个block节点(大小为4096B),"test3"目录也对应1个block节点(大小为4096B),
"test4.txt"文件也对应1个block节点(大小为4096B),而"test4.txt"这个一般文件对应的block节点中实际使用的空间大小为12B。 1)如下命令
[root@redis-new01 ~]# du -h test1
8.0K test1/test2/test3
12K test1/test2
16K test1 这是因为:
16K=test1自身的4K+test2自身的4K+test3自身的4K+test4.txt的4K。 2)如下命令
[root@redis-new01 ~]# du -sh test1
16K test1 这是因为:
16K=test1自身的4K+test2自身的4K+test3自身的4K+test4.txt的4K,并且只显示最终的test1目录的总体大小。 3)如下命令
[root@redis-new01 ~]# du -sh --apparent-size test1
13K test1 这是因为:
根据右侧值向上取整得到13K=12K+12B=test1自身的4K+test2自身的4K+test3自身的4K+test4.txt的12B,并且只显示最终的test1目录的总体大小。

linux运维中的命令梳理(二)的更多相关文章

  1. linux运维中的命令梳理(一)

    在linux日常运维中,我们平时会用到很多常规的操作命令. 下面对常用命令进行梳理: 命令行日常系快捷键(不分大小写)CTRL + A 移动光标到行首CTRL + E 移动光标到行末CTRL + U ...

  2. linux运维中的命令梳理(三)

    ----------文本操作命令---------- sed命令:文本编辑工具 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特 ...

  3. linux运维中的命令梳理(四)

    ----------管理命令---------- ps命令:查看进程 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不 ...

  4. 云计算:Linux运维核心管理命令详解

    云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...

  5. 提高Linux运维效率的命令行常用快捷键

    提高Linux运维效率的命令行常用快捷键 tab 命令或路径等的补全键,Linux最有用快捷键 Ctrl+a 光标回到命令行首 Ctrl+e 光标回到命令行尾 Ctrl+k 剪切(删除)光标处到行尾的 ...

  6. Linux就业技术指导(五):Linux运维核心管理命令详解

    一,Linux核心进程管理命令 1.1 ps:查看进程 1.1.1 命令解释 功能说明 ps命令用于列出执行ps命令的那个时刻的进程快照,就像用手机给进程照了一张照片.如果想要动态地显示进程,就需要使 ...

  7. linux运维中常用的指令

    一.终端中常用的快捷键 man界面中的快捷键: ?keyword                 向上搜索关键词keyword,n向下搜索,N继续向上搜索 /keyword   向下搜索关键词keyw ...

  8. Linux运维常用的命令详解

    1. 查看系统内核版本 [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m 显示了系 ...

  9. Linux运维中遇到的常见问题

    1.CentOS启动tomcat出现乱码的解决方案1.打开tomcat下的server.xml配置文件,在connect标签中添加编码属性:URIEncoding="UTF-8"2 ...

随机推荐

  1. 当SD卡拔出时,返回首页,栈中的activity都要清除,只留下首页的activity

    目标:当SD卡拔出时,返回首页,栈中的activity都要清楚,只留下首页的activity 我在清单中注册了一个静态广播: <receiver android:name="com.p ...

  2. iOS启动过程

    1.main函数 | 2.UIApplicationMain      * 创建UIApplication对象      * 创建UIApplication的delegate对象 | 3.delega ...

  3. 【读书笔记】iOS-ARC-不要向已经释放的对象发送消息

    一,在AppDelegate.m中写入如下代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...

  4. wifi强度数据采集器(android)

    来源:毕业设计 关键词:wifi数据的采集 SQLite数据库的使用 需求 采集实验室内各坐标处各wifi信号的强度 UI 因为是辅助工具,所以UI写的很简单,如下图 Wifi相关操作 //获取Wif ...

  5. linux 学习随笔-vim

    在自己的home/username目录下 更改vim的配置文件 如果没这个文件 copy其他人的配置文件 然后拖到此目录下 执行mv vimrc ~/.vimrc 更改名字 即可生效 只对当前用户生效 ...

  6. JavaScript Patterns 6.7 Borrowing Methods

    Scenario You want to use just the methods you like, without inheriting all the other methods that yo ...

  7. ORACLE数据库的限制

    ORACLE数据库最多可以拥有多少个表空间(Tablespace)?数据库最多拥有多少个数据文件(Database files).数据库的数据文件最大可以多大?遇到这些问题只能查询官方文档,人的记忆能 ...

  8. 利用webview实现在andorid中嵌入swf

    项目背景是这样的,一套系统有三个客户端分别是网页,flex和android,现在已经在flex上面做好了一个在线客户视频聊天系统,然后在这个基础上修改打包成了SWF,放在网页上面使用效果不错,但是利用 ...

  9. coursera机器学习笔记-建议,系统设计

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  10. cocos2d之z轴位置示例

    1:设置资源本地z轴位置 2:调整位置示例 3:调整两个资源为同一父节点 4:ImageView 设置资源,此赋值方法第一个为资源路径