码迷,mamicode.com
首页 > 系统相关 > 详细

LINUX学习笔记

时间:2015-05-25 14:51:39      阅读:539      评论:0      收藏:0      [点我收藏+]

标签:linux

linux运维故障处理:http://book.51cto.com/art/201405/438561.htm

RHEL 7.0系统安装图解:http://os.51cto.com/art/201406/442839.htm

红帽子官方手册:https://access.redhat.com/documentation/zh-CN/

  一、linux中文显示乱码解决办法:

  vi /etc/sysconfig/i18n

  将内容改为

  LANG="zh_CN.GB18030"

  LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

  SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"

  SYSFONT="lat0-sun16"

  或:

  LANG="zh_CN.gb2312"

  SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_CN.GB2312:zh_CN:zh:zh_CN.gbk:zh_CN:zh:zh_HK.UTF-8:zh_HK:zh:zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"

  SYSFONT="latarcyrheb-sun16"

  二、tcpdump简单使用方法:

  tcpdump -i eth0

  tcpdump host 10.105.6.236

  tcpdump host 10.109.209.73 and 10.105.6.236 -w shenfei.cap

  B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用 括号时,一定要

  #tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

        #tcpdump ‘tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)‘ 抓端口

        #tcpdump ‘gateway snup and (port ftp or ftp-data)‘

  三、密码策略配置文件:/etc/login.defs

  tcprstat下载

  查看Linux文件大小命令du -h * |sort -rn |head  (查看当前目录及以下的文件夹大小,若只查当前目录大小加上-s,查看当前目录下所有文件及文件夹大小的则加上-a)

  >> /dev/null 2>&1 把所有输出输出到/dev/null中,把标准错误(2)输出输出到标准(1)输出同样的地方/dev/null

  设置超时时间:在/etc/profile里加一句TMOUT=60

  四、LINUX下建立静态IP/MAC捆绑的方法是:建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下:

  192.168.2.32 08:00:4E:B0:24:47

  然后再/etc/rc.d/rc.local最后添加: arp -f /etc/ethers即可

  设置Linux时间:date -s ‘20140107 14:00:00‘,然后hwclock --systohc系统与硬件时钟同步

  五、设置网卡工作在混杂模式下:ifconfig eth0 promisc 设置混杂;ifconfig eth0 -promisc 取消混杂

  snmpwalk -v 2c -c public 192.168.10.180 .1.3.6.1.4.1.2021.11.9.0

  squashfs文件系统,实现与windows一样的磁盘压缩功能

  ./run.sh &后台运行,运行完后使用nohup ./run.sh & 再exit。。。保险点。。。

  setup配置防火墙1234:udp  如果要指定多个端口,请用逗号格开。

  六、jobs

  查看当前有多少在后台运行的命令

  jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息;

  七、fg

  将后台中的命令调至前台继续运行

  如果后台中有多个命令,可以用fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

  八、bg

  将一个在后台暂停的命令,变成继续执行 (在后台执行)

  如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

  将任务转移到后台运行:

  先ctrl + z;再bg,这样进程就被移到后台运行,终端还能继续接受命令。

  九、{Linux下查看硬件信息:

  1.查看机器所有硬件信息:

  dmidecode |more

  dmesg |more

  这2个命令出来的信息都非常多,所以建议后面使用"|more"便于查看

  2.查看CPU信息

  方法一:

  Linux下CPU相关的参数保存在 /proc/cpuinfo 文件里

  cat /proc/cpuinfo |more

  方法二:

  采用命令 dmesg | grep CPU 可以查看到相关CPU的启动信息

  查看CPU的位数:

  getconf LONG_BIT

  3.查看Mem信息

  cat /proc/meminfo |more (注意输出信息的最后一行:MachineMem:   41932272 kB)

  free -m

  top

  4.查看磁盘信息

  方法一:

  fdisk -l 可以看到系统上的磁盘(包括U盘)的分区以及大小相关信息。

  方法二:

  直接查看

  cat /proc/partitions

  5.查看网卡信息

  方法一:

  ethtool eth0 采用此命令可以查看到网卡相关的技术指标

  (不一定所有网卡都支持此命令)

  ethtool -i eth1 加上 -i 参数查看网卡驱动

  可以尝试其它参数查看网卡相关技术参数

  方法二:

  也可以通过dmesg | grep eth0 等看到网卡名字(厂家)等信息

  通过查看 /etc/sysconfig/network-scripts/ifcfg-eth0 可以看到当前的网卡配置包括IP、网关地址等信息。

  当然也可以通过ifconfig命令查看。

  6.如何查看主板信息?

  lspci

  7.如何挂载ISO文件

  mount -o loop *.iso mount_point

  8.如何查看光盘相关信息

  方法一:

  插入CD光碟后,在本人的RHEL5系统里,光碟文件是 /dev/cdrom,

  因此只需 mount /dev/cdrom mount_point 即可。

  [root@miix tmp]# mount /dev/cdrom mount_point

  mount: block device /dev/cdrom is write-protected, mounting read-only

  其实仔细看一下,光驱的设备文件是 hdc

  [root@miix tmp]# ls -l /dev/cdrom*

  lrwxrwxrwx 1 root root 3 01-08 08:54 /dev/cdrom -> hdc

  lrwxrwxrwx 1 root root 3 01-08 08:54 /dev/cdrom-hdc -> hdc

  因此我们也可以这样 mount /dev/hdc mount_point

  如果光驱里没放入有效光盘,则报错:

  [root@miix tmp]# mount /dev/hdc mount_point

  mount: 找不到介质

  9.如何查看USB设备相关

  方法一:

  其实通过 fdisk -l 命令可以查看到接入的U盘信息,本人的U盘信息如下:

  Disk /dev/sda: 2012 MB, 2012217344 bytes

  16 heads, 32 sectors/track, 7676 cylinders

  Units = cylinders of 512 * 512 = 262144 bytes

  Device Boot      Start         End      Blocks   Id  System

  /dev/sda1   *          16        7676     1961024    b  W95 FAT32

  U盘的设备文件是 /dev/sda,2G大小,FAT32格式。

  如果用户登陆的不是Linux图形界面,U盘不会自动挂载上来。

  此时可以通过手工挂载(mount):

  mount /dev/sda1 mount_point

  以上命令将U盘挂载到当前目录的 mount_point 目录,注意挂的是 sda1 不是 sda。

  卸载命令是 umount mount_point

  Linux默认没有自带支持NTFS格式磁盘的驱动,但对FAT32支持良好,挂载的时候一般不需要 -t vfat 参数 。

  如果支持ntfs,对ntfs格式的磁盘分区应使用 -t ntfs 参数。

  如果出现乱码情况,可以考虑用 -o iocharset=字符集 参数。

  可以通过 lsusb 命令查看 USB 设备信息哦:

  [root@miix tmp]# lsusb

  Bus 001 Device 001: ID 0000:0000

  Bus 002 Device 001: ID 0000:0000

  Bus 003 Device 001: ID 0000:0000

  Bus 004 Device 002: ID 0951:1613 Kingston Technology

  Bus 004 Device 001: ID 0000:0000

  }

  bc计算器

  十、【iptables】 http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html

  (1)查看本机关于IPTABLES的设置情况

  [root@tp ~]# iptables -L -n 或 /etc/init.d/iptables status  更详细

  (2)清除所有配置

  [root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则

  [root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则

  [root@tp ~]# iptables -Z 将数据包计数器归零

  (3)设定预设规则

  [root@tp ~]# iptables -P(这是大P) INPUT DROP

  [root@tp ~]# iptables -P OUTPUT ACCEPT

  [root@tp ~]# iptables -P FORWARD DROP

  (4)举例配置

  [root@tp ~]# iptables -A INPUT -s 192.168.0.3 -p(这是小p) tcp --dport 22 -j ACCEPT

关于nat的prerouting与postrouting的文章:http://man.chinaunix.net/network/iptables-tutorial-cn-1.1.19.html#NATTABLE

执行顺序为:源地址发送数据--> {PREROUTING-->路由规则-->POSTROUTING} -->目的地址接收到数据

  (5)最后

  [root@tp ~]#?etc/rc.d/init.d/iptables save或 service iptables save

  [root@tp ~]# service iptables restart

  十一、《源码编译openssh并加入自启动以及chkconfig中,其余源码可参考!》:

  ln -s 源文件 目标文件

  chmod rwxrwxrwx  r=4,w=2,x=1

  编译安装 ./configure make make install---不解释

  安装完要将原码中的redhat的sshd.init拷到/etc/init.d中(其实都是shell脚本),修改里面的路径(使用vim命令),就可以chkconfig和service了,软链接到rc3.d里面就行了(可提前看曾经的sshd启动级别S55sshd)》

  linux实现公钥免密码登陆:

  将生成的公钥导入对方主目录下的.ssh/authorized_keys中,再vim sshd_config禁止密码和空密码登陆和允许公钥登陆!最后service sshd restart就行了!

  其他:设置authorized_keys权限 chmod 600 authorized_keys;设置.ssh目录权限 chmod 700 -R .ssh

  ssh-keygen -t (rsa|dsa) -b (bits) 【-i Convert IETF SECSH to OpenSSH key file|-e Convert OpenSSH to IETF SECSH key file) -m (选择格式) -f (选择公或私钥文件)】

  十二、LINUX安装硬件驱动(以安装网卡为例):

  1、src.rpm方式安装,rpm -ivh bnx2.src.rpm 后cd /usr/src/redhat/SPECS,执行rpmbuild -bb bnx2.spec,默认安装到usr/src/redhat/RPMS/i386目录下【注:但可以指定安装到i686下,如rpmbuild -bb --target=i686 bnx2.spec即可】,再然后cd /usr/src/redhat/RPMS/i386里面执行rpm -ivh bnx2.rpm就行了,安装后的ko驱动模块在/lib/modules//extra/bnx2.ko再拷贝到/lib/modules//drivers/net就可以了,最后等待insmod bnx2.ko或mobprobe bnx2就行了!!!若想开机加载则用vim /etc/modprobe.conf里面alias【在最新版的linux中请在/etc/modprobe.d/dist.conf里面加alias,在用RPM和src rpm安装驱动包前先确定是否有kernel-source、kernel、kernel-devel、kernel-headers、gcc和make这几个软件包,应该是废话!】

  2、建立临时/temp文件夹,交把源码包进行解压,,解压后进入相关目录,执行make clean modules后再make install,标准驱动程序会将驱动安装到相关文件中,但有的不行,则自己手动移动;检查模块间依赖关系:depmod -a然后加载insmod *.ko文件,最后lsmod | grep *查看是否加载成功,最后开机启动加载就用alias在modprobe.conf里面!

  单网卡绑定多个IP:redhat5系统在建立ifcfg-eth0:1类似的来识别;建议在6系列LINXU中,用system-config-network做,直接修改ifcfg文件容易乱,这点就没5系统好用!!!!定义alias时最好在dist.conf做,不用单独建modprobe.conf了!

  YUM安装本地源配置:在/etc/yum.repos.d里面修改centos-base.repo文件,将里面的baseurl修改为baseurl=file:///mnt/cdrom;因为yum安装时自动解决包依赖关系,删除时也删除相关的依赖包,所以建议用rpm进行卸载;yum install 软件包名;yum remove 软件包名;yum check-update(检查可更新的RPM包);yum update(更新所有软件包,或指定的);yum upgrade(大规模版本升级,与update不一样的是陈旧的包也会升级);yum info(列出资源库所有可以安装或更新的RPM包信息,也可以列出指定的);yum search 软件包名(搜索特定包的详细信息);rpm --import URL导入非官方库的GPG

  十三、【安全配置建议】

  禁止ping:可以一定程度减小扫描 编辑sysctl.conf后,增加一行net.ipv4.icmp_echo_ignore_all = 1就行了,然后sysctl -p就OK了

  限制ctl+alt+del组合重启应用:不安全,怕误操作编辑/etc/inittab,在ca::ctraltdel:/sbin/shutdown -t3 -r now前加#,然后执行命令telinit q即可,新版的在/etc/init/control-alt-delete.conf

  限制shell历史命令大小:/etc/profile 里面HISTSIZE=30就行了,然后source /etc/profile就行了

  通过使用iptables骗过黑客(就是让黑客不觉得有防火墙保护):iptables -A INPUT -p tcp --dport 22 -j REJECT --reject-with tcp-reset( 语法不懂就man iptables呀,搜索关键字)

  【备份】linux没有像windows那样的ghost备份简单,只需备份必要的配置及数据即可;系统级备份:主要备份/etc /home /boot /root几个即可;用户级配置文件多在/usr/local /var/www目录;不需要备份的目录有/dev /proc /mnt /tmp

  磁带备份(直接对磁带设备进行操作):mt -f /dev/st0 rewind(将磁带卷至起始位置);mt -f /dev/st0 erase(擦除掉磁带内容);mt -f /dev/st0 offline(出带);通过tar列出磁带上的目录与文件:tar -tvf /dev/st0 [需要查看的文件];从头开始写数据:tar -cvf /dev/st0 文件;继续写数据:tar -rvf /dev/st0 文件;tar -xvf /dev/st0 [磁带上的文件] 默认恢复到本地当前目录下

  十四、【rsync一种用法是指将服务端的同步到客户端(下一),另一种是客户端的实时动态同步到服务端(多用于inotify+rsync,下二)

  远程备份一般用rsync,配置为:服务器上修改rsyncd.conf具体如何配,请man rsyncd.conf,然后rsync --daemon --config=FILE;客户端rsync -avzP 用户名(非Linux用户名)@服务器IP::模块名 --password-file=FILE /LOCALFILEPATH (注意在服务器端的密码文件格式为用户名:密码,而在本地文件只有密码,前面不要加其他,密码文件必须都是600权限。妈的,还是度娘查看了!),具体见:http://book.51cto.com/art/201111/300930.htm;

  实时同步(即客户端的变化实时同步给rsync服务端,服务器配置要read only=false,并且同步的权限要放开)用rsync+inotify:http://book.51cto.com/art/201111/300936.htm,如果备份在10台以上的,可以建议用共享存储,没钱的可以使用:Heartbeat+DRBD+NFS方案】相关脚本已放到硬盘里面了

  十五、LINUX 集群分为三类:HA cluster(heartbeat)、LB cluster(LVS)、HPC cluster,当然还有存储型,注意四者区别,其余配置看书!

  1、HA集群直接用RHCS里面的luci\ricci就行了,当然还要安装cman\rgmanager,如下:其余配置看书:

  RHCS 的HA,个人这样理解:厂商建议使用三台机器,一台安装LUCI当管理,另外两台装ricci当客户端,但是很浪费硬件资源!在系统不崩溃的情况下HA是没有问题的,但是如果主设备宕机心跳信息发不过支,肿么办?这个时候就靠fence强制宕机的主设备关闭电源(开启电源是不是要跑机房呀,不得而知)从而将业务切到备机上面,除非100%的信心保证主设备不会宕机,否则建议使用fence,关于fence有内置的,也有外部的,一般情况为了省钱就用内置的,内置的要求主板网卡支持ipmi特性(两个心跳网卡直接交叉线相连就行了),在BIOS里面修改ipmi的IP地址(和私有心跳一个网段,hosts文件最好写成私有心跳的地址就行了,最好不要用业务IP),内置的不要拔电源线,否则切不过去,因为内置ipmi没电了,备机一直收不到回来的信号也不敢切,怕出现split-brain现象,现在主机都双电源设计了,就不用蛋疼了;外置的还要购买种种设置,反正蛮贵的,不划算,外置的话,可以拔掉主设备的电源,照样切,因为fence设备有电,能收到指令并且能返回指令!

  如果主机未宕机,只是想手动切换就直接用luci指定节点,按下leave cluster后再加入,记到在failover里面选起no failback;做实验时为什么fence加了等于白加,没效果呢,应该是fence不行,我记得查看过vmware的文档,只在esx上支持fence,连esxi上都不支持!

  Conga管理工具(luci/ricci)、cman和rgmanager集群工具安装配置

  1.安装luci工具,在Manager上执行

  #yum install -y luci

  #/etc/init.d/luci start

  #chkconfig luci on

  2.安装rgmanager(包含了ricci/cman),在agent1和agent2上执行

  #yum install rgmanager -y 会自动安装ricci、cman等包

  #chkconfig ricci on ; /etc/init.d/ricci start

  #chkconfig NetworkManager off ; /etc/init.d/NetworkManager stop

  #chkconfig cman on ; chkconfig rgmanager on----个人建议开机不要设,以免不知道谁先启动,最好手工启动

  启动有先后顺序,先启动cman再启动rgmanager,关闭则相反。

  #/etc/init.d/cman start ; /etc/init.d/rgmanager start

  每个节点的ricci需要设置密码,实验使用的密码是shenfei5463

  http://www.kankanews.com/ICkengine/archives/103681.shtml

  关于HA中的failover故障倒换域:

  **添加Failover Domains 故障转移域:

  Prioritized:优先级,故障转移时选择优先级高的。

  Restricted:服务只运行在指定的节点上。

  No Failback:当故障节点又正常的时候,不必把服务切换回去。

  HA中在Resource域里面,已经有标准的资源类别,若不够就自己加脚本,脚本要满足LSB规范的init脚本!

  在Services里面策略:Restart-如果发现资源出现异常,则先在本地尝试重启服务,如果重启失败则执行Relocate操作;Relocate-停止当前节点中与本服务相关的所有资源,由另一台服务器进行服务及资源的接管;Disable-在所有节点中停止服务,不进行任何操作。

  参考信息:http://www.linuxidc.com/Linux/2012-07/64141p2.htm

  特别注意:当在services group里面重启时发生报错(通常为118状态错误,用clustat -l发现一直在resolving),有两处要改(迷信一下),在resource里面的IP ADDRS改成XXXX/24,不要弄成255.255.255.0之类的,有bug;其次更重要的原因是应该先service cman start后再service rgmanager start的,因为我配了chkconfig了,可能系统在启动时先启动了rgmanager了,擦!

  十六、LINUX磁盘配额资料  http://blog.163.com/yueliang_myl/blog/static/1290385222010443204375/

  关于硬件raid,建议看raid卡原厂的readme,不建议使用软raid,维护麻烦!

  LVM逻辑卷管理:http://os.51cto.com/art/201406/443028.htm

  说明很详细,看第6部分即可!

  很有用但鲜有人知的 Linux 命令:http://os.51cto.com/art/201310/414075.htm

  十七、DISPLAY变量用法:

  在当前用户下的.bash_profile下设置

  DISPLAY=192.168.0.20:0.0

  export DISPLAY

  其中192.168.0.20:0.0 的.0主机为192.168.0.20,显示器号0,屏幕号0;

  十八、vim简单使用命令

  替换:s/vivian/sky/ 替换当前行第一个 vivian 为 sky;s/vivian/sky/g 替换当前行所有 vivian 为 sky;n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky,后面加g的话,就是全部!

  增加:%s/^/要增加的内容,每行行首增加;%s/$/要插入的字符串,每行行尾增加!2,50 s/^/\/\//g  在2~50行首添加//号注释;

       跳到文件第一行用g,跳到文件最后一行用G,想跳到25行,就用25gg

  其他用不到的就不用学了,没意思!

       想将某一文件中的551-654行的行首加上#,用:sed -i ‘551,654s/^/#/‘ /etc/snort/snort.conf

  十九、网络质量监控工具:http://os.51cto.com/art/201403/431950.htm     进程带宽占用监控程序:Nethogs

  二十、U盘装Linux遇到问题汇总

  1、备份MBR主引导记录(512字节) dd if=/dev/sda of=/tmp/MBR.back bs=512(不带单位的话就是byte) count=1;反过来恢复使用dd if=/tmp/MBR.back of=/dev/sda即可!

  2、linux分区总是硬件编号变化,例如sda变成sdb,这时需要用tune2fs -l sda1看到UUID记录下来,然后编辑/etc/fstab将设备改成UUID=*就行了;最新系统不用操作这一点

  3、Linux装完系统启动提示“attempting boot from hard disk(C)”时,原因是grub和mbr没装完,用修复模式进入后chroot  /mnt/sysimage,用grub弄【1、安装grub到boot所有分区,例如/dev/sda1,惠普的是grub-install /dev/ccisss/c0d0p1;2、安装mbr:grub>root (hd 注:TAB键看看有多少块磁盘,grub>root (hd1, 注:TAB键看看有多个分区,确定这就是系统所在的磁盘以及boot分区,grub>root (hd1,0) 注:/boot所在的分区

  grub>setup (hd1) 注:把GRUB写到MBR上】具体详细教程:http://zhiwu88.blog.hexun.com/74298211_d.html,关于grub硬盘分区编号问题可百度!

  4、如果出现centos倒计时后进不到系统,则在倒计时输入e编辑,更改引导盘boot所在分区,例:root (hd0,0),kernel后删除UUID参数后所有,再加上enforcing=0 selinux=0就行了,回车按b启动,如果出现Kernel Panic -- not syncing: attempted to kill init(原因就是磁盘有问题),就重复以上步骤不用加enforcing和selinux的,再进,会提示你fsck检查,你就所有盘最好用命令修复一下即可!最后进入系统之后记得修改/etc/grub.conf里面的内容

  共享存储连接方式有iscsi和FCOE两种主流方式

  二十一、windows下的\r\n变成Linux的\n,用 sed -i ‘s/\r$//’ 跟文件,linux shell编程参数解释如下:http://hi.baidu.com/ipvsadm/item/489d9e16460195ddbe9042ee

  

技术分享

  二十二、apache+tomcat配置+mod_jk.so连接器

  1、安装apache时,./configure --enable-modules=most --enable-mods-shared=all --enable-so --enable-so --with-apr-util=PATH --with-opr=PATH --with-PCRE=PATH,可以届时./configure --help一下看,完成apache安装后,要用service命令启动的话,需要把filepid,httpd.conf,httpd三个绝对路径改一下!

  2、./httpd -l若看到event.c时,说明apache 默认运行在event模式,而不是以前的prefork和worker模式,apache真正要配置的文件有httpd.conf和extra目录下的额外扩展配置!在httpd.conf里面若要使用extra里面的配置,就把相关的loadmodule和include前面#去掉

  二十三、文件及文件夹权限设置

  传统的chmod不能细粒度满足指定用户权限要求,setfacl增加文件权限:【setfacl进行权限查看,语法为setfacl -R -m u:用户名:rw- 目录或文件】

  -R是递归执行的意思,可以不要,-m增加,u用户,USER指定用户,rw-就是权限,FILE就是文件或目录;取消某用户对该文件的所有权限:【 setfacl -x u:用户名 文件或目录】;删除所有的用户权限规则,恢复默认:【setfacl -b 目录或文件】;

  但是使用setfacl和getfacl前,必须开启文件系统的ACL权限:1)修改mount选项:mount -o remount,acl /dev/vda3 /mnt/acltest 后然后开机自动挂载:vim /etc/fstab    /dev/vda3 /mnt/acltest ext4 defaults,acl 0 0  或者先修改fstab后再remount都行!

  二十四、关于linux /etc/fstab最后两列的说明:

  第5行此处为1时,表示要将整个备分,现在很少用了,除了/和/boot,都是0;第6行,/必须是1,其他要依次检查的话就为2,3,4....不想检查就写0

  二十五、ext3数据恢复,Ext3grep工具,教程:http://blog.chinaunix.net/uid-25544300-id-3278608.html

  恢复时先卸载掉相关挂载,防止新数据写入不能恢复----> 查询可恢复的数据 ext3grep /dev/sdb1 --ls --inode 2 ----->ext3grep --restore-inode或--restore--file恢复单个文件,也可以--restore-all恢复所有文件,恢复后将在当前路径下生成RESTORED_FILES文件夹,再将文件移动到以前的目录下即可(提前挂载)

  如果umount时出现busy时,可以用‘fuser -v -u 文件名’可以看到谁在用这个文件并显示该PID,也可以直接fuser -k 文件名,可以杀死使用这个文件的进程!

  当然也使用lsof命令,lsof 文件名 可以看到文件被哪个进程所使用;lsof -c 进程名(可以使用进程名称) 可以看到进程名打开的文件;lsof -g gid 可以看到进程组打开的文件情况;lsof -i 监听指定协议、端口、主机信息显示符合条件的进程信息,如lsof -i tcp:25、lsof -i udp@127.0.0.1:53,更多使用lsof的实用案例见http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html

  二十六、swap创建与删除

  1、swap必须由dd命令创建:dd if=/dev/zero  of=filepath bs=1024k count=60 创建了60M文件

  2、把文件变为swap,mkswap filepath

  3、激活swap分区:swapon filepath;移除swap分区:swapoff filepath

  4、开机加载swap:fstab里面,/data/swapfile one swap sw 0 0

  二十七、系统性能分析工具

  CPU性能评估:用vmstat命令,标准:r值不得大于CPU个数;us+sy列参考值为80%,大于说明CPU资源不足;idle值为空闲百分比,理论越大越好!

  磁盘性能评估:用vmstat命令,bi+bo参考值为1000,大于的话且wa值(参考值为20%)较大,则磁盘性能待提高!

  内存性能评估:也可用vmstat命令,主要关注swpd、si、so行(通常si\so长期大于0就认为内存不够用)

  二十八、搭建开源入侵检测系统Snort,并实现与防火墙联动

  http://www.freebuf.com/articles/system/37507.html

二十九、命令行启动virtulbox:VBoxManage startvm <vm_name> -type vrdp(crt启动时一般用headless),防止VRDP端口被外界访问到,添加参数--vrde=off;对于开启了headless模式的虚拟机我们可以用下列命令对其进行关闭重庆等操作: VBoxManage controlvm <uuid>|<name>     pause|resume|reset|poweroff|savestate|

三十、windows下想找到一个文件所有的具体目录,用 dir /s /b | find ".htm" > bass_htm.txt,虽然用tree也可以,但有时不方便

三十一、linux通过IP找主机名:nmblookup -A ip;windows通过IP找主机名:nbtstat -a 10.16.214.60

三十二、linux记录用户登陆时间、操作日志、从哪里来脚本:http://outofmemory.cn/code-snippet/4677/time-denglu-IP-record-Linux-suo-exist-user-operation-rizhi-script

二十九、不同操作系统密码加密文件所在位置:

AIX:/etc/security/passwd or /tcb/auth/files or username;

A/UX :/tcb/files/auth/?/*

BSD:/etc/master.passwd

HP:/.secure/etc/passwd

三十、sudo配置解释:http://blog.sina.com.cn/s/blog_403aa80a01016o0v.html

打开sudo文件:visudo,权限配置格式如下:

%用户组名 主机名=(权限) 命令

用户名 主机名=(权限) 命令

三十一、Linux下如何查找文件以及文件内的内容:http://www.cnblogs.com/sunleecn/archive/2011/11/01/2232210.html

 从文件内容查找匹配指定字符串的行:

$ grep "被查找的字符串" 文件名

从文件内容查找与正则表达式匹配的行:

$ grep –e “正则表达式” 文件名

查找时不区分大小写:

$ grep –i "被查找的字符串" 文件名

匹配整个单词:

$ grep –w "被查找的字符串" 文件名

查找匹配的行数:

$ grep -c "被查找的字符串" 文件名

从文件内容查找不匹配指定字符串的行:

$ grep –v "被查找的字符串" 文件名

统计文件中关键字分别出现的哪一行:grep -n "关键字"    “文件路径” | cut -d ":"  -f1

统计文件中关键字出现的最后一行行号:grep -n "关键字"    “文件路径” | tail -n 1 | cut -d ":"  -f1

 从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行

find / -type f -name "*.log" | xargs grep "ERROR"

 系统查找到httpd.conf文件后即时在屏幕上显示httpd.conf文件信息。

find/-name"httpd.conf"-ls

 在根目录下查找某个文件

find . -name "test"

在根目录查找所有SUID文件并列出来

find / -type f -perm -04000 -ls

在根目录查找所有GUID文件并列出来

find / -type f -perm -02000 -ls

在某个目录下查找包含某个字符串的文件

 grep -r  -i "zh_CN" ./

三十二、查询某命令是哪个安装包安装的,先which 程序名看路径,然后再rpm -qf 路径 即可看到

三十三、nc 网络瑞士***

1、远程拷贝文件:

从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,server2上运行nc -lp 1234 > install.log;server1上运行: nc -w(定义timeout时长) 1 192.168.228.222(server2 IP) 1234 < install.log

2、克隆硬盘或分区:

操作与上面的拷贝是雷同的,只需要由dd获得硬盘或分区的数据,然后传输即可。

克隆硬盘或分区的操作,不应在已经mount的的系统上进行。所以,需要使用安装光盘引导后,进入拯救模式(或使用Knoppix工具光盘)启动系统后,在server2上进行类似的监听动作:

# nc -l -p 1234 | dd of=/dev/sda

 server1上执行传输,即可完成从server1克隆sda硬盘到server2的任务:

# dd if=/dev/sda | nc 192.168.228.222 1234

 ※ 完成上述工作的前提,是需要落实光盘的拯救模式支持服务器上的网卡,并正确配置IP。

3、端口扫描:

引用# nc -v -w 1 192.168.228.222 -z(zero模式,用于端口扫描) 1-1000

hatest2 [192.168.228.222] 22 (ssh) open 

4、模拟HTTP Headers

nc www.linuxfly.org 80

HEAD / HTTP/1.1


(两次回车)

如果遇到https网站时,可以使用openssl查看标语,如下:

openssl s_client -quiet -connect www.example.com:443

HEAD / HTTP/1.1



5、传输目录

从server1拷贝nginx-0.6.34目录内容到server2上

[root@hatest2 tmp]# nc -l 1234 |tar xzvf -

 [root@hatest1 ~]# tar czvf - nginx-0.6.34|nc 192.168.228.222 1234

三十四、http://edu.51cto.com/

三十五、想知道操作系统内哪张网卡对应实际机器上哪张网卡时,linux用ethtool -p eth0,看物理机的灯闪烁

三十六、LINUX查看当前所在路径用pwd命令,光忘,日本人

三十七、debian系统查看软件安装情况用 dpkg -l

三十八、crontab使用方法:

        f1 f2 f3 f4 f5 program

        其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。

三十九、环境变量的设置位于/etc/profile文件,对所有用户都生效,对个别用户生效的则在用户的HOME目录下的.bash_profile设置

四十、若想在linux的终端打开文件用vim显示不同的颜色,则在当前登陆用户主目录下创建.vimrc文件,里面填写syntax on

四十一、rsyslog配置:客户端配置:在/etc/rsyslog.conf里面添加local7.*     @192.168.42.129:514即使用UDP,若使用TCP则@@IP,另外还要有程序将日志输出到LOG_LOCAL7才行,例如 snort.conf里面这样配置:output alert_syslog: host=192.168.42.129:514 LOG_LOCAL7 LOG_ALERT;服务端配置:在/etc/rsyslog.conf里添加local7.*       /var/log/snort/alert,取掉$ModLoad imudp $UDPServerRun 514之前的#号, 在/etc/default/rsyslog里面改为RSYSLOGD_OPTIONS="-c5 -r -x"

四十二、正则表达式:

基础正则表达式的元字符有:

技术分享

技术分享

扩展正则表达式的元字符有:

技术分享


四十三、linux利用多核CPU来高效执行命令:parallel

1、如果有A、B、C三个程序需要运行,而C是需要在A和B都运行完之后再运行,面A和B可以同时运行,无依赖关系,则可以使用parallel -j 2 "sh a.sh" "sh b.sh";然后再执行sh c.sh

2、通常的grep是单进程处理,可以使用如下命令快速搜索文件文件:cat bigfile.txt | parallel  --pipe grep ‘pattern‘,尝试使用parallel -pipe grep "pattern" 1.txt出错,可能不支持。

3、有空可以研究一下taskset命令,看是否也可以达到parallel效果


LINUX学习笔记

标签:linux

原文地址:http://70665.blog.51cto.com/60665/1654904

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!