Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112335
  • 博文数量: 22
  • 博客积分: 835
  • 博客等级: 准尉
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-25 21:23
文章分类

全部博文(22)

文章存档

2011年(1)

2009年(21)

我的朋友

分类: LINUX

2009-12-11 15:01:15

//以下内容是初学Linux时候写过的记录和总结
一、文件目录
我们提到的档案包括7种:一般文件-、目录d、连接文件l、字符设备c、块设备b、套接字s、管道p
1)最基本目录操作命令:ls/cd/pwd/mkdir/rmdir
2)拷贝删除移动改名命令:cp/rm/mv 
3)获取目录及文件命令:basename/dirname
4)文档显示命令:cat/tac/nl/more/less/head/tail/od
 * cat  从第一行开始显示知道最后一行
 * tac  从最后一行反照向上显示直到第一行
 * nl  显示的时候,顺道输出行号!
 * more 可以向下翻页
 * less 还可以向上翻页,并且可以同vi简单的查找操作
 * head 只看头几行
 * tail 只看尾几行
 * od 以二进制形式进行输出显示
5)file/touch/umask/chattr/lsattr
 * file 获取文件是否是文本,二进制,可执行文件等
 * touch 建立一个新文件,修改一文件的时间属性:touch
 * umask 设定目前建立文件及目录时的默认属性 //umask/umask -S显示/umask ***设定去掉的权限
    * chattr 设定文件的隐藏属性//chattr +a filename只许文件追加不许删除chattr +i 不许删除/改名/设定连接 
 * lsattr 显示已经设定了的隐藏属性
 * SUID/SGID/Sticky bit的概念,
6)which/whereis/locate/find/
 * which 在$PATH的路径下进行精确查找文件名文filename的可执行文件,which -a filename
 * whereis 在系统的数据库中去寻找包括后面指定的文件或者目录 whereis filename/dirname
  //注意:数据库可能是一天才更新一此
 * locate  在系统建立的数据库中许找包括指定字符串的文件  locate filename/dirname
 * find  在硬盘上进行功能复杂的查找,可以按文件的时间,拥有者,权限,类型及其他属性查找,find [PATH][option] [action]
  eg.find / -user username找所有和username相关的文件
        find / -name "*.tmp" -exec rm -f {} \; 删除所有的临时文件
 * grep 找包括特定字符的那一行 grep abcd filename //当然此命令用法多的是
7)改变挡案的权限:chgrp/chown/chmod
 *chgrp 修改此档案所属的群组 chgrp 群组名 filename/dirname
 *chown 修改此档案的拥有着 chown 拥有着 filename/dirname
 *chmod 改变档案的9个属性,可以用数字和符号来修改 chmod xyz filename/dirname
                chmod ugoa+/-/=rwx filename/dirname
 注意:对于目录来说r表示是否具有列出目录下的清单的权限,w表示是否具能在该目录下建立删除修改移动目录和文件的权限
      x表示是否允许进入该目录

//===============================================================================
二、文件系统操作
目录可以记录文件名和inode相关信息
1、查看文件系统的布局:dumpe2ffs /dev/hda1
2、查看硬盘容量及使用情况:df -h(以最易读方式显示当前磁盘分区及容量)
3、查询某一目录或文档占据的磁盘空间(非文件大小):du
4、建立连接文件:ln 目标文件(建立硬连接)ln -s 目标文件/目录 建立软连接(快捷方式)
5、磁盘的分区:fdisk -l(显示系统下所有的分区信息) fdisk /dev/hda(让你用命令进行操作第一块硬盘分区)
6、分区的格式化:mke2fs [-bicLj] 分区号 -b block大小 -i inode大小 -c 检错 -L 卷标 -j格式为ext3
7、分区的检查:fsck -aC /dev/hda5 加查是否有坏的扇区 若有则放入lost-fonud目录中(注意:检查的时候最后不要挂接)
8、强行写入磁盘:sync 将内存中的数据些会到硬盘中
9、分区的挂接:mount显示当前所有的挂接 mount /dev/sda1(需要挂接的装置) /mnt/D(挂接点是个目录)相关文件:/etc/fstab
10、取消挂接:umount /dev/sda1(直接跟上装置名)或者:umount /mnt/D(直接跟上挂接点)
11、改变分区参数:tune2fs [-jlf] /dev/hda1 -j 将分区转为ext3 -l相当于dumpe2fs -h -L修改卷标
注意:连接文件包括:硬连接和软连接。硬连接其实就是在一个目录下增加一个连接数据,这个连接数据仍然指向文件的inode,硬连接不能连接目录?
   软连接就是Windows里面的快捷方式,它是一个单独的文件,有自己的inode和blok数据块,但是文件的内容是原文件的路径名,这个名字可以在
   用来找到在目录下的连接数据,并进而找到原文件的inode(目录下的数据都是一个文件的连接数据,用来查找文件伙子目录的inode)
//===============================================================================
三、帐户管理
帐号设置相关文档:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/default/useradd、/etc/skel/*、/etc/login.defs
man 5 passwd/shadowgroup/gshadow
1、建立一个新的帐号: useradd [-u UID] [-g initial_group] [-G other_group] [-d home]//shell==sbin/nologin的帐号不能登录
2、设置帐号的密码:passwd username
3、修改帐户的属性:usermod [-cdegGlsuLU] username
4、删除帐号:userdel [-r] username -r连同家目录都删除 注意:在删除之前最好find / -user username找出所有和此用户相关档案
5、帐号其他属性查性及设置:chsh/chfn/finger/id
6、增加群组:groupadd groupname
7、修改群组属性:groupmod [-g newgid] [-n newgroup_name]
8、删除群组:groupdel [groupname]
9、用户切换:su使用当前环境设定切换到root su -使用root用户的环境设定切换到root su -l username 切换环境设定和用户
10、查询当前登录用户:w/who/last/lastlog
11、手动建立帐号的命令:pwck/pwconv/pwunconv/chpasswd/
 1. 先建立所需要的群组 ( vi /etc/group ); //eg.normalgroup:x:520:
 2. 将 /etc/group 与 /etc/gshadow 同步化 ( grpconv ); //直接grpconv
 3. 建立账号的各个属性 ( vi /etc/passwd ); //normaluser:x:700:520::/home/normaluser:/bin/bash
 4. 将 /etc/passwd 与 /etc/shadow 同步化 ( pwconv ); //直接pwconv
 5. 建立该账号的密码 ( passwd accountname ); //输入密码等
 6. 建立使用者家目录 ( cp -a /etc/skel /home/accountname ); 
 7. 更改使用者家目录的属性 ( chown -R accountname.group /home/accountname )。
初始群组和有效群组:初始群组就是passwd中指定的群组,除初始群组外该用户属于其他的群组,group文件中最后出现用户名的组
//===============================================================================
四、程序资源管理:
1:让指令或者程序在后台运行:直接在后面加上一个"&"
2:将当前的运行程序或指令到后台并停止运行:ctrl+z
3:查看当前背景下运行的运行的后台程序:jobs -l
4:将后台运行的指令到前台运行:fg %1/2
5:将后台停止运行的指令活程序开始运行:bg %1/2
6:将一后台运行的程序强制删除:kill -9 pid  killall -9 name
7:显示所有正在运行的程序:ps -el/ps -A/ps -aux //一般和grep 联合使用
8:动态检测系统运行的程序:top
9:列出当前运行程序的相关性,父子关系:pstree
10:显示当前系统下的内存容量:free -m
11:输出系统的一些基本信息:uname [-asrmpi]
12:显示当前系统已经开机时间:uptime
13:输出开机自检的信息:dmseg |more 可以配和grep来使用
14:找出所有正在使用某一档案或者目录的程序的PID:fuser
15:找出某一进程或某一用户所有正在所用的档案:lsof -u user/-p pid....
//===============================================================================
五、打包解压缩
     和压缩相关的文件大概有:*.gz *.bz2 *.tar.gz *.tar.bz2 *.tar
 *1)将一目录或文件进行打包(不压缩):tar -cvf /tmp/test.tar   /test
    查看没有压缩国的tar包内容:tar -tvf /tmp/test.tar
    解压缩没有压缩国的tar包: 
 *2)将一目录或文件进行打包并压缩:tar -czvf /tmp/test.tar.gz  /test    <==打包后,以 gzip 压缩
    查看gzip压缩包中的内容:tar -tzvf /tmp/test.tar.gz
            解压缩一个gzip压缩包:tar -xzvf /tmp/test.tar.gz
 *3)将一目录或文件进行打包并压缩:tar -cjvf /tmp/test.tar.bz2 /test  <==打包后,以 bzip2 压缩
    查看bizp2压缩包中的内容:tar -tzvf /tmp/test.tar.bz2
    解压缩一个bzip2压缩包:tar -xjvf /tmp/test.tar.bz2
 4)将一文件用gzip进行最佳压缩:gzip [-9 -c] man.config [> man.config.gz]//-c保留原来文件,去掉[]则直接压缩
    查看经过gzip压缩过包内容:zcat man.config.gz
    解开经过gzip压缩过的文件:gzip -d man.config.gz
 5)将一文件用bzip2进行压缩:bzip2 -z man.config
    查看经过bzip2压缩包内容:bzcat man.config.bz2/bzip2 -9 -c man.config > man.config.bz2(最佳压缩并保留原文件)
    解开经过bizip2压缩过的文件:bzip2 -d man.config.bz2 
注意:压缩的时候要保留档案属性则需要加上 -p
//===============================================================================
六、安装升级卸载
  RPM安装卸载
 1)安装:rpm -ivh *.rpm [--test] //加上[]仅测试该套件是否可以安装在本机上
 2)卸装:rpm -e *.rpm + rpm --rebuilddb //重新建立rpm数据库
 3)升级:rpm -Uvh *.rpm 套件不存在则安装,存在则升级  rpm -Fvh *.rpm 套件不存在则不安装,存在则升级
 4)查询操作:
  *查询某一套件是否安装:rpm -qa|grep *.rpm
  *查询该套件的详细说明:rpm -qi *rpm
  *查询该套件安装后存放的目录和文件:rpm -ql *rpm  
  *查询该套件的所有设置文件:rpm -qc *rpm
  *查询该套件的所有帮助文档:rpm -qd *rpm
  *查询该套件依赖安装的档案:rpm -qR *rpm
  *查询某一档案属于哪一个套件:rpm -qf 档案名
  *查询一个并未安装套件的信息:rpm -qp[icdlR] *rpm //[icdlR]的含义和上面相同
 附:
  *GPG-KEY的导入:rpm --import *-GPG-KEY
  *关于SRPM内容可以参考:page 644-652
  yum安装卸载
 1)查找安装包:yum list|grep name
 2)安装包:yum install
 3)升级包:yum check-update --> yum update
 4)卸载包:yum remove
//===============================================================================
七、网络设置
 1)ifconfig 
  *查询网络接口信息:ifconfig
  *修改ip地址信息:ifconfig eth0 *.*.*.* netmask *.*.*.* broadcast *.*.*.*
  *修改硬件地址信息:ifconfig eth0 hw ether ** ** ** ** ** **
  *绑定另一IP地址信息:ifconfig eth0:0 192.168.1.2 netmask 255.255.255.0 broadcast          192.168.1.255
  *删除绑定的IP地址信息:ifconfig eth0:0 del 192.168.1.2
 注意: *ifconfig进行的修改都是临时性的修改,restart网络后则失效,要永久修改则需要修改或增加脚本
            /etc/sysconfig/network-scripts/ifcfg-eth0或者ifcfg-eth0:0(add)
 2)route
  *查询当前配置的路由信息:route -n
  *添加一个路由:route add -host/net *.*.*.* netmask 255.255.255.0 dev eth0
  *删除一个路由:route del -host/net *.*.*.* netmask 255.255.255.0 dev eth0
  *设定默认路由:route add default gw 192.168.10.1
 3)ip指令,这个指令其实就是ifconfig和route的结合,所以掌握上面两个指令后不用花时间掌握这个指令
 4)arp 
  *查询当前arp缓存列表:arp -a
  *显示指定ip地址的mac:arp -a *.*.*.*
  *添加静态arp项:arp -s *.*.*.*(ip) **:**:**:**:**:**(mac)
  *删除指定ip地址的arp项:arp -d *.*.*.*
 5)ping -c *.*.*.*  最基本的ping命令 -c表示动作的次数
   ping -c 2 -s 1000 -M do *.*.*.* 测试从本机到目的主机的路由过程中的MTU大小,如果有回应则说明icmp
    包为1000的报文可以直接通过,不需要进行ip分片操作
      6)traceroute *.*.*.*侦测到某个目的端的路由情况//网关不允许则没用
 
 7)netstat查询网络连接状态:
  *查询路由信息:netstat -nr //同route -n
  *查询所有连接状态:netstat -na //包括UNIX socket等
  *查询tcp连接状态:netstat -nat
  *查询udp连接状态:netstat -nau
  *查询当前所有已经开启的网络:netstat -tulnp
  
 8)tcpdump:常用命令行扎包,语法和ethereal的过滤规则基本一样,举例如下:
  *tcpdump -i eth0 -nn host 192.168.1.1 and port 23
  *tcpdump -nn udp/tcp/icmp/arp
  *具体规则可以查阅网络资料
 9)host查询域名对应的ip地址:host
  
//===============================================================================
八、其他操作
   1:开关机
 1)立即关机:shutdown -h now
 2)立即重启:shutdown -r now
 
   2:例行命令
     执行一此的例行指令: 
  0)首先打开/etc/init.d/atd start 
  1)at now+5 [minutes|hours|days]
     at HH:MM [YYYY-MM-DD]
  2)输入要定时执行的指令,最好以绝对路径执行
  3)查询当前一次行的例行指令:atq
      4)删除已经设定了的例行指令:atrm [num] 
     循环执行的例行指令:
  0) crontab [-l|-e|-r] //查询,编辑,移出例行指令   注意:时间设定格式
  1)/etc/crontab文件进行编辑也能实现同样的功能
  2)可以执行一个目录里的所有命令
  3)时间格式设定:分 时 日期 月份 周(*表示any ','表示多个‘-’表示从...到.../n表示每隔多少个对应单位)
  4)注意/etc/cron***下的目录
   3:管理系统的daemon程序
  0)chkconfig
  1)ntsysv [--level
   4:常用命令
 *查询目录:ls -p|grep /
 *查询一目录下的文件个数:ls -l|grep "^-"|wc -l
 *递归查询一目录下的文件个数:find ./ -type -f|wc -l 或者ls -laR|grep "^-"|wc -l
 *查看一目录下目录的个数:ls -laR|grep "^d"|wc -l
 *查询开取的tcp端口:netstat -nat
 *查询开取的udp端口:netstat -nau
 *查找当前目录下所有文件是否含有指定字符串:grep -R tofind ./
 *查找当前目录下是否存在一文件:find ./ -name tofind
 *查询系统硬盘使用情况:df -h
 
 5: 时间设置
  date -s 20090104
  date -s 18:08:30
  date -s "20090104 18:08:30"
九、待补充:
 
阅读(1421) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~