常用Shell笔记

 

  • CURL命令

 

[root@myserver]# curl -o home.html  http://www.cnblogs.com/flat_peach  打开某个url
 
  • rpm -qa|grep  XXX  查询已安装的某个软件
 
  • yum 命令
 
 
  • cat命令
 
1.一次显示整个文件。
$ cat   filename
 
2.从键盘创建一个文件。
$ cat  >  filename
只能创建新文件,不能编辑已有文件.
 
3.将几个文件合并为一个文件。
$cat   file1   file2  > file
 
cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName


vi 命令:
vi /etc/profile
 


          linux vi 保存退出 操作:esc键,输入      :wq

          linux vi 不保存退出 操作:esc键,键入    :q!

 
光标定位到要删除的那一行,然后  dd“u”命令撤销上一个编辑操作。删除文件/文件夹
 
显示行号:
在VI的命令模式下输入“:set nu”

          移到行首  (shift+6)
移到行尾是 $ (shift+4)
 

          vi复制多行文本的方法

          方法1: 
          光标放到第6行, 
          输入:2yy 
          光标放到第9行, 
          输入:p 
          此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。 
          方法2: 
          命令行模式下输入      
          6 ,9 co 12 
          复制第6行到第9行之间的内容到第12行后面。 
          方法3: 
          有时候不想费劲看多少行或复制大量行时,可以使用标签来替代 
 
          光标移到起始行,输入ma 
          光标移到结束行,输入mb 
          光标移到粘贴行,输入mc 
 
          然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
 
 
          要删除多行的话,可以用 :5, 9 de
               剪切亦可用
               用v进入visual模式,d是删除命令(和命令模式一样)。
               d之后用p可以粘贴,p粘贴在光标后,P在光标前。

               注意用x或dd删除掉的东西也是要放在剪贴板里的,会覆盖当前剪贴板的内容。



               剪切文本:
                用v选中文本之后可以按y进行复制,如果按d就表示剪切,之后按p进行粘贴。


               剪切一行:dd
               剪切当前行光标所在的位置到行尾:d$
               剪切当前行光标所在的位置到行首:d^
               前切三行:3dd,即从当前行+下两行被剪切了

          查询某个服务状态:
#service servicename status是当前状态
#chkconfig --list  |grep servicename 查看 

     配置域名
# vim /etc/hosts

less /etc/profile
less命令通常用来查看比较大的日志文件,因为其具有灵活的查找功能,并且打开大文件的速度也很快。

命令格式:
less 文件名

可以输入的命令有:

空格键:向下翻动一页;
[pagedown]:向下翻动一页;
[pageup]:向上翻动一页;
/字符串:向下搜索“字符串”的功能;
?字符串:向上搜索“字符串”的功能;
n:重复前一个搜索(与/或?有关);
N:反向重复前一个搜索(与/或?有关);
q:退出less程序。



rm -r /home/ftk/apache-tomcat-5.5.20/work,不管它是文件还是目录都删掉了命令“whoami”获取当前linux用户名和用户组

  • 系统
# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量
资源
# free -m                # 查看内存使用量和交换区使用量
# df -h                  # 查看各分区使用情况
# du -sh <目录名>        # 查看指定目录的大小
# grep MemTotal /proc/meminfo   # 查看内存总量
# grep MemFree /proc/meminfo    # 查看空闲内存量
# uptime                 # 查看系统运行时间、用户数、负载
# cat /proc/loadavg      # 查看系统负载
磁盘和分区
# mount | column -t      # 查看挂接的分区状态
# fdisk -l               # 查看所有分区
# swapon -s              # 查看所有交换分区
# hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE       # 查看启动时IDE设备检测状况
网络
# ifconfig               # 查看所有网络接口的属性
# iptables -L            # 查看防火墙设置
# route -n               # 查看路由表
# netstat -lntp          # 查看所有监听端口
# netstat -antp          # 查看所有已经建立的连接
# netstat -s             # 查看网络统计信息
进程
# ps -ef                 # 查看所有进程
# top                    # 实时显示进程状态
用户
# w                      # 查看活动用户
# id <用户名>            # 查看指定用户信息
# last                   # 查看用户登录日志
# cut -d: -f1 /etc/passwd   # 查看系统所有用户
# cut -d: -f1 /etc/group    # 查看系统所有组
# crontab -l             # 查看当前用户的计划任务
服务
# chkconfig --list       # 列出所有系统服务
# chkconfig --list | grep on    # 列出所有启动的系统服务
程序
# rpm -qa                # 查看所有安装的软件包


#cp [-选项] 来源档(source)       目的档(destination)






chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

chkconfig在没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。

参数用法:
   --add  增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
   --del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
   --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。
      等级0表示:表示关机
      等级1表示:单用户模式
      等级2表示:无网络连接的多用户命令行模式
      等级3表示:有网络连接的多用户命令行模式
      等级4表示:不可用
      等级5表示:带图形界面的多用户模式
      等级6表示:重新启动
      需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

    chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
    chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
    chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
    chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。

运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.

使用范例:
chkconfig --list        #列出所有的系统服务
chkconfig --add httpd        #增加httpd服务
chkconfig --del httpd        #删除httpd服务
chkconfig --level httpd 2345 on        #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig --list        #列出系统所有的服务启动情况
chkconfig --list mysqld        #列出mysqld服务设置情况
chkconfig --level 35 mysqld on        #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on        #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级

如何增加一个服务:
1.服务脚本必须存放在/etc/ini.d/目录下;
2.chkconfig --add servicename
    在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
3.chkconfig --level 35 mysqld on
    修改服务的默认启动等级。 
 

httpd安装后其他机器无法访问,防火墙设置:

 安装apache以及https模块之后,
/etc/init.d/httpd start 或者service httpd restart成功启动了Apache
但是局域网的另外一台机器却无法显示其页面。

诊断:

1、
netstat -l 看到 80 端口正在被监听。在本地通过http://127.0.0.1可以访问
2、
接着使用 curl http://127.0.0.1 可以得到页面源码。且不说默认的Apache配置如何,至少能说明服务已经跑起来了。
但是在局域网另外一台机器却无法打开页面。
3、
我使用SSH连到CentOS操作的,说明之间的链路是没问题的。

随之想到的就是防火墙,记得有个iptables,通过iptables -nL 查看防火墙规则,通过iptables -F清除防火墙规则。
这里需要注意的就是,添加那句规则时,一定要放在拒绝规则的上面,和22端口的规则挨在一起就没错了。

解决方法:

通过/etc/init.d/iptables status命令查询是否有打开80端口,如果没有可通过两种方式处理:

1.修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

2.关闭防火墙
/etc/init.d/iptables stop
#start 开启
#restart 重启

永久性关闭防火墙chkconfig –level 35 iptables off

 


 

 

格式化硬盘:

# mkfs -t ext3 /dev/sdc1

 

  • 开启shhd服务:

# /etc/init.d/sshd start

 

  • 开机自动启动shhd:

# chkconfig --level 3 sshd on

 

  • 查看是否安装ssh的相应包:

# rpm -aq|grep ssh

  • 如果已经安装查看相关的port是否打开:

# netstat -an|grep 22

 

 

 

 

  •  Centos 查看系统硬件信息 

一:使用CentOS常用命令查看cpu

 

more /proc/cpuinfo | grep "model name"   

 grep "model name" /proc/cpuinfo   

 [root@localhost /]# grep "CPU" /proc/cpuinfo   

 model name      : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz   

 model name      : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz   

如果觉得需要看的更加舒服

grep "model name" /proc/cpuinfo | cut -f2 -d:

 

二:使用CentOS常用命令查看内存

 

grep MemTotal /proc/meminfo  grep MemTotal /proc/meminfo | cut -f2 -d:  free -m |grep "Mem" | awk '{print $2}'

 

三:使用CentOS常用命令查看cpu是32位还是64位

 

查看CPU位数(32 or 64)

 getconf LONG_BIT

 

四:使用CentOS常用命令查看当前linux的版本

 

more /etc/redhat-release

 cat /etc/redhat-release

 

五:使用CentOS常用命令查看内核版本

 

uname -r

 uname -a 

 

posted @ 2013-01-22 00:41  flat_peach  阅读(379)  评论(0编辑  收藏  举报