网络操作
1. 查看ip
cat /proc/net/arp:查看内网ip
2. PID&端口
lsof -i:8080:查看端口被那个进程占用
netstat -nltp | grep 8080:查看端口监听情况
netstat -anp|grep 8080:查看端口被那个进程占用
netstat -nltp:查看网络进程的端口监听情况
jps:查看java端口
kill -9 pid
iptables -I INPUT -p tcp --dport 80 -j ACCEPT:开放端口,加入一条INPUT规则开放80端口
iptables -A INPUT -p tcp --dport 8080 -j DROP:关闭端口
iptables -D INPUT -p tcp --dport 8080 -j DROP:删除关闭的端口
ifconfig eth0 down/up:开关网卡
sysctl kernel.pid_max | grep kernel.pid_max:查看最大进程数
ps -eLf | wc -l:查看当前进程总数
3. 主机名
hostname:查看当前主机名
vim /ect/sysconfig/network:修改主机名
vim /etc/hosts:修改ip与主机名的映射关系,ip和主机名的映射与解析
vim /etc/sysconfig/network-scripts/ifcfg-eth0:修改ip
设置静态ip:
系统操作
1. 环境变量(vim /etc/profile)
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
2. 环境变量SSH免密登录(A–>B)
A:ssh-keygen -t rsa (提示时,直接回车即可)
A:ssh-copy-id root@hadoop1(B)如果再有C加入(A-->C)
A:ssh-copy-id root@hadoop2(C),不需要重新生成ssh-kengen
3. 日期
date:查看当前日期
date +%Y-%m-%d:格式化输出日期
date -s "2017-10-10 11:11:11",hwclock -w:修改日期
4. 用户记录
who:查看谁在线
last -10:查看最近10个用户的登录记录
5. 关机/重启
shutdown -h now:关机
halt:关机
shutdown -r now:重启
reboot:重启
vim /etc/inittab:设置Linux默认启动界面,常用的是3(终端)和5(图形)
6. 进程
ctrl+z:进程会挂起到后台
bg jobid:让进程在后台继续执行
fg jobid:让进程回到前台
ps -ef:查看系统所有的进程
ps -ef | grep tomcat:查看tomcat的进程
top:实时查看系统状态
free -h:查看内存信息
7. 打印
echo hello:打印hello
echo $SHELL:打印当前用的是那种shell
8. 查找服务或命令
which java:查看java命令的所在目录
whereis java:查看java命令及java的所在目录
9. 查看shell
cat /etc/shells:查看所有shell
echo $SHELL:查看当前shell
chsh -s /bin/zsh:修改当前用户所用的shell(不加用户名,默认当前用户)
uname -a:查看当前系统版本
lsb_release -a:查看当前系统版本
10. 设置Linux开机启动
a. vim /etc/rc.local -->zkServer.sh start
b. chkconfig 服务名称 on
11. 用户管理
useradd anson:添加用户,创建测试用户用这个
sudo passwd anson:设置用户密码,创建测试用户用这个
cat /etx/passwd:查看用户信息
userdel -r anson:删除用户(加-r:删除用户及其主目录)
sudo 命令:获取root权限,在执行此命令(使用sudo,需要当前用户在sudoers的列表里面)
vim /etc/sudoers --> anson ALL=(ALL) ALL:将anson添加到sudoers里面
sudo su,sudo -i:切换root,不需要密码
su,su root:切换root,需要密码
su和sudo区别:su仅获得权限,工作环境不变。sudo获取root权限和工作环境。
test切换不了root:将test加入/etc/sudoers文件中
12. 挂载&卸载
a. 挂载光驱
mkdir /mnt/cdrom 创建一个目录,用来挂载
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/:将设备/dev/cdrom挂载到 挂载点 /mnt/cdrom中
b. 挂载光盘镜像文件(.iso文件)
mount -t iso9660 -o loop /home/hadoop/Centos-6.7.DVD.iso /mnt/centos
注:挂载的资源在重启后即失效,需要重新挂载。要想自动挂载,可以将挂载信息设置到/etc/fstab配置文件中
c. 卸载 umount
umount /mnt/cdrom
13. 查看存储空间
df -h:查看存储空间
du -sh /*:统计根目录下文件及文件夹的大小
du -sh ./docker:查看当前路径下的docker文件夹的大小
lsb_release -a:如何查看当前Linux是Ubuntu还是centOS
cat /proc/version:查看道歉Linux是Ubuntu还是centOS
cat /etx/system-release:查看系统版本
cat /proc/cpuinfo:查看系统信息
14. 系统服务
service --status -all:查看系统所有的后台服务进程
service iptables status:查看防火墙的状态
service iptables stop:停止服务
service sshd start:开启服务
service network restart:重启服务
chkconfig iptables on:设置服务开机自启动
chkconfig iptables off:设置服务开机不自启动
chkconfig --list | grep iptables:查看服务开机启动的状态
chkconfig --level 35 iptables on:指定系统级别3和5,开机自启动
systemctl list-unit-files|grep firewalld.service:查看防火墙状态
systemctl stop firewalld.service:关闭防火墙
systemctl disable firewalld.service:关闭开机启动
15. 系统启动级别
vim /etc/inittab:配置默认启动级别
0:关机模式
1:单用户模式
2:多用户模式&不支持网络
3:多用户模式&全功能&不带图形界面
4:不用的
5:多用户模式&全功能&带图形界面
6:重启模式
16. 安装软件
a. **二进制发布包**:软件已经针对具体平台编译打包发布,只要解压,修改配置即可
b. **RPM发布包**:软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装
rpm安装:rpm -ivh MySQL-server……
c. **yum在线安装**:
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上存在的rpm软件,并且会自动解决软件安装过程中的库依赖问题(注:类似于maven)
yum安装:yum install mysql
yum查找:yum list | grep telnet
d. **源码编译安装**:
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署
源码安装:
i. 在源码工程中make,需要gcc(yum install -y gcc)
ii. 在源码工程中make PREFIX=/usr/local/redis install
17. crontab
a. 管理
yum install crontabs:安装
service crond start/stop/restart/reload/status:服务管理
service crond start:手动启动任务
chkconfig --list:查看任务是否设置了开机自启动
chkconfig --levle 35 crond on:在3和5模式下,自启动任务
b. 任务命令
crontab [-u user] [ -e | -l | -r ]
-u user:指定某个用户,不指定-u 表示当前用户。
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。
-e:编辑某个用户的crontab文件内容。
-l:显示某个用户的crontab文件内容。
-r:删除定时任务配置,从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文。
-i:在删除用户的crontab文件时给确认提示。
crontab file [-u user]:用指定的文件替代目前的crontab。
crontab -u anson -l:查看某个用户有没有定时任务,不指定"-u anson"就是当前用户
crontab -e [-u user]:编辑当前用户的crontab.
c. 编写任务
* * * * * command
分 时 日 月 周 命令
第1列:分钟1~59 每分钟用*或者 */1表示
第2列:小时0~23(0表示0点) 7-9表示:8点到10点之间
第3列:日期1~31
第4列:月份1~12
第5列:星期0~6(0表示星期天)
第6列:要运行的命令
30 21 * * * /usr/local/etc/rc.d/httpd restart:每晚的21:30重启apache
45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart:每月1、10、22日的4 : 45重启apache。
crontab 文件中的命令,要写全路径
18. 清理Linux缓存
a. sync; echo 1 > /proc/sys/vm/drop_caches:仅清除页面缓存
b. sync; echo 2 > /proc/sys/vm/drop_caches:清除目录项和inode
c. sync; echo 3 > /proc/sys/vm/drop_caches:清除页面缓存,目录项和inode
19. Linux服务器磁盘无故被沾满
用命令找不出那些大文件,并且,移除2G后,也会马上被占满
http://blog.csdn.net/haoweilaizoule/article/details/56833131
a. lsof |grep delete:根据lsof查询文件被删除但是没有被杀死的进程
b. kill -9 PID:终止那个进程