2023年8月3日发(作者:)

部署常用Linux命令

一、常用命令

1、 cd切换目录,如:cd /:切换到根目录,cd /usr/VI3.0:切换到/usr/VI3.0目录下,cd ..返回上一级目录,如当前目录是/usr/VI3.0,cd ..后就到了/usr目录下,suse linux下可以直接使用..来返回上一级目录,…返回前两级目录。

2、 ls,ll都可以查看当前目录下的文件,ll详细列出了目录下文件的信息。

3、 mkdir file创建文件夹

4、 unzip 文件名:解压ZIP包,对zip文件进行解压,如:unzip ;

5、 cp –r /usr/data /usr/VI3.0/:拷贝目录下的所有文件到另一个目录下;

6、 rm:删除 rm –R log/ 删除log文件夹下所有信息,rm –rf log/ tmp/ work/ 同时删除多个文件夹下的信息;

7、 find –name ‘sed’ | xargs rm –rf {}

8、 chown:改变文件的拥有者,如:chown ftpuser:ftp 将文件的所有者改为ftpuser用户;

9、 chmod:给文件加权限(r:读取权限,数字代号为“4”,w:写入权限,数字代号“2”,x:执行或切换权限,数字代号为“1”,-:不具有任何权限,数字代号为“0”),chmod abc file(其中a、b、c各为数字,分别表示User、Group、及Other的权限),如:chmod 777 file 就是给file文件添加了所有用户的权限,任何用户都能操作file文件,其实这样是不安全的,chmod 775 file就行了;

10、 vi、cat、tail都有查看文件的功能,如果需要查看并修改文件使用vi file,为避免误操作查看文件使用cat file,动态查看文件,文件内容有更新时使用tail –f file;

11、 ps –ef|grep java :查看Java进程;

12、 top :查看服务器运行状态;

13、 df –h :查看服务器硬盘使用情况;

14、 rabbitmqctl list_queues –p / :查看安装的信息队列信息。

15、 rsync –delete-before –d /home/tmep /data/VoiceFiles/G/1/0/20130221用/home/tmep下文件替换/data/VoiceFiles/G/1/0/20130221下文件,/home/tmep下是空目录,即删除/data/VoiceFiles/G/1/0/20130221下文件。速度较快。

16、 使用crontab –e打开定时任务管理输入下列内容定时删除文件

05 01 * * * /usr/bin/find /usr/VI3.0/VIEngineInvoker/outputs/ -type d -mtime +1 |xargs

rm -rf;查找/usr/bin/find /usr/VI3.0/VIEngineInvoker/outputs/下一天前的文件并进行删除,该方法不能删除文件夹。

17、 解压:tar –zxvf tar -2

18、 02 00 * * * cd /home/ftpuser/&& mv dianhuaxinxi_2013*.ctl dianhuaxinxi_`date -d

last-day "+%Y%m%d"`;切换到/home/ftpuser/目录下将dianhuaxinxi_2013*.ctl文件名称替换为前一天的23时59分0秒

19、 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq –c

8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz

(看到有8个逻辑CPU, 也知道了CPU型号)

20、 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等级

21、 查看进程:ps –ef | grep 进程名

22、 立即终止进程:kill -9 进程ID

23、 杀死全部进程:killall -9 进程名

24、 查看全部服务具体信息:server –status –a 或 ps –avx

25、 查看CPU、内存等信息:top

26、 查看环境变量:export | grep LD 27、 停止LINUX系统桌面服务:pkill gdm 或 init 3

28、 查看显卡驱动:nvidia-smi

29、 卸载Nadia显卡驱动程序:nvdia-uninstall

30、 普通安装rpm包:rpm –ivh 软件包名 强制安装: rpm –uvh 软件包名

31、 强制安装rpm包:# rpm -ivh --force 名称.rpm

# rpm -ivh --force(这里必须是两个-,不是一个) --nodeps 名称.rpm

当RPM安装好后,因为某些原因损坏了,或者在删除某些软件时候因为依赖性的关系,

被删除了一部分,在使用的时候或者安装其他软件的时候,

提示依赖性不能被解决。那么就需要重新安装,

但是安装的时候提示你已经安装过了。

这个时候就需要重新安装,或者强制安装。

32、 关闭防火墙:iptables -f

33、 查看系统信息:lsb_release –a

34、 查看文件夹大小:du –sh 文件夹名

35、 查看系统是否是64位的:umane –a

36、 查看磁盘空间:df –hl

37、 拷贝文件夹命令:cp –rvh 目录文件夹 目标文件夹

38、 Windows和linux系统拷贝文件:pscp 命令

将putty文件下的放到C:WINDOWSsystem32下面,这样就可以在任何地方调用了

案例:windows系统的e:

a. 把windows系统下的文件上传到linux系统中。

打开cmd, 输入pscp -r

e:

root@192.168.77.90:/home/dev

b. 从linux系统中下载文件到windows系统中

打开cmd, 输入 pscp -r root@192.168.77.90:/home/dev/ e:

39、 Linux系统下查看线程工作:用命令pstack 进程名 就可以看到该进程内的各个线程都在 作什么

40、 Linux底下搜索一个文件夹下有多少数据量:find /dir/ -name “*.V3” | wc –l 其中/dir/是路径

41、 更改linux系统时间:date –s 日/月/年 如:date –s 02/11/2012

date –s 时间 如:date –s 11:00

42、

du -a

我们目样使用 -h 参数来显示 human-readable 的格式。在应用时,我们可以使用 du 这个指令来查看哪个目录占用最多的空间。

du -sh /etc

不过,du 的输出结果通常很长,我们可以加上 -s 参数来省略指定目录下的子目录,而只显示该目录的总合即可:

du /etc | sort -nr | more

在查看目录的使用情形时,我们可以将输出结果导到 sort 指令进行排序,以了解哪个档案用了最多的空间

二、网络配置相关命令

1、 关闭(激活)网卡:ifconfig eth0 down(up)

2、 查看网关:route

3、 添加(删除)默认网关:route add(del) default gw 网关IP

4、 查看网络配置信息目录:/etc/sysconfig/network

三、文件共享相关命令

1、 nfs共享:实现LINUX之间的文件共享

NFS共享服务分为客户机和服务端,服务端的共享文件所在机器,客户机即将要将共享文件挂载过来的机器

a、 服务端配置:打开NFS客户机配置->选择“添加”->在服务器输入框中输入NFS服务机的IP地址,远程目录下拉框中自动出现共享目录->指定挂载点输入框中,选择挂载目录、即可

b、 接上,设置权限:chmod -R 777 共享文件路径

c、 NFS服务端下:在etc/exports 中写入:共享路径 NFS客户机的IP() *(ro)

如:/usr/CTIdate 192.168.77.91(rw,sync) *(ro)

d、 客户机配置:打开终端窗口,输入命令:mount -t nfs //192.168.77.89 :/共享目录 /挂载点

2、 smb共享:同时实现LINUX之间和LINUX、Windows之间的共享

SMB共享有两种模式,分别是匿名用户模式和身份验证模式

a、匿名用户模式 1、安装vsftp包,在图形界面将目录设置为匿名用户即可

2、不用安装任何包,直接用LINUX系统自带的puer包。在图形界面将目录设置为匿名用户即可

b、身份验证模式

1、安装vsftp包,运行vsftp服务(service vsftp start 或 /etc/init.d/vsftpd start)

2、图形界面选择“身份验证”模式

3、为FTP建立用户和登录目录

useradd -G ftp -d /目录名 -M 用户名

passwd 用户

chown 用户名.ftp /目录名 -R

chmod 750 /目录名 -R

c、用root用户登录服务器后。

查看smb服务有无启动:chkconfig

若smb服务的状态为off的话。执行命令开启服务:service smb start

执行命令实现共享:smbpasswd –a

3、 sftp共享:实现LINUX之间的文件共享

sftp 192.168.77.89 远程连接该服务器,进入该服务器

sftp>put AA 上传AA

get BB 下载BB

注意:若是文件夹,必须压缩后进行操作

四、LINUX存储设备格式化、挂载:

1、 硬盘挂载:

目前硬盘基本上都是ntfs格式的,但是suse linux是不支持ntfs;

需要安装一个包(装ntfs-3g_),让系统支持ntfs格式的;

一、解压:tar zxvf ntfs-3g_

二、进入文件夹:./configure 然后make 最后make install

三、安装完成后,查看磁盘,直接挂载,即可支持ntfs格式

–l ,查看设备名称

-t ntfs-3g /dev/hda1 /mnt/winc (/dev/hda1为移动硬盘的路径)

2、磁盘阵列挂载:

磁盘整列基本上都是GDP格式,suse linux也不支持 GDP格式的;

需要把磁盘阵列格式化成linux支持的格式再挂载;

一、fdisk –l ,查看设备名称

二、格式化:3 /dev/sdb (格式化成ext3格式,/dev/sdb为设备的路径)

三、挂载:mount /dev/sdb /data

四、查看是否挂载成功:df /data

3、 永久挂载:

每次系统重启后,磁盘都是要重新挂载。为了避免手动挂载,所以得设置系统自动挂载。在/etc目录下有个fstab文件,它里面列出了Linux开机时自动挂载的文件系统的列表

一、编辑/etc/fstab文件:vi /etc/fstab

二、在底部添加:

/dev/sda /data ext3 defaults 0 0

(参数说明:/dev/sda : 为设备的路径,data:挂载点,ext3:设备格式)

五、LINUX下 vnc使用

我们在使用suse linux 下vnc时,通常是在界面上配置的;经常会出现连接不进去,黑屏的情况,有时候进机房会很麻烦;通过命令配置vnc就不会出现这些问题。

1、 初始化VNC服务:

一、 输入命令:vncserver

二、 如果是第一次启动的话,需要输入密码;这个密码就是以后连接vnc需要输入;

2、 修改vnc启动方式:

一、输入命令:vi /root/.root/.vnc/xstartup

二、修改界面启动:最后一行改为 gnome-session

3、 开启vnc服务端口号,监听连接:

一、直接输入vncserver命令,系统就会开启一个端口号

二、查看开通的是哪个端口号:执行vncserver命令后,命令窗口会显示启动日志的路径;日志里面有开通的vnc端口号(14/11/2012 11:18:50 Listening for VNC

connections on TCP port 5902);

4、 关闭vnc服务端口号:vncserver -kill :5901(:5901是端口号)

5、 如果你以前开通的vnc端口,连接出现问题了,可以重新开启一个端口号。

六、Linux下如何查看系统启动时间和运行时间

命令

输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00

2.查看/proc/uptime文件计算系统启动时间

cat /proc/uptime

输出: 5113396.94 575949.85

第一数字即是系统已运行的时间5113396.94 秒,运用系统工具date即可算出系统启动时间

代码: 全选 date -d "$(awk -F. '{print $1}' /proc/uptime) second ago"

+"%Y-%m-%d %H:%M:%S"

输出: 2008-11-09 11:50:31

3.查看/proc/uptime文件计算系统运行时间

代码: 全选

cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 %

86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'

输出:系统已运行:59天4时13分9秒

七、时间同步

一、时区设置

使用utc还是local time.

UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)

Local time 是你手表上的时间

linux可以处理UTC时间和蹩脚的Windows所使用的local time

如果机器上同时安装有Linux和Windows,建议使用local time

如果机器上只安装有Linux,建议使用utc

确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT)

1)/etc/sysconfig/clock查看当前时区

HWCLOCK="-u" #与下面设置的时区对应

下面2项不用改#jvm/Nginx等程序取的时间才与date命令时间一致

TIMEZONE="America/New_York"

DEFAULT_TIMEZONE="US/Eastern"

2)使用tzselect设置时区(========好像对时间同步没有用)

#/usr/bin/tzselect

逐步选择就ok

3)复制相应的时区文件,替换系统默认时区

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

或者 cp /usr/share/zoneinfo/Asia/Beijing /etc/localtime(====这个不能同步时间,不知原因)

4)java时区:java_opts增加 -ne=GMT+8 二、时间同步

内网时间服务器:172.22.14.11

1)服务器端配置/etc/

restrict 127.0.0.1

restrict 172.22.12.0 mask 255.255.255.0 #有几种都配置上

restrict 172.22.13.0 mask 255.255.255.0

restrict 172.22.14.0 mask 255.255.255.0

restrict 172.22.15.0 mask 255.255.255.0

server 218.75.4.130 #218.75.4.130是时钟服务器

2)服务器端ntp服务启动 (xntp / ntp)

# /etc/init.d/ntp start

3)客户端只做定时同步

#crontab -e

0 0 * * * /usr/sbin/sntp -P no -r 10.233.45.218 //分 时 月 周 //每天0点同步

#service cron restart

* * * * * 分 时 日 月 周

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

5、启动定时服务: service crond start或者/etc/init.d/crontab start

八、配置用户等效性

使用Oracle用户,配置Oracle用户等效性,在所有节点执行;

[oracle@rac1 ~]$ ssh-keygen -t rsa

[oracle@rac1 ~]$ ssh-keygen -t dsa

使用Oracle用户,配置Oracle用户等效性,在节点1执行

[oracle@rac1 ~]$ cat /home/oracle/.ssh/*.pub

/home/oracle/.ssh/authorized_keys

>>

[oracle@rac1 ~]$ ssh rac2 cat /home/oracle/.ssh/*.pub >>

/home/oracle/.ssh/authorized_keys

[oracle@rac1 ~]$ scp /home/oracle/.ssh/authorized_keys

rac2:/home/oracle/.ssh/authorized_keys 验证oracle用户等效性,在所有节点执行;

[oracle@rac1 ~]$ ssh rac2 date

[oracle@rac2 ~]$ ssh rac1 date

使用Grid用户,配置Grid用户等效性,在所有节点执行;

[grid@rac1 ~]$ ssh-keygen -t rsa

[grid@rac1 ~]$ ssh-keygen -t dsa

配置Grid用户等效性,在节点1执行;

[grid@rac1 ~]$ cat

/home/grid/.ssh/authorized_keys

/home/grid/.ssh/*.pub >>

[grid@rac1 ~]$ ssh rac2 cat /home/grid/.ssh/*.pub >>

/home/grid/.ssh/authorized_keys

[grid@rac1 ~]$ scp /home/grid/.ssh/authorized_keys

rac2:/home/grid/.ssh/authorized_keys

验证Grid用户等效性,在所有节点执行;

[grid@rac1 ~]$ ssh rac2 date

[grid@rac2 ~]$ ssh rac1 date

九、查看网络端口号netstat

1. 列出所有端口 (包括监听和未监听的)

列出所有端口 netstat -a

# netstat -a | more

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:30037 *:* LISTEN

udp 0 0 *:bootpc *:*

Active UNIX domain sockets (servers and established)

Proto RefCnt Flags Type State I-Node Path

unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0

unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/

列出所有 tcp 端口 netstat -at

# netstat -at

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:30037 *:* LISTEN

tcp 0 0 localhost:ipp *:* LISTEN

tcp 0 0 *:smtp *:* LISTEN

tcp6 0 0 localhost:ipp [::]:* LISTEN

列出所有 udp 端口 netstat -au

# netstat -au

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

udp 0 0 *:bootpc *:*

udp 0 0 *:49119 *:*

udp 0 0 *:mdns *:*

2. 列出所有处于监听状态的 Sockets

只显示监听端口 netstat -l

# netstat -l

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:ipp *:* LISTEN

tcp6 0 0 localhost:ipp [::]:* LISTEN

udp 0 0 *:49119 *:*

只列出所有监听 tcp 端口 netstat -lt

# netstat -lt

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:30037 *:* LISTEN

tcp 0 0 *:smtp *:* LISTEN

tcp6 0 0 localhost:ipp [::]:* LISTEN

只列出所有监听 udp 端口 netstat -lu

# netstat -lu

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

udp 0 0 *:49119 *:*

udp 0 0 *:mdns *:* 只列出所有监听 UNIX 端口 netstat -lx

# netstat -lx

Active UNIX domain sockets (only servers)

Proto RefCnt Flags Type State I-Node Path

unix 2 [ ACC ] STREAM LISTENING 6294 private/maildrop

unix 2 [ ACC ] STREAM LISTENING 6203 public/cleanup

unix 2 [ ACC ] STREAM LISTENING 6302 private/ifmail

unix 2 [ ACC ] STREAM LISTENING 6306 private/bsmtp

3. 显示每个协议的统计信息

显示所有端口的统计信息 netstat -s

# netstat -s

Ip:

11150 total packets received

1 with invalid addresses

0 forwarded

0 incoming packets discarded

11149 incoming packets delivered

11635 requests sent out

Icmp:

0 ICMP messages received

0 input ICMP message failed.

Tcp:

582 active connections openings

2 failed connection attempts

25 connection resets received

Udp:

1183 packets received

4 packets to unknown port received.

.....

显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su

# netstat -st

# netstat -su 4. 在 netstat 输出中显示 PID 和进程名称 netstat -p

netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。

# netstat -pt

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

PID/Program name

tcp 1 0 :47212 192.168.185.75:www CLOSE_WAIT

2109/firefox

tcp 0 0 :52750 lax:www ESTABLISHED 2109/firefox

5. 在 netstat 输出中不显示主机,端口和用户名 (host, port

or user)

当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

同样可以加速输出,因为不用进行比对查询。

# netstat -an

如果只是不想让这三个名称中的一个被显示,使用以下命令

# netsat -a --numeric-ports

# netsat -a --numeric-hosts

# netsat -a --numeric-users

6. 持续输出 netstat 信息

netstat 将每隔一秒输出网络信息。

# netstat -c

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 :36130 :www ESTABLISHED

tcp 1 1 :52564 101.11.169.230:www CLOSING

tcp 0 0 :43758 server-101-101-43-2:www ESTABLISHED

tcp 1 1 :42367 101.101.34.101:www CLOSING

^C

7. 显示系统不支持的地址族 (Address Families)

netstat --verbose

在输出的末尾,会有如下的信息

netstat: no support for `AF IPX' on this system.

netstat: no support for `AF AX25' on this system.

netstat: no support for `AF X25' on this system.

netstat: no support for `AF NETROM' on this system.

8. 显示核心路由信息 netstat -r

# netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

192.168.1.0 * 255.255.255.0 U 0 0 0 eth2

link-local * 255.255.0.0 U 0 0 0 eth2

default 192.168.1.1 0.0.0.0 UG 0 0 0 eth2

注意: 使用 netstat -rn 显示数字格式,不查询主机名称。

9. 找出程序运行的端口

并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

# netstat -ap | grep ssh

tcp 1 0 dev-db:ssh 101.174.100.22:39213 CLOSE_WAIT -

tcp 1 0 dev-db:ssh 101.174.100.22:57643 CLOSE_WAIT -

找出运行在指定端口的进程

# netstat -an | grep ':80'

10. 显示网络接口列表

# netstat -i

Kernel Interface table

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

eth0 1500 0 0 0 0 0 0 0 0 0 BMU

eth2 1500 0 26196 0 0 0 26883 6 0 0 BMRU

lo 16436 0 4 0 0 0 4 0 0 0 LRU

显示详细信息,像是 ifconfig 使用 netstat -ie:

# netstat -ie

Kernel Interface table

eth0 Link encap:Ethernet HWaddr 00:10:40:11:11:11

UP BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Memory:f6ae0000-f6b00000

11. IP和TCP分析

查看连接某服务端口最多的的IP地址

wss8848@ubuntu:~$ netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk

-F: '{print $1}'|sort|uniq -c|sort -nr|head -20

18 221.136.168.36

3 154.74.45.242

2 78.173.31.236

2 62.183.207.98

2 192.168.1.14

2 182.48.111.215

2 124.193.219.34

2 119.145.41.2

2 114.255.41.30

1 75.102.11.99

TCP各种状态列表

wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'

established)

Foreign

LISTEN

TIME_WAIT

ESTABLISHED

TIME_WAIT

SYN_SENT

先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。

wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c

143 ESTABLISHED

1 FIN_WAIT1

1 Foreign

1 LAST_ACK

36 LISTEN

6 SYN_SENT

113 TIME_WAIT

1 established)

最后的命令如下:

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

分析获得访问前10位的ip地址

awk '{print $1}' |sort|uniq -c|sort -nr|head -10

2023年8月3日发(作者:)

部署常用Linux命令

一、常用命令

1、 cd切换目录,如:cd /:切换到根目录,cd /usr/VI3.0:切换到/usr/VI3.0目录下,cd ..返回上一级目录,如当前目录是/usr/VI3.0,cd ..后就到了/usr目录下,suse linux下可以直接使用..来返回上一级目录,…返回前两级目录。

2、 ls,ll都可以查看当前目录下的文件,ll详细列出了目录下文件的信息。

3、 mkdir file创建文件夹

4、 unzip 文件名:解压ZIP包,对zip文件进行解压,如:unzip ;

5、 cp –r /usr/data /usr/VI3.0/:拷贝目录下的所有文件到另一个目录下;

6、 rm:删除 rm –R log/ 删除log文件夹下所有信息,rm –rf log/ tmp/ work/ 同时删除多个文件夹下的信息;

7、 find –name ‘sed’ | xargs rm –rf {}

8、 chown:改变文件的拥有者,如:chown ftpuser:ftp 将文件的所有者改为ftpuser用户;

9、 chmod:给文件加权限(r:读取权限,数字代号为“4”,w:写入权限,数字代号“2”,x:执行或切换权限,数字代号为“1”,-:不具有任何权限,数字代号为“0”),chmod abc file(其中a、b、c各为数字,分别表示User、Group、及Other的权限),如:chmod 777 file 就是给file文件添加了所有用户的权限,任何用户都能操作file文件,其实这样是不安全的,chmod 775 file就行了;

10、 vi、cat、tail都有查看文件的功能,如果需要查看并修改文件使用vi file,为避免误操作查看文件使用cat file,动态查看文件,文件内容有更新时使用tail –f file;

11、 ps –ef|grep java :查看Java进程;

12、 top :查看服务器运行状态;

13、 df –h :查看服务器硬盘使用情况;

14、 rabbitmqctl list_queues –p / :查看安装的信息队列信息。

15、 rsync –delete-before –d /home/tmep /data/VoiceFiles/G/1/0/20130221用/home/tmep下文件替换/data/VoiceFiles/G/1/0/20130221下文件,/home/tmep下是空目录,即删除/data/VoiceFiles/G/1/0/20130221下文件。速度较快。

16、 使用crontab –e打开定时任务管理输入下列内容定时删除文件

05 01 * * * /usr/bin/find /usr/VI3.0/VIEngineInvoker/outputs/ -type d -mtime +1 |xargs

rm -rf;查找/usr/bin/find /usr/VI3.0/VIEngineInvoker/outputs/下一天前的文件并进行删除,该方法不能删除文件夹。

17、 解压:tar –zxvf tar -2

18、 02 00 * * * cd /home/ftpuser/&& mv dianhuaxinxi_2013*.ctl dianhuaxinxi_`date -d

last-day "+%Y%m%d"`;切换到/home/ftpuser/目录下将dianhuaxinxi_2013*.ctl文件名称替换为前一天的23时59分0秒

19、 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq –c

8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz

(看到有8个逻辑CPU, 也知道了CPU型号)

20、 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等级

21、 查看进程:ps –ef | grep 进程名

22、 立即终止进程:kill -9 进程ID

23、 杀死全部进程:killall -9 进程名

24、 查看全部服务具体信息:server –status –a 或 ps –avx

25、 查看CPU、内存等信息:top

26、 查看环境变量:export | grep LD 27、 停止LINUX系统桌面服务:pkill gdm 或 init 3

28、 查看显卡驱动:nvidia-smi

29、 卸载Nadia显卡驱动程序:nvdia-uninstall

30、 普通安装rpm包:rpm –ivh 软件包名 强制安装: rpm –uvh 软件包名

31、 强制安装rpm包:# rpm -ivh --force 名称.rpm

# rpm -ivh --force(这里必须是两个-,不是一个) --nodeps 名称.rpm

当RPM安装好后,因为某些原因损坏了,或者在删除某些软件时候因为依赖性的关系,

被删除了一部分,在使用的时候或者安装其他软件的时候,

提示依赖性不能被解决。那么就需要重新安装,

但是安装的时候提示你已经安装过了。

这个时候就需要重新安装,或者强制安装。

32、 关闭防火墙:iptables -f

33、 查看系统信息:lsb_release –a

34、 查看文件夹大小:du –sh 文件夹名

35、 查看系统是否是64位的:umane –a

36、 查看磁盘空间:df –hl

37、 拷贝文件夹命令:cp –rvh 目录文件夹 目标文件夹

38、 Windows和linux系统拷贝文件:pscp 命令

将putty文件下的放到C:WINDOWSsystem32下面,这样就可以在任何地方调用了

案例:windows系统的e:

a. 把windows系统下的文件上传到linux系统中。

打开cmd, 输入pscp -r

e:

root@192.168.77.90:/home/dev

b. 从linux系统中下载文件到windows系统中

打开cmd, 输入 pscp -r root@192.168.77.90:/home/dev/ e:

39、 Linux系统下查看线程工作:用命令pstack 进程名 就可以看到该进程内的各个线程都在 作什么

40、 Linux底下搜索一个文件夹下有多少数据量:find /dir/ -name “*.V3” | wc –l 其中/dir/是路径

41、 更改linux系统时间:date –s 日/月/年 如:date –s 02/11/2012

date –s 时间 如:date –s 11:00

42、

du -a

我们目样使用 -h 参数来显示 human-readable 的格式。在应用时,我们可以使用 du 这个指令来查看哪个目录占用最多的空间。

du -sh /etc

不过,du 的输出结果通常很长,我们可以加上 -s 参数来省略指定目录下的子目录,而只显示该目录的总合即可:

du /etc | sort -nr | more

在查看目录的使用情形时,我们可以将输出结果导到 sort 指令进行排序,以了解哪个档案用了最多的空间

二、网络配置相关命令

1、 关闭(激活)网卡:ifconfig eth0 down(up)

2、 查看网关:route

3、 添加(删除)默认网关:route add(del) default gw 网关IP

4、 查看网络配置信息目录:/etc/sysconfig/network

三、文件共享相关命令

1、 nfs共享:实现LINUX之间的文件共享

NFS共享服务分为客户机和服务端,服务端的共享文件所在机器,客户机即将要将共享文件挂载过来的机器

a、 服务端配置:打开NFS客户机配置->选择“添加”->在服务器输入框中输入NFS服务机的IP地址,远程目录下拉框中自动出现共享目录->指定挂载点输入框中,选择挂载目录、即可

b、 接上,设置权限:chmod -R 777 共享文件路径

c、 NFS服务端下:在etc/exports 中写入:共享路径 NFS客户机的IP() *(ro)

如:/usr/CTIdate 192.168.77.91(rw,sync) *(ro)

d、 客户机配置:打开终端窗口,输入命令:mount -t nfs //192.168.77.89 :/共享目录 /挂载点

2、 smb共享:同时实现LINUX之间和LINUX、Windows之间的共享

SMB共享有两种模式,分别是匿名用户模式和身份验证模式

a、匿名用户模式 1、安装vsftp包,在图形界面将目录设置为匿名用户即可

2、不用安装任何包,直接用LINUX系统自带的puer包。在图形界面将目录设置为匿名用户即可

b、身份验证模式

1、安装vsftp包,运行vsftp服务(service vsftp start 或 /etc/init.d/vsftpd start)

2、图形界面选择“身份验证”模式

3、为FTP建立用户和登录目录

useradd -G ftp -d /目录名 -M 用户名

passwd 用户

chown 用户名.ftp /目录名 -R

chmod 750 /目录名 -R

c、用root用户登录服务器后。

查看smb服务有无启动:chkconfig

若smb服务的状态为off的话。执行命令开启服务:service smb start

执行命令实现共享:smbpasswd –a

3、 sftp共享:实现LINUX之间的文件共享

sftp 192.168.77.89 远程连接该服务器,进入该服务器

sftp>put AA 上传AA

get BB 下载BB

注意:若是文件夹,必须压缩后进行操作

四、LINUX存储设备格式化、挂载:

1、 硬盘挂载:

目前硬盘基本上都是ntfs格式的,但是suse linux是不支持ntfs;

需要安装一个包(装ntfs-3g_),让系统支持ntfs格式的;

一、解压:tar zxvf ntfs-3g_

二、进入文件夹:./configure 然后make 最后make install

三、安装完成后,查看磁盘,直接挂载,即可支持ntfs格式

–l ,查看设备名称

-t ntfs-3g /dev/hda1 /mnt/winc (/dev/hda1为移动硬盘的路径)

2、磁盘阵列挂载:

磁盘整列基本上都是GDP格式,suse linux也不支持 GDP格式的;

需要把磁盘阵列格式化成linux支持的格式再挂载;

一、fdisk –l ,查看设备名称

二、格式化:3 /dev/sdb (格式化成ext3格式,/dev/sdb为设备的路径)

三、挂载:mount /dev/sdb /data

四、查看是否挂载成功:df /data

3、 永久挂载:

每次系统重启后,磁盘都是要重新挂载。为了避免手动挂载,所以得设置系统自动挂载。在/etc目录下有个fstab文件,它里面列出了Linux开机时自动挂载的文件系统的列表

一、编辑/etc/fstab文件:vi /etc/fstab

二、在底部添加:

/dev/sda /data ext3 defaults 0 0

(参数说明:/dev/sda : 为设备的路径,data:挂载点,ext3:设备格式)

五、LINUX下 vnc使用

我们在使用suse linux 下vnc时,通常是在界面上配置的;经常会出现连接不进去,黑屏的情况,有时候进机房会很麻烦;通过命令配置vnc就不会出现这些问题。

1、 初始化VNC服务:

一、 输入命令:vncserver

二、 如果是第一次启动的话,需要输入密码;这个密码就是以后连接vnc需要输入;

2、 修改vnc启动方式:

一、输入命令:vi /root/.root/.vnc/xstartup

二、修改界面启动:最后一行改为 gnome-session

3、 开启vnc服务端口号,监听连接:

一、直接输入vncserver命令,系统就会开启一个端口号

二、查看开通的是哪个端口号:执行vncserver命令后,命令窗口会显示启动日志的路径;日志里面有开通的vnc端口号(14/11/2012 11:18:50 Listening for VNC

connections on TCP port 5902);

4、 关闭vnc服务端口号:vncserver -kill :5901(:5901是端口号)

5、 如果你以前开通的vnc端口,连接出现问题了,可以重新开启一个端口号。

六、Linux下如何查看系统启动时间和运行时间

命令

输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00

2.查看/proc/uptime文件计算系统启动时间

cat /proc/uptime

输出: 5113396.94 575949.85

第一数字即是系统已运行的时间5113396.94 秒,运用系统工具date即可算出系统启动时间

代码: 全选 date -d "$(awk -F. '{print $1}' /proc/uptime) second ago"

+"%Y-%m-%d %H:%M:%S"

输出: 2008-11-09 11:50:31

3.查看/proc/uptime文件计算系统运行时间

代码: 全选

cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 %

86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'

输出:系统已运行:59天4时13分9秒

七、时间同步

一、时区设置

使用utc还是local time.

UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)

Local time 是你手表上的时间

linux可以处理UTC时间和蹩脚的Windows所使用的local time

如果机器上同时安装有Linux和Windows,建议使用local time

如果机器上只安装有Linux,建议使用utc

确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT)

1)/etc/sysconfig/clock查看当前时区

HWCLOCK="-u" #与下面设置的时区对应

下面2项不用改#jvm/Nginx等程序取的时间才与date命令时间一致

TIMEZONE="America/New_York"

DEFAULT_TIMEZONE="US/Eastern"

2)使用tzselect设置时区(========好像对时间同步没有用)

#/usr/bin/tzselect

逐步选择就ok

3)复制相应的时区文件,替换系统默认时区

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

或者 cp /usr/share/zoneinfo/Asia/Beijing /etc/localtime(====这个不能同步时间,不知原因)

4)java时区:java_opts增加 -ne=GMT+8 二、时间同步

内网时间服务器:172.22.14.11

1)服务器端配置/etc/

restrict 127.0.0.1

restrict 172.22.12.0 mask 255.255.255.0 #有几种都配置上

restrict 172.22.13.0 mask 255.255.255.0

restrict 172.22.14.0 mask 255.255.255.0

restrict 172.22.15.0 mask 255.255.255.0

server 218.75.4.130 #218.75.4.130是时钟服务器

2)服务器端ntp服务启动 (xntp / ntp)

# /etc/init.d/ntp start

3)客户端只做定时同步

#crontab -e

0 0 * * * /usr/sbin/sntp -P no -r 10.233.45.218 //分 时 月 周 //每天0点同步

#service cron restart

* * * * * 分 时 日 月 周

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

5、启动定时服务: service crond start或者/etc/init.d/crontab start

八、配置用户等效性

使用Oracle用户,配置Oracle用户等效性,在所有节点执行;

[oracle@rac1 ~]$ ssh-keygen -t rsa

[oracle@rac1 ~]$ ssh-keygen -t dsa

使用Oracle用户,配置Oracle用户等效性,在节点1执行

[oracle@rac1 ~]$ cat /home/oracle/.ssh/*.pub

/home/oracle/.ssh/authorized_keys

>>

[oracle@rac1 ~]$ ssh rac2 cat /home/oracle/.ssh/*.pub >>

/home/oracle/.ssh/authorized_keys

[oracle@rac1 ~]$ scp /home/oracle/.ssh/authorized_keys

rac2:/home/oracle/.ssh/authorized_keys 验证oracle用户等效性,在所有节点执行;

[oracle@rac1 ~]$ ssh rac2 date

[oracle@rac2 ~]$ ssh rac1 date

使用Grid用户,配置Grid用户等效性,在所有节点执行;

[grid@rac1 ~]$ ssh-keygen -t rsa

[grid@rac1 ~]$ ssh-keygen -t dsa

配置Grid用户等效性,在节点1执行;

[grid@rac1 ~]$ cat

/home/grid/.ssh/authorized_keys

/home/grid/.ssh/*.pub >>

[grid@rac1 ~]$ ssh rac2 cat /home/grid/.ssh/*.pub >>

/home/grid/.ssh/authorized_keys

[grid@rac1 ~]$ scp /home/grid/.ssh/authorized_keys

rac2:/home/grid/.ssh/authorized_keys

验证Grid用户等效性,在所有节点执行;

[grid@rac1 ~]$ ssh rac2 date

[grid@rac2 ~]$ ssh rac1 date

九、查看网络端口号netstat

1. 列出所有端口 (包括监听和未监听的)

列出所有端口 netstat -a

# netstat -a | more

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:30037 *:* LISTEN

udp 0 0 *:bootpc *:*

Active UNIX domain sockets (servers and established)

Proto RefCnt Flags Type State I-Node Path

unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0

unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/

列出所有 tcp 端口 netstat -at

# netstat -at

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:30037 *:* LISTEN

tcp 0 0 localhost:ipp *:* LISTEN

tcp 0 0 *:smtp *:* LISTEN

tcp6 0 0 localhost:ipp [::]:* LISTEN

列出所有 udp 端口 netstat -au

# netstat -au

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

udp 0 0 *:bootpc *:*

udp 0 0 *:49119 *:*

udp 0 0 *:mdns *:*

2. 列出所有处于监听状态的 Sockets

只显示监听端口 netstat -l

# netstat -l

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:ipp *:* LISTEN

tcp6 0 0 localhost:ipp [::]:* LISTEN

udp 0 0 *:49119 *:*

只列出所有监听 tcp 端口 netstat -lt

# netstat -lt

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:30037 *:* LISTEN

tcp 0 0 *:smtp *:* LISTEN

tcp6 0 0 localhost:ipp [::]:* LISTEN

只列出所有监听 udp 端口 netstat -lu

# netstat -lu

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

udp 0 0 *:49119 *:*

udp 0 0 *:mdns *:* 只列出所有监听 UNIX 端口 netstat -lx

# netstat -lx

Active UNIX domain sockets (only servers)

Proto RefCnt Flags Type State I-Node Path

unix 2 [ ACC ] STREAM LISTENING 6294 private/maildrop

unix 2 [ ACC ] STREAM LISTENING 6203 public/cleanup

unix 2 [ ACC ] STREAM LISTENING 6302 private/ifmail

unix 2 [ ACC ] STREAM LISTENING 6306 private/bsmtp

3. 显示每个协议的统计信息

显示所有端口的统计信息 netstat -s

# netstat -s

Ip:

11150 total packets received

1 with invalid addresses

0 forwarded

0 incoming packets discarded

11149 incoming packets delivered

11635 requests sent out

Icmp:

0 ICMP messages received

0 input ICMP message failed.

Tcp:

582 active connections openings

2 failed connection attempts

25 connection resets received

Udp:

1183 packets received

4 packets to unknown port received.

.....

显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su

# netstat -st

# netstat -su 4. 在 netstat 输出中显示 PID 和进程名称 netstat -p

netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。

# netstat -pt

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

PID/Program name

tcp 1 0 :47212 192.168.185.75:www CLOSE_WAIT

2109/firefox

tcp 0 0 :52750 lax:www ESTABLISHED 2109/firefox

5. 在 netstat 输出中不显示主机,端口和用户名 (host, port

or user)

当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

同样可以加速输出,因为不用进行比对查询。

# netstat -an

如果只是不想让这三个名称中的一个被显示,使用以下命令

# netsat -a --numeric-ports

# netsat -a --numeric-hosts

# netsat -a --numeric-users

6. 持续输出 netstat 信息

netstat 将每隔一秒输出网络信息。

# netstat -c

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 :36130 :www ESTABLISHED

tcp 1 1 :52564 101.11.169.230:www CLOSING

tcp 0 0 :43758 server-101-101-43-2:www ESTABLISHED

tcp 1 1 :42367 101.101.34.101:www CLOSING

^C

7. 显示系统不支持的地址族 (Address Families)

netstat --verbose

在输出的末尾,会有如下的信息

netstat: no support for `AF IPX' on this system.

netstat: no support for `AF AX25' on this system.

netstat: no support for `AF X25' on this system.

netstat: no support for `AF NETROM' on this system.

8. 显示核心路由信息 netstat -r

# netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

192.168.1.0 * 255.255.255.0 U 0 0 0 eth2

link-local * 255.255.0.0 U 0 0 0 eth2

default 192.168.1.1 0.0.0.0 UG 0 0 0 eth2

注意: 使用 netstat -rn 显示数字格式,不查询主机名称。

9. 找出程序运行的端口

并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

# netstat -ap | grep ssh

tcp 1 0 dev-db:ssh 101.174.100.22:39213 CLOSE_WAIT -

tcp 1 0 dev-db:ssh 101.174.100.22:57643 CLOSE_WAIT -

找出运行在指定端口的进程

# netstat -an | grep ':80'

10. 显示网络接口列表

# netstat -i

Kernel Interface table

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

eth0 1500 0 0 0 0 0 0 0 0 0 BMU

eth2 1500 0 26196 0 0 0 26883 6 0 0 BMRU

lo 16436 0 4 0 0 0 4 0 0 0 LRU

显示详细信息,像是 ifconfig 使用 netstat -ie:

# netstat -ie

Kernel Interface table

eth0 Link encap:Ethernet HWaddr 00:10:40:11:11:11

UP BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Memory:f6ae0000-f6b00000

11. IP和TCP分析

查看连接某服务端口最多的的IP地址

wss8848@ubuntu:~$ netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk

-F: '{print $1}'|sort|uniq -c|sort -nr|head -20

18 221.136.168.36

3 154.74.45.242

2 78.173.31.236

2 62.183.207.98

2 192.168.1.14

2 182.48.111.215

2 124.193.219.34

2 119.145.41.2

2 114.255.41.30

1 75.102.11.99

TCP各种状态列表

wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'

established)

Foreign

LISTEN

TIME_WAIT

ESTABLISHED

TIME_WAIT

SYN_SENT

先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。

wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c

143 ESTABLISHED

1 FIN_WAIT1

1 Foreign

1 LAST_ACK

36 LISTEN

6 SYN_SENT

113 TIME_WAIT

1 established)

最后的命令如下:

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

分析获得访问前10位的ip地址

awk '{print $1}' |sort|uniq -c|sort -nr|head -10