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
发布评论