linux的linux常用命令大全干什么用的

linux系统中如何查看日志 (常用命令) - 莫斯迷的技术站 - ITeye技术网站
博客分类:
cat
tail -f
日 志 文 件 说&&& 明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
系统:
# uname -a&& # 查看内核/操作系统/CPU信息
# cat /etc/issue
# cat /etc/redhat-release # 查看操作系统版本
# 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&& # 查看所有安装的软件包
原文地址:http://help.lampok.net/log/?p=826
浏览 76333
浏览: 307669 次
来自: 西安
引用引用[i][i][/i][/i]
博主在吗?为什么我配置了propertise文件以后Sprin ...
yixiandave 写道weiqiang.yang 写道我觉 ...
weiqiang.yang 写道我觉得密码变成md5(user ...Linux常用Shell脚本珍藏 - Just Code - ITeye技术网站
博客分类:
我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本。如何学好脚本,最关键的是就是大量的练习 和实践。根据以下脚本我们可以拓展,这样我们提高的很快!举一反三!
1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。
参考程序:
echo “Input file name:”
read FILENAME
if [ -c "$FILENAME" ]
cp $FILENAME /dev
2.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。
参考答案:
groupadd class1
while [ $i -le 30 ]
if [ $i -le 9 ] ;then
USERNAME=stu0${i}
USERNAME=stu${i}
useradd $USERNAME
mkdir /home/$USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME
i=$(($i+1))
3.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。
参考程序:
while [ $i -le 50 ]
userdel -r stud${i}
i=$(($i+1 ))
4.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:(1)在下午4 :50删除/abc目录下的全部子目录和全部文件; (2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内; (3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz; (4)在下午5:55将IDE接口的CD-ROM卸载(假设:CD-ROM的设备名为hdc); (5)在早晨8:00前开机后启动。
参考答案: 解决方案: (1)用vi创建编辑一个名为prgx的crontab文件; (2)prgx文件的内容:
50 16 * * * rm -r /abc/*
0 8-18/1 * * * cut -f1 /xyz/x1 &;&; /backup/bak01.txt
50 17 * * * tar zcvf backup.tar.gz /data
55 17 * * * umount /dev/hdc
(3)由超级用户登录,用crontab执行 prgx文件中的内容: root@xxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab。
5.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。
参考答案:(1)编写shell程序fileback:
DIRNAME=`ls /root | grep bak`
if [ -z "$DIRNAME" ] ; then
mkdir /root/bak
cd /root/bak
YY=`date +%y`
MM=`date +%m`
DD=`date +%d`
BACKETC=$YY$MM$DD_etc.tar.gz
tar zcvf $BACKETC /etc
echo “fileback finished!”
(2)编写任务定时器:
echo “0 0 1 * * /bin/sh /usr/bin/fileback” &; /root/etcbakcron
crontab /root/etcbakcron
或使用crontab -e 命令添加定时任务:
0 1 * * * /bin/sh /usr/bin/fileback
6.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?
参考答案:
(1)第一种方法:
用户应使用crontab –e 命令创建crontab文件。格式如下:
0 0 * * sun cp –r /user/backup /tmp
(2)第二种方法: 用户先在自己目录下新建文件file,文件内容如下:
0 * * sun cp –r /user/backup /tmp
然后执行 crontab file 使生效。
7.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
参考答案: 建立程序 Pro16如下:
while [ i -le 50 ]
if [ -d /userdata ];then
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo “user$i”
let “i = i + 1″ (或i=$(($i+1))
mkdir /userdata
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo “user$i”
let “i = i + 1″ (或i=$(($i+1))
8、mysql备份实例,自动备份mysql,并删除30天前的备份文件
#auto backup mysql
#PATH DEFINE
BAKDIR=/data/backup/mysql/`date +%Y-%m-%d`
MYSQLDB=www
MYSQLPW=backup
MYSQLUSR=backup
if[ $UID -ne 0 ];then
echo This script must use administrator or root user ,please exit!
if[ ! -d $BAKDIR ];then
mkdir -p $BAKDIR
echo This is $BAKDIR exists ,please exit ….
###mysqldump backup mysql
/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB &/data/backup/mysql/`date +%Y-%m-%d`/www_db.sql
cd $BAKDIR ; tar -czf
www_mysql_db.tar.gz *.sql
cd $BAKDIR ;find
. -name “*.sql” |xargs rm -rf[ $? -eq 0 ]&&echo “This `date +%Y-%m-%d` RESIN BACKUP is SUCCESS”
cd /data/backup/mysql/ ;find . -mtime +30 |xargs rm -rf
9、自动安装Nginx脚本,采用case方式,选择方式,也可以根据实际需求改成自己想要的脚本
###nginx install shell
###PATH DEFINE
SOFT_PATH=/data/soft/
NGINX_FILE=nginx-1.2.0.tar.gz
DOWN_PATH=http://nginx.org/download/
if[ $UID -ne 0 ];then
echo This script must use administrator or root user ,please exit!
if[ ! -d $SOFT_PATH ];then
mkdir -p $SOFT_PATH
download ()
cd $SOFT_PATH ;wget $DOWN_PATH/$NGINX_FILE
install ()
yum install pcre-devel -y
cd $SOFT_PATH ;tar xzf $NGINX_FILE ;cd nginx-1.2.0/ &&./configure –prefix=/usr/local/nginx/ –with-http_stub_status_module –with-http_ssl_module
[ $? -eq 0 ]&&make &&make install
lsof -i :80[ $? -ne 0 ]&&/usr/local/nginx/sbin/nginx
ps -ef |grep nginx |grep -v grep |awk ‘{print $2}’|xargs kill -9
echo $? ;exit
###case menu #####
case $1 in
download )
echo “USAGE:$0 {download or install or start or stop}”
10、批量解压tar脚本,批量解压zip并且建立当前目录。
PATH1=/tmp/images
PATH2=/usr/www/images
for i in `ls ${PATH1}/*`
这个脚本是针对所有tar文件在一个目录,但是实际情况中,有可能在下级或者更深的目录,我们可以使用find查找
PATH1=/tmp/images
PATH2=/usr/www/images
for i in `find
”*.tar” `
如何是zip文件,例如123189.zip 132342.zip 等等批量文件,默认unzip直接解压不带自身目录,意思是解压123189.zip完当前目录就是图片,不能创建123189目录下并解压,可以用shell脚本实现
PATH1=/tmp/images
PATH2=/usr/www/images
for i in `find
”*.zip”|awk
{print $2} `
ssh 批量上传文件
上传文件大多数用的是ftp,但是用ftp有一点不好,就是本地和远程的目录要对应,这样就要在多个目录下去切换,这样挺麻烦的,如果不注意的话,很有可能传错。所以想了个办法利用scp来批量上传文件或者目录。
一,scp上传不要输入密码
如果要用scp来上传文件,第一步就要去掉scp上传时要输入密码。要不然就没办法批量上传了。具体请参考:
二,ssh批量上传脚本
1,要上传的文件列表放到一个test文件中
root@ubuntu:/home/zhangy# cat test
/home/zhangy/test/aaa
/home/zhangy/test/nginx.conf
/home/zhangy/test/test.sql
/home/zhangy/test/pa.txt
/home/zhangy/test/password
上面就要上传的文件。
2,批量上传的脚本
vim file_upload.sh
DATE=`date +%Y_%m_%d_%H`
for file in $(sed '/^$/d' $1)
//去掉空行
if [ -f $file ]
//普通文件
res=`scp $file $2:$file`
//上传文件
if [ -z $res ]
//上传成功
echo $file && ${DATE}_upload.log
//上传成功的日志
elif [ -d $file ]
res=`scp -r $file $2:$file`
if [ -z $res ]
echo $file && ${DATE}_upload.log
echo "no file" && ${DATE}_error.log
上传成功后,返回的是一个空行,上传不成功,什么都不返回
3,上传的格式
./file_upload.sh test 192.168.1.13
test是上传列表文件,192.168.1.13文件要传到的地方。
转载请注明作者:海底苍鹰地址:
1. 转换文件大小写:
A script to convert the specified filenames to lower case.
# convert all file names in the current directory to lower case
# only operates on plain files--does not change the name of directories
# will ask for verification before overwriting an existing file
for x in `ls`
if [ ! -f $x ]; then
lc=`echo $x
| tr '[A-Z]' '[a-z]'`
if [ $lc != $x ]; then
mv -i $x $lc
if test $# = 0
echo "Usage $0: &files&" 1&&2
for filename in "$@"
new_filename=`echo "$filename" | tr A-Z a-z`
test "$filename" = "$new_filename" && continue
if test -r "$new_filename"
echo "$0: $new_filename exists" 1&&2
elif test -e "$filename"
mv "$filename" "$new_filename"
echo "$0: $filename not found" 1&&2
2. 看网站 Watch a Website
A script to repeated download a webpage until it matches a regex then notify an e-mail address.
For example to get e-mail when Kesha tickets (not for yourself of course) go on sale you might run:
% watch_website.sh .au/ 'Ke[sS$]+ha' andrewt@cse.unsw.edu.au
repeat_seconds=300
#check every 5 minutes
if test $# = 3
email_address=$3
echo "Usage: $0 &url& &regex&" 1&&2
while true
if wget -O- -q "$url"|egrep "$regexp" &/dev/null
echo "Generated by $0" | mail -s "$url now matches $regexp" $email_address
sleep $repeat_seconds
3. 转GIF到PNG
This scripts converts GIF files to PNG files via the intermediate PPM format.
if [ $# -eq 0 ]
echo "Usage: $0 files..." 1&&2
if ! type giftopnm 2&/dev/null
echo "$0: conversion tool giftopnm not found " 1&&2
# missing "in ..." defaults to in "$@"
case "$f" in
# OK, do nothing
echo "gif2png: skipping $f, not GIF"
dir=`dirname "$f"`
base=`basename "$f" .gif`
result="$dir/$base.png"
giftopnm "$f" | pnmtopng & $result && echo "wrote $result"
A utility script to print the sub-range of integers specified by its arguments.
Useful to use on the command line or from other scripts
if test $# = 1
elif test $# = 2
echo "Usage: $0 &start& &finish&" 1&&2
for argument in "$@"
if echo "$argument"|egrep -v '^-?[0-9]+$' &/dev/null
echo "$0: argument '$argument' is not an integer" 1&&2
number=$start
while test $number -le $finish
echo $number
number=`expr $number + 1`
# or number=$(($number + 1))
Count the number of time each different word occurs in the files given as arguments.
sed 's/ /\n/g' "$@"|
# convert to one word per line
tr A-Z a-z|
# map uppercase to lower case
sed "s/[^a-z']//g"|
# remove all characters except a-z and '
egrep -v '^$'|
# remove empty lines
# place words in alphabetical order
# use uniq to count how many times each word occurs
# order words in frequency of occurrance
For example
% cd /home/cs2041/public_html/lec/shell/examples
% ./word_frequency.sh dracula.txt|tail
Search $PATH for the specified programs
if test $# = 0
echo "Usage $0: &program&" 1&&2
for program in "$@"
program_found=''
for directory in `echo "$PATH" | tr ':' ' '`
f="$directory/$program"
if test -x "$f"
ls -ld "$f"
program_found=1
if test -z $program_found
echo "$program not found"
Alternative implementation using while, and a cute use of grep and ||
if test $# = 0
echo "Usage $0: &program&" 1&&2
for program in "$@"
echo "$PATH"|
tr ':' '\n'|
while read directory
f="$directory/$program"
if test -x "$f"
ls -ld "$f"
egrep '.' || echo "$program not found"
And another implementation using while, and a cute use of grep and ||
if test $# = 0
echo "Usage $0: &program&" 1&&2
for program in "$@"
n_path_components=`echo $PATH|tr -d -c :|wc -c`
while test $index -le $n_path_components
directory=`echo "$PATH"|cut -d: -f$index`
f="$directory/$program"
if test -x "$f"
ls -ld "$f"
program_found=1
index=`expr $index + 1`
test -n $program_found || echo "$program not found"
来源: http://www.cse.unsw.edu.au/~cs/lec/shell/examples.notes.html
浏览 14988
浏览: 5576196 次
来自: 洛杉矶
学习了。素人派
传统字符验证码既不安全,用户体验又差,极验验证的验证码不仅安全 ...
很棒的教程,给予我很大帮助,感谢
佩服能写出这些博客的人trackbacks-0
这几天正好在研究linux系统,打算将下一个项目部署在linux系统的服务器上已提高安全性(被window 2003已经折磨的不行了),经过各方了解和深思熟虑后决定使用linux系统的CentOs版本,该版本很适合作为服务器版本,比较稳定。刚刚在虚拟机上安装好了CentOs 6.4版本。
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、、键盘、鼠标,还是用户等都是文件,Linux的是它正常运行的核心,与之前的DOS命令类似。在系统中有两种类型:内置Shell命令和Linux命令。
一般作为服务器端的版本都是提倡不安装图形界面的,只使用命令行进行管理,因此掌握必要的linux命令成了必须,下面我就记录一些常用的命令(在以后的使用中将会不断的更新)
shutdown -h now
现在马上关机
shutdown -r now
现在重新启动
现在重新启动
如果当前是普通用户,则输入这条命令切换到管理员用户(root),如果要切换到其他用户则敲入
su - 用户名 如:  su - shenliang
从当前用户注销(如果是在图形界面的终端的话,则是输入
命令来退出当前用户)
切换目录【如:cd / 表示切换到linux的根目录!!(/)表示根目录】
显示用户当前在哪个路径下的命令 (这个命令用的特别多,在命令行里如果不知道当前所处文件夹,可以输入该命令 pwd
用于创建,删除用户
useradd 用户名
【添加一个用户】 如:useradd shenliang
passwd 用户名
【给指定的用户名修改密码】 如:passwd shenliang
userdel 用户名
【删除一个用户,但是该用户在home文件下的子文件夹会保留】 如:userdel shenliang
userdel -r 用户名
【删除一个用户,并且删除连同该用户在home文件夹下的子文件夹】 如:userdel -r shenliang
对于文件夹及文件的一些操作(使用频率是最高的)
ls 【列出文件和目录】 如:ls /home (列出home下面的所有文件和目录)
ls -l 【列出的文件和目录以长列表显示】 如:ls -l /home
ls -a 【列出隐藏的文件和目录】 如:ls -a /home
mkdir 【建立目录】 如:mkdir test
rmdir 【删除空目录】 如:rmdir test(只能删除空目录,如果该目录下还有其它文件则该命令无效)
touch 【建立空文件】 如:touch Test.java
cp 【复制命令】 如:cp /home/Test.java / (将home路径下的Test.java文件复制到根目录下)
cp -r dir1 dir2 【-r表示递归,将dir1代表的文件夹及里面的文件复制到dir2路径那里】
如:cp -r /home/test /(将home下的test文件夹复制到根目录下)
mv 【移动文件和改文件名】 如:mv /home/Test.java /(表示将home下的Test.java文件移动到根目录下)
mv /Test.java /Hello.java(表示将Test.java文件名改成Hello.java)
rm 【删除文件和目录】 如:rm /Test.java (将根目录下的Test.java删除)【注:如果该文件是个文件夹则删除不了】
rm -rf *【(-r表示递归、f表示强制删除)删除所有内容,包括目录和文件夹】 如:rm -rf /home/test(强制删除home下的test文件夹)
ln 【建立符号链接,类似于windows中的快捷方式(需root权限或相应用户权限)】
ln -s 源目标 目的目标
如:ln -s /etc/inittab /inittab(这样就会在根目录下建立一个inittab链接,该链接指向了etc目录下的inittab文件)
more 【显示文件内容,带分页】
less 【显示文件内容,带分页】 如果我们的一个文件里面有很多内容,就可以使用more命令给其分页
如:more /etc/prelink.conf (给etc下面的prelink.conf文件内容进行分页显示)
| 【管道命令】 【这个命令在linux系统中用的很多】 ( | 这个命令的作用就是将 | 前面的那个命令的结果交给 | 后面的那个命令来处理)
如:ls /etc | more (|前面那个命令是显示出etc文件夹下的所有文件及目录,|后面那个命令就是以分页形式显示,
所以这个命令的意思就是 以分页来显示出etc目录下的所有文件和目录)
grep 【在文本中查询内容】 这条命令用的非常多 如:grep "shenliang" /home/Test.txt (在Test.txt文件中查询出包含有shenliang的那行文本信息)
如果需要显示出所查文本所在行数则使用: grep -n "shenliang" /home/Test.txt(查询出Test.txt文件中shenliang该信息所在行数以及改行所有文本)
find 【搜索文件及目录】 如:find /home -name Test.java (在home文件夹下或者home中所有的子文件夹下查找名字为Test.java的文件)
重定向命令【& 、&&、&】
如:ls -l /etc& a.txt (将etc下面的列表信息写入到a.txt文件中【覆写】,如果之前不存在a.txt文件,则创建a.txt文件然后将信息写进去,
如果存在a.txt文件,则会覆盖掉之前的信息)
ls -al /etc&& aa.txt (将etc下面的列表信息追加到aa.txt文件信息后面)
从文件中输入信息 aaa & bbb
【cat、vi】(cat命令只能查看文件,vi命令既可以查看文件又可以修改文件,对于一些关键文件我们一般使用cat命令查看)
如:cat /etc/profile (只是查看该文件里的内容)    vi /etc/profile (查看、并且可以修改该文件里的内容)
向文件中写入内容:
覆盖型写法 (文件里原来的内容被覆盖)
echo "" & .txt
添加型写法
(新内容添加在原来内容的后面)
echo "" && java.txt
阅读(...) 评论()linux下查看那些端口正在使用的命令是什么?
linux下查看那些端口正在使用的命令是什么?
09-01-14 &
netstat -an
请登录后再发表评论!
请登录后再发表评论!
LINUX网络性能之管理工具三剑客 本文是介绍管理Linux系统网络性能技巧的文章,主要介绍了route、netstat、tcpdump三种网络管理测试工具的使用方法及其可实现的功能。 route 在配置网络时,要为机器指定接收数据包时该包要经过的路径。在Linux系统中,提供一个命令route,这个命令可以为ifconfig命令配置的网卡设置静态路由。这种设置工作通常在/etc/rc.d/rc.inet1中引入,在系统引导时进行。 我们通过几个例子来说明如何使用route命令: route add -net 127.0.0.0 这个命令将向路由表中添加一个指定地址或者网络的路由。注意此时网络为A类地址,掩码被设置为255.0.0.0,这个新添加的条目被连接到lo设备上。 route add -net xxx.xxx.xxx.xxx netmask 255.255.255.0 dev eth0 这个命令为IP地址为xxx.xxx.xxx.xxx的主机增加一个路由,它的网络掩码被设置为255.255.255.0。 route del -net xxx.xxx.xxx.xxx 此命令将删除xxx.xxx.xxx.xxx这个网络的路由。 使用route命令还可以很方便地对整个网络的路由信息进行管理,其输出结果是网络的路由表。如下所示: ----------------------------------------------------------------- [root@lee /root]#route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.10.8.224 * 255.255.255.255 UH 0 0 0 eth0 10.10.8.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default
0.0.0.0 UG 0 0 0 eth0 default
0.0.0.0 UG 1 0 0 eth0 [root@lee /root]# ----------------------------------------------------------------- 输出结果中各个字段的含义是: ·Destination表示路由的目标IP地址。 ·Gateway表示网关使用的主机名或者是IP地址。上面输出的&*&表示没有网关。 ·Genmask表示路由的网络掩码。在把它与路由的目标地址进行比较之前,内核通过Genmask和数据包的IP地址进行按位&与&操作来设置路由。 ·Flags是表示路由的标志。可用的标志及其意义是:U表示路由在启动,H表示target是一台主机,G表示使用网关,R表示对动态路由进行复位设置;D表示动态安装路由,M表示修改路由,!表示拒绝路由。 ·Metric表示路由的单位开销量。 ·Ref表示依赖本路由现状的其它路由数目。 ·Use表示路由表条目被使用的数目。 ·Iface表示路由所发送的包的目的网络。 通过查看这些输出信息,我们就可以方便地管理网络的路由表了。 netstat netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。在计算机上执行netstat后,其输出结果如下所示: ----------------------------------------------------------------- [root@lee /root]#netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Types State I-Node Path Unix 5 [ ] DGRAM 460 /dev/log Unix 0 [ ] STREAM CONNECTED 173 @ Unix 0 [ ] DGRAM 662 Unix 0 [ ] DGRAM 631 Unix 0 [ ] DGRAM 544 Unix 0 [ ] DGRAM 484 Unix 0 [ ] DGRAM 470 [root@lee /root]# ----------------------------------------------------------------- 从整体上看,netstat的输出结果可以分为两个部分:第一部分:是Active Internet connections,称为有源TCP连接,在上面的输出结果中,这一部分没有内容,表示暂时还没有TCP连接。第二部分:是Active UNIX domain sockets,称为有源Unix域套接口。输出结果显示的是Unix域套接口的连接情况: ·Proto显示连接使用的协议。 ·RefCnt表示连接到本套接口上的进程号。 ·Types显示套接口的类型。 ·State显示套接口当前的状态。 ·Path表示连接到套接口的其它进程使用的路径名。 可以用netstat -a来查看所有套接字的状态,这在您调试网络程序的时候是非常有用的。netstat -r将显示路由表的内容,一般还要同时指定&-n&选项,这样可以得到数字格式的地址,也可显示默认路由器的IP地址。使用netstat -i则将显示所有的网络接口信息。使用netstat还可以获得当前的网络状态以及网络的拓扑结构,这在实际中是非常有用的。 tcpdump tcpdump命令用于监视TCP/IP连接并直接读取数据链路层的数据包头。您可以指定哪些数据包被监视、哪些控制要显示格式。例如我们要监视所有Ethernet上来往的通信,执行下述命令: tcpdump -i eth0 即使是在一个相对平静的网络上,也有很多的通信,所以我们可能只需要得到我们感兴趣的那些数据包的信息。在一般情况下,TCP/IP栈只为本地主机接收入站的数据包绑定同时忽略网络上的其它计算机编址(除非您使用的是一台路由器)。当运行tcpdump命令时,它会将TCP/IP栈设置为promiscuous模式。该模式可接收所有的数据包并使其有效显示。如果我们关心的只是我们本地主机的通信情况,一种方法是使用“-p”参数禁止promiscuous模式,还有一种方法就是指定主机名: tcpdump -i eth0 host hostname 此时,系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据: tcpdump -i eth0 src host hostname 下面的命令可以监视所有送到主机hostname的数据包: tcpdump -i eth0 dst host hostname 我们还可以监视通过指定网关的数据包: tcpdump -i eth0 gateway Gatewayname 如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令: tcpdump -i eth0 host hostname and port 80 该命令将显示从每个数据包传出的头和来自主机hostname对端口80的编址。端口80是系统默认的HTTP服务端口号。如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。参考资料:
请登录后再发表评论!

我要回帖

更多关于 linux常用命令手册 的文章

 

随机推荐