`
qqdwll
  • 浏览: 131627 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

linux 常用命令

阅读更多
1. 察看命令  
    系统

  # uname -a               # 查看内核/操作系统/CPU信息

  # head -n 1 /etc/issue   # 查看操作系统版本

  # cat /proc/cpuinfo      # 查看CPU信息

  # hostname               # 查看计算机名

  # lspci -tv              # 列出所有PCI设备

  # lsusb -tv              # 列出所有USB设备

  # lsmod                  # 列出加载的内核模块

  # env                    # 查看环境变量

  资源

  # free -m                # 查看内存使用量和交换区使用量
    # cat /proc/swaps        # 查看交换区

  # 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                # 查看所有安装的软件包


  

2. 更改权限
     #chmod u+x  fileName           #给owner 加可执行权限
     #chmod 777  fileName           #  u g o
     #chown user:group dir/file     #更改用户和组
    
    
3. 用户和组
   # grep group1 /etc/group      # To determine whether the group1 group exists
  
   # /usr/sbin/groupadd group1   #create the group1 groups
  
   # id user1               # To determine whether the  user exists and belongs to the correct groups
  
   # /usr/sbin/usermod -g group1 -G group1 user1  #If the user1 user exists, but its primary group is not group1 or it is not a member of the group1 group,
  
   # /usr/sbin/useradd -g group -G group user1   #This command creates the user1 user and specifies group1 as the primary.
  
   # passwd user1           #set the password of the user1 user
  
  
4. grep
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。


grep magic /usr/src/linux/Documentation/* | less

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
这里还有些用于搜索的特殊符号:

\< 和 \> 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’,
grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。
'^':指匹配的字符串在行首,
'$':指匹配的字符串在行尾,

{m,n}  出现的次数。  注意要用转义
\{m,n\}

5 cat
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting


cat -b textfile1 textfile2 >> textfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容

cat file | grep ERROR * > new_file


6. iostat
iostat -m 2 10

sar -r 2 3  监测内存使用情况
sar 2 3     监测cpu使用情况

7.  画图
rpm -ql sysstat-7.0.2-3.el5

gnuplot
set xlabel "time"  #设置 x 轴坐标 名字
set ylabel "eth0 status" #设置 y 轴坐标名字
set xdata time            #将 x 轴的data类型设置为 time 时间型
set timefmt "%H时%M分%S秒"   # 这步是设置 时间的格式,和上面的操作对应,(因为我用了默认的中文环境,所以/tmp/sar.log 的第一行显示的时间为中文,所以我这里为了能看得舒服些,就这样写了,大家可以根据自己喜好定义
plot "/tmp/sar.log" using 1:5 #这步就是输出图表了, 中间的是我刚才保存的文件 using 1:5 是使用文件中的 第一列作为x 轴 第六列作为y轴
plot "/tmp/sar.log" using 1:5 with line #再看图就不同了吧,用线的方式将点都连接起来了
replot "/tmp/sar.log" using 1:4 with line #如果你想在 刚才的图中 加入其他的 数值并和原来的图对比,就用这条命令吧。

8.  系统参数设置
linux ulimit的用法
文章分类:操作系统
1,说明:
ulimit用于shell启动进程所占用的资源.
2,类别:
shell内建命令
3,语法格式:
ulimit [-acdfHlmnpsStvw] [size]
4,参数介绍:
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes
5,举例
在 Linux下写程序的时候,如果程序比较大,经常会遇到“段错误”(segmentation fault)这样的问题,这主要就是由于Linux系统初始的堆栈大小(stack size)太小的缘故,一般为10M。我一般把stack size设置成256M,这样就没有段错误了!命令为:
ulimit   -s 262140
如果要系统自动记住这个配置,就编辑/etc/profile文件,在 “ulimit -S -c 0 > /dev/null 2>&1”行下,添加“ulimit   -s 262140”,保存重启系统就可以了

9. 端口, 进程
linux 环境
root用户执行netstat -ntupl | grep processname
n表示不查询dns
t表示tcp协议
u表示udp协议
p表示查询占用的程序
l表示查询正在监听的程序

netstat -npl | grep processnumber  但是我系统里没有t,u选项。 用这命令同样可以。

window 环境
netstat -nao //列出所有进程以及其占用的端口
netstat -aon|findstr "端口号"
tasklist|findstr "进程"

taskkill /PID 进程号 /F  //强制关闭某个进程
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics