++++++++++++++++++++++++++
+(一)linux基本配置和常用文本命令+
++++++++++++++++++++++++++

-------------------基本配置-----------------


1.网络配置文件
/etc/sysconfig/network-script/ifcfg-eth0 //网卡配置文件
/etc/sysconfig/network //次级网络配置文件配置gateway
/etc/hosts  //主机hosts配置文件
/etc/resolv.conf //dns配置


2.查看/关闭服务
chkconfig --list //查看当前系统服务
chkconfig iptables on //使服务开机生效
service iptables stop
service iptables save
service iptables start/restart


3.查看/设置selinux状态
getenforce
setenforce 0
或调用系统工具
system-config-securitylevel     //来修改
system-config-selinux  //来修改
system-config-securitylevel-tui //来修改

4.配置YUM源
vim /etc/yum.repos.d/base.repo


---------------2.文件内容查看命令(cat,less,more,tail,head)-------

a)cat [-AEnTv]
 -A 相当于-vET的整合参数,可以列出一些特殊字符。
 -E 将结尾的换行符$显示出来
 -n 显示行号
 -T 将Tab按键以^I显示出来
 -v 列出一些看不出来的特殊字符

b)less
·<space> 和[pagedown] 向下翻一页
·[pageup] 向上翻一页
·/ 向下搜索
·?向上搜索
·n 重复前一个搜索动作(与/&?有关)
·N 反方向重复前一个搜索动作(与/&?有关)
·q 退出less程序

c)more---翻页查看
·<space> 向下翻一页
·Enter 向下翻一行
·/ 向下搜索“字符串”
· :f立即显示文件名以及当前的行数????
·q 离开退出more程序

d)head---取出前几行
Head [-n number] 文件
-n 表示显示前多少行,默认前10行

e)tail---取出后几行
tail [-n number] 文件
 -n 显示尾巴多少行,默认显示后10行
 -f 实时显示,立即更新

------------------3.vim/vi工具的使用------------------

vi的3模式:一般模式,编辑模式,命令行模式
一般模式和编辑模式之间的切换用i, Esc;
一般模式和命令行模式之间用:,/、?,Esc;

在一般模式下可通过/、?,进入命令行来搜索匹配字符

常用命令查考“vi手册”
eg:
0 移动到行首
$ 移动到行尾
G 移动到整个文件的最后一行
nG 移动到第n行(配合set nu)
gg 移动到整个文件的第一行=1G
------------
dd 删除光标所在的那一行
ndd 从光标开始向下删除n
yy 复制一行
nyy 复制光标所在的向下n行
------------
p,P p为将已复制的数据粘贴到光标的下一行;
 P则为贴在光标上一行。
u 撤销
[ctrl]+r 重做上一个操作
===================================
/word 从光标开始的位置,向下搜索word字符串
?word 从光标开始的位置,向上搜索word字符串
===================================
:wq
:q!
:w
:q
=============
dos2unix
unix2dos
eg: unix2dos -k hosts    -k//保留原文件的mtime时间格式
dos2unix -k -n host.dos host.linux  -n//保留久文件,生成新文件

----------------4.查看文件类型file-------------

file---查看文件的基本信息(例如是属于ASCII,二进制,数据文件;是否使用到动态函数库

(share library)等信息。)
Eg: file ~/.bashrc
   file /usr/bin/passwd
   file /var/lib/slocate/slocate.db

----------------5.搜索文件------------------

·find---直接从硬盘开始搜索,一般不用速度慢,耗费硬盘空间。通常先用whereis,locate检查,

如果真找不到了,再用find.
·which---寻找“执行文件”(命令)
·whereis---寻找特定文件,使用数据库来检索数据
·locate---支持模糊搜索,也是使用数据库来检索数据
*手动更新检索数据库命令updatedb,其配置文件/etc/updatedb.conf

eg:
#which updatedb
/usr/bin/updatedb
# which ls
alias ls='ls --color=tty'
        /bin/ls
whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz

/usr/share/man/man1/passwd.1.gz


======find:博大精深,具体见file,dir.doc======
find可以按时间,用户(用户组),文件名,大小,权限,文件类型来查找,还可以带附加操作
find [path] [option] [action]
find还支持模糊查找,可以使用通配符*

eg:
#find /home -user zhaoyan
/home/zhaoyan
/home/zhaoyan/.bash_profile
/home/zhaoyan/.bash_logout
/home/zhaoyan/.bashrc
/home/zhaoyan/.bash_history
#find / -nouser
find: /proc/1931/task/1931/fd/4: No such file or directory
find: /proc/1931/fd/4: No such file or directory
# find / -name passwd
/etc/passwd
/etc/pam.d/passwd
#find /etc -newer /etc/passwd    //比文件file还要新的

#find /tmp -perm +7000 -exec ls -l {} \;
* -exec 后面的ls –l就是额外的命令,{}表示“由find找到的内容”。所以,-exec ls –l {}
就是将前面find找到的内容以ls –l 列出详细的信息。至于\;表示-exec命令到此为止。
-exec最后一定要以\;结束才行。


+++++++++++++++++++++++++++++++++++++
+(二)linux基本命令-磁盘与文件系统管理 +
+++++++++++++++++++++++++++++++++++++

--------------1.查看磁盘和目录容量------------

a)df---查看磁盘分区信息(大小等,注已经分区格式化后的)

 df [-ahikHTm] [目录或文件名]
 -a 列出所有的文件系统,包括系统特有的/proc等文件系统。
 -k 以KB为单位显示各文件系统
 -m 以MB为单位显示各文件系统
 -h 以GB,MB,KB等格式显示
 -T 连同该分区的文件系统名(例如ext3)一起列出
 -i 不用硬盘容量,而以inode的数量来显示
 -H 以M=1000K取代M=1024k的计算方式。
* df -h /etc-----在df后加上目录或文件是,df会自动分析该目录或文件所在分区,并将该分区的

容量信息显示出来。
[root@student021 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      8.6G  4.7G  3.6G  58% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm
[root@student021 ~]# df -ah
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      8.6G  4.7G  3.6G  58% /
proc                     0     0     0   -  /proc
sysfs                    0     0     0   -  /sys
devpts                   0     0     0   -  /dev/pts
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm
none                     0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc                   0     0     0   -  /var/lib/nfs/rpc_pipefs


b)du ---查看文件或目录的大小
 du [-ahskm] 文件或目录名称
 -a 列出所有文件与目录的容量,默认是仅统计目录的容量的
 -h 以人们易读的格式(G/M)显示
 -s 列出总容量,不列出每个目录占用的容量
 -k 以KB列出容量显示
 -m 以MB列出容量显示
eg
[root@student021 ~]# du -sh vsftpd-2.0.5-16.el5_4.1.i386.rpm
152K    vsftpd-2.0.5-16.el5_4.1.i386.rpm
[root@student021 ~]# du -sh
1020K   .


----------------2.文件系统操作---------------
a)fdisk---分区
fdisk [-l] 设备名称
-l  输出所接设备所有的分区内容
[root@student021 ~]# fdisk -l /dev/sda
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1305    10377990   8e  Linux LVM

[root@student021 ~]# fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1305    10377990   8e  Linux LVM
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table

*直接fdisk 设备名称,进入fdisk程序菜单,进行分区,查看、修改分区信息等。
fdisk的作用主要是修改“分区表”,并没有实际将硬盘划分,它会定义出某一分区是从n1柱到n?柱面之间。只有root才能执行fdisk,设备后不能带数字,因为要查看的是整个硬盘的分区。
具体操作见磁盘和文件系统管理或鸟哥。


b)mke2fs---磁盘格式化
mke2fs [-bicLj] 设备名称
-b 可以设置每个块的大小,当前支持1024、2048、4096
-i 给一个inode多少容量
-c 检查磁盘错误,仅仔细一次–c时,会进行快速读取测试。如果执行两次-c –c,会测试读写(read-write),会很慢。
-L 后面可接卷标(Label)。
-j 本来mke2fs是EXT2,加上-j后,会主动加入日志而成为EXT3。
eg:
 mke2fs –j –L “logical” /dev/sda5 ---将刚刚建立的/dev/sdb5格式化成EXT3,名称logical。
默认的块大小事4096.
 mk2fs –j –L “logical” –b 2048 –i 4096 /dev/sdb5---结果和上面一样,就是块大小和inode数量会有变化。
*如果想格式化为其他文件系统,可以直接使用mkfs命令,可以man 一下瞅瞅。这个命令其实是将几个命令整合起来。实际可以参考“ls –l /sbin/mkfs*”来查看系统支持的文件格式。

c)partprobe /dev/sda  分区立即生效

d)mount 磁盘载入与卸载
mount -t 文件系统类型 [-o 其他参数] 设备 挂载点
 -a 按照/etc/fstab的内容将所有的磁盘都挂上来
 -L 将卷标名挂载
 -t 指明以何种文件系统格式挂载
 -o 包含(ro,rw;async,sync;-o remount是重新挂载某个分区;loop 是挂载虚拟ISO用的等参数)

eg:
#mount -t iso9660 -o ro /dev/hdc /mnt/dvd
-o 是附加参数 rw(读写) ro(只读)
# mount -t vfat  -o rw /dev/sda /mnt/upan
#mount -t ext3 -o remount,rw /
其他具体可看磁盘和文件系统管理
#mount 将系统以挂载的分区数据列出来

umount 设备号或载入点
umount /dev/hdb5
umount /mnt/hdb5

e)e2label 修改Label名称

+++++++++++++++++++++++++++++++++++++
+(三)linux基本命令-文件的压缩与打包  +
+++++++++++++++++++++++++++++++++++++

 Linux中常见的压缩文件扩展名:
·*.Z compress程序压缩文件
·*.bz2 bzip2程序压缩文件
·*.gz gzip程序压缩文件
·*.tar tar程序打包的数据,并没有压缩
·*.tar.gz t tar程序打包的文件,并且经过gzip压缩

1)tar [-cxtzjvfpPN] 文件与目录
 -c  创建tar包
 -x 解压tar包
 -t 查看tar包文件内容。
 * c/x/t---3个只能有一个存在,不可同时存在
 -z 是否压缩成gzip包
 -j 是否压缩成bzip2包
 -v 压缩过程中显示文件,但不建议用在后台执行过程
 -f 使用文件名,在f之后要立即接文件名。不要再加参数。
 -p 保持原文件属性
 -P 使用绝对路径来压缩
 -N 比较后面接的日期(yyyy/mm/dd)要新的才会被打包进新建的文件中。
 --exclude FILE 排除什么文件
EG:
 tar –cvf /tmp/etc.tar /etc-----打包etc,但不压缩。
 tar –zcvf /tmp/etc.tar.gz /etc -----打包并压缩成gzip包。
 tar –jcvf /tmp/etc.tar.bz2 /etc -----打包并压缩成bzip2包。
 tar –ztvf /tmp/etc.tar.gz ----由于是gzip包所以要加参数z才能查看。
 tar –zxvf /tmp/etc.tar.gz----解压包
 tar –zxvf /tmp/etc.tar.gz etc/passwd----只解压包中的etc/passwd文件。注意没有

‘/’
 tar –zcvpf /tmp/etc.tar.gz /etc----加了p保留原有文件属性。
 tar –N ‘2007/06/01’ –zcvpf home.tar.gz /home ---只打包home目录中比

2007.06.01时间新的文件。
 tar –exclude /home/zhaoyan –zcvf hom.tar.gz /home----打包home目录,但排

除/home/zhaoyan文件。
 tar –xvpf /tmp/etc.tar –C /home ---加-C参数表明解压到指定目录。
 tar –cvf - /etc | tar -xvf –  打包/etc后直接解压到/tmp,而不产生文件。
 *’-’分别代表了标准输入(stdin)和标准输出(stdout)
 *在使用tar打包时,默认出现“tar:Removing leading ’/’ from member names”默

认把/去掉是担心将来解压时不慎覆盖了原文件,所以在tar中,默认都是把/去掉的。如果一定要使

用绝对路径来打包加-P参数。

2)dd---块复制
dd if=”input_file” of=”output_file” bs=”block_size” count=number
  if 输入文件(源),也可是设备
 of 输出文件(目标),也可是设备
 bs 规划的一个块的大小,如果没有设置时,默认是512字节
 count 多少个bs.
eg:
 dd if=/etc/passwd of=/tmp/passwd.back
 dd if=/dev/hda of=/tmp/mbr.back bs=512 count=1---备份MBR分区表
 dd if=/dev/hda1 of=/some/path/filename ---备份整个分区,后接的of必须不在hda1

分区内,否则,就读不完。
*dd用来备份整个分区或整个磁盘。不过,如果要将数据填回到文件系统中,可能需要考虑到原来的

文件系统才能成功。

3)cpio
cpio 命令很神奇最适合在备份的时候使用。由于cpio无法直接读取文件,而需要“每一个文件或目

录的路径连同文件名一起”才可以记录下来,因此cpio常和find一起使用。
 cpio –covB > [file|device] <==备份
 cpio –icduv < [file|device] <==还原
 -o 将文件复制输出到文件或设备。
 -i 将数据从文件或设备复制到系统中。
 -t 查看cpio建立的文件或设备的内容