linux常用命令

关机

shutdown -h now // 立即关机
shutdown -r now // 重启
halt // 关机
reboot // 重启
service sshd start // 开启ssh服务,方便CRT进行连接
进入桌面

startx // 进入桌面
用户管理

logout // 注销用户
sudo root // 或者su root(su - 用户名 切换用户)
useradd 用户名 // 添加用户(useradd xiaoming) ,不设置密码无法进行登录
passwd 用户名 // 为新用户设置密码
userdel 用户名 // 删除用户但保存用户主目录
userdel -r 用户名 // 删除用户以及用户主目录(home下的用户目录)
who am i // 当前用户是谁
hostname // 主机名
uname // 显示系统信息
ssh -l 用户名 -p 22 端口号 // 用户连接
su 用户名 // 切换用户(su是switch user),还是在root目录
su - 用户名 // 切换用户,并且进入用户名的宿主目录
用户组管理

groupadd 组名 // 创建组
id // 当前用户的组信息
useradd 用户名 -g 组名 // 创建用户并为用户分配组(创建用户时,没有指定用户组,会自动生成一个用户组,组名与用户名相同)
groupdel 组名 // 删除组,但是注意如果组下存在用户是不允许删除的(使用userdel删除用户)
groups // 查看当前登录的用户组名
权限管理:

/etc/password : 存储用户信息
/etc/shadow : 存储用户密码
/etc/group : 用户组信息
权限描述机制(字符和数字)
-开头 : 普通文件
d开头 : 目录文件
l开头 : 链接,相当于快捷方式
之后每三个为一个权限,前三个表示当前用户对该文件是否有读写执行的权限(也就是属主权限),中间三个表示属组权限,后三个表示其他用户权限
r : 读 4
w : 写 2
x : 执行 1
: 表示无权限 0
如何分配权限
chmod 700 普通文件 : 对普通文件赋权限 700 表示当前用户可读可写可执行,其它的都无权限
chmod u=rwx,g=rwx,o=rwx 普通文件 : 对普通文件赋权限 700 表示当前用户可读可写可执行,其它的都无权限(也可以将=换为+,去掉权限使用-)
chown -R 用户 : public dir : 变更目中的所有子目录及文件的所属用户和组
所属用户和所属组的的位置(drwx------. 2 wzlove wzlove)
最后两个分别表示用户和组
chown 所有者:所有组 文件
系统相关:

ifconfig : 查询网络情况
ping : 测试网络连通
netstat : 显示网络状态信息
man : 不了解(man ls)
clear : 清屏
kill : 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
date : 显示时间
date -s "2018-09-19 16:40:50" 设置时间
df 查看磁盘/硬盘信息
df -h 友好显示
free 查看内存状态
free -h
top 显示,管理执行中的程序(很重要)
clear 清屏
clear -l
ps 查看进程
ps -ef 查看所有进程
ps -ef | grep ssh 查看指定进程
kill 杀死进程
kill 端口号 : 杀死指定进程
kill -9 : 强制杀死
du : 显示文件大小
du -h
du -sh * 查看文件占用的空间
who 显示当前登陆的用户名
hostname 显示当前主机名
vi /etc/sysconfig/network 修改主机名
uname 显示系统信息
uname -a 显示本机详细信息
树形目录

-root 存放root用户的相关文件(*),宿主目录
-home 存放普通用户的相关文件(*),普通用户的宿主目录
-bin 存放常用命令的目录,如vi,su(*),二进制可执行文件
-sbin 要具有一定权限才可以使用命令
-mnt 默认挂载光驱和软驱的目录
-etc 存放配置相关文件(*)
-boot 存放引导系统启动的相关文件
-usr 安装一个软件的默认目录,相当于windows下的program files(*),共享的资源文件信息
目录相关的命令
cd // 改变目录
cd - // 上一个目录
cd ~ // 切换到当前用户的家目录
ls // 列出当前文件夹下的文件和目录
ls -a // 显示目录下所有文件,包括隐藏文件
ls -l // 显示长列表格式
ll // 等同于ls -l
ll -h // 友好显示文件大小
dir // 等同于ls
tree // 树形结构展示
pwd // 显示当前目录 :
* mkdir                         用来创建文件夹(mkdir test/{test1/{test11,test12},test2},层级目录的创建)
* mkdir -p  文件夹1/文件夹2      创建多级文件夹
* cd ..                         返回上级目录
* touch 文件名.后缀              用来创建文件
* rmdir                         删除文件夹(rm -r,也可以删除文件夹)
* rm                            删除文件,有询问的(不能删除文件夹)
* rm -rf(尽量不用)               删除文件,没有询问的(不能删除文件夹)


* touch    // 建立空文件
* vim      // 编辑文件,也可以创建文件
* echo "内容"          打印(相当于java的输出)
* echo "内容" >  文件  将内容写到文件中(直接替换原来的内容)
* echo "内容" >> 文件  将内容追加到文件中
* >   : 覆盖重定向(内容 > 文件)  
* >>  : 追加重定向(内容 >> 文件)
* |   : 管道(ps -ef | grep java),简单来说,将 | 之前的输出当作 | 之后的输入
  	* ps -ef 输出系统的进程信息(tail -f file1.log | grep -ni -A5 -B5 'exception' --color)
  	* ps -ef 输出系统的进程信息(ps -ef | grep -n 'Exception' --color)


* &&  : 两条命令一起执行


* ./文件    执行文件
* cp       // 复制命令 (cp -r dir1 dir2,递归复制命令)
* mv       // 移动文件和改文件名
* rm       // 删除文件和目录
* rm -f    // 不询问删除
* rm -rf *  // 删除所有内容,包括目录和文件,r表示递归(),f表示强制()
* rm -rf /*  //自杀(绝对不能使用)
* ln       // 建立符号链接,类似于建立某个文件的快捷方式
* ln -s 源目标  // ln ‐s /etc/inittab inittab,inittab指向实际文件/etc/inittab inittab


* cat  + 文件名 // 查看文件内容,一次性查看
* more + 文件名      // 显示文件内容带分页,空格下翻页,B上翻页,enter下一行,q退出
* less + 文件名     // 显示文件内容带分页,ctrl + page up上翻
* tail -10 + 文件    // 显示后10行数据   ctrl + c 结束查看
* tail -f + catalina.out     // 动态查看tomcat的日志文件信息(查看尾部实时刷新的内容)
* head -10            //  显示前10条数据


* grep     // 在文件中查询内容(假设存在某个文件test.cpp中含有hello关键字,此时可以使用grep名命令来查找,grep n “hello” test.cpp,n表示在第n行出现)
* grep 'Hello' file   查找file文件中含有'Hello'的行
* 参数:(grep -ni -A5 -B5 "exception" file1.log --color)
	* -n : 行号
	* -i : 忽略大小写
	* A  : 后几行
	* B  : 前几行
	* --color : 高亮显示
网络相关

ifconfig 显示网络设备
ifconfig eth0 up : 启用网卡
ifconfig eth0 down : 关闭网卡
ping 命令(ctrl + c停止)
netstat -ano 查看端口的占用情况
netstat -ano | grep java/端口号 : 查看某些端口的占用情况
netstat(查看网络的端口信息,下面的命令可以组合使用)
-n : 以数字形式展示
-a : 展示所有
-l : 展示监听者的进程信息
-t : tcp
-u : udp
-p : 进程
find搜索文件及目录

find / -name man:意思是说从根目录开始搜索名称为man的文件或目录
find /home -amin -10:十分钟内存取的文件或目录
find /home -atime -10:十小时内存取的文件或目录
find /home -cmin -10:十分钟内更改过的文件或目录
find /home -ctime +10:十小时前更改过的文件或目录
find /home -size +10k:意思是说查找/home目录下大小为10k的文件
压缩和解压缩

tar -czvf target.tar.gz target/ : 归档并压缩

zip file.zip fileName //zip后接压缩后的文件名,在它的后面输入要压缩的文件即可压缩后,

zip m file.zip to.txt:把to.txt文件压缩成file.zip文件,to.txt会自动删除的,自动删除原文件

zip ‐r file.zip fileName:将当前目录下的子目录一起压缩

zip ‐j file.zip fileName : 忽略子目录内容

将已压缩的或没有必要压缩的文件去掉 zip ‐n .mpg: .jpg: .gif:第一种文件中间要用“:”分开

直接解压缩文件 unzip file.zip

使用gzip 文件 可以将文件压缩

使用gzip -d 文件可以将文件解压缩

使用tar -cvf 打包后的名字.tar 文件1 文件2 文件3 可以将多个文件(一个文件写一个就好)打包

使用tar -xvf 包名.tar将打包后的文件释放出来

使用tar -zxvf 包名.tar将打包后的多个文件释放出来

(多个文件一般先打包,再压缩,使用tar -zxvf 压缩后的名字(一般是.tar.gz结尾)进行解压缩,一步到位)

mv 文件 /路径 将文件移动到指定的路径(mv 重命名或者移动,mv java mnt 重命名,mv java mnt/ 不行的依然重命名,mv java /mnt 移动)

mv 文件 文件/ 重命名

mv 文件 参数 如果参数存在是移动,不存在时重命名

vim相关

vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式(i,o,a都可以用来插入)。
一般模式 : vi a.txt 就是进入一般模式(其他模式ESC可以推出到一般模式)
插入模式 : i,o,a进入插入模式
底部指令模式 : 使用 :
:q 退出
:q! 强制退出(不保存)
:wq 保存并退出(一般模式下shift + zz或者x也可以)
:set number 显示行号
:set nonumber 隐藏行号
cat 文件名.后缀名 可以用来查看文件中的内容
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
dd 删除(删除多行 number+dd)
u 撤销操作
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
安装插件

tree : sudo yum -y install tree
vim : yum -y install vim*
wget : yum -y install wget
ifconfig:yum install net-tools
yum install unzip
删除JDK

rpm -qa | grep java // 查看本机是否有jdk
如果有输出,就进行删除卸载
rpm -e --nodeps java jar包 // 关于java的全部卸载就可以了
12:安装JDK:

使用gzip 文件  可以将文件压缩
使用gzip -d 文件可以将文件解压缩
使用tar -cvf 打包后的名字.tar 文件1 文件2 文件3  可以将多个文件(一个文件写一个就好)打包
使用tar -xvf 包名.tar将打包后的文件释放出来
使用tar -zxvf 包名.tar将打包后的多个文件释放出来
(多个文件一般先打包,再压缩,使用tar -zxvf 压缩后的名字(一般是.tar.gz结尾)进行解压缩,一步到位)

mv 文件 /路径     将文件移动到指定的路径(mv 重命名或者移动,mv java mnt 重命名,mv java mnt/ 不行的依然重命名,mv java /mnt 移动) 
mv 文件 文件/     重命名

如果本机存在请先删除本机上的jdk
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
tar -zxvf jdk-8u181-linux-x64.tar.gz将文件进行解压

vi /etc/profile(大G跳到最后 o插入一行)

JAVA_HOME=/usr/local/java/jdk-8u181        // 切记是自己的目录
JRE_HOME=/usr/local/java/jdk-8u181/jre
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH

注意:保存退出后,重新加载环境变量
source /etc/profile
安装tomcat

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
将下载的压缩包移动到对应的文件夹下
tar -zxvf apache(按tab键提示一下) 进行解压缩
进入到bin目录
执行 ./startup.sh ; tail -f logs/catalina.out
在本机访问(有可能访问不了,尝试关闭防火墙(参考mysql安装的最后一个操作)或者让8080端口通过就好)
tail -f logs/catalina.out 查看日志
安装Mysql

先删除电脑上原本的mysql(rpm -qa | grep -i mysql 查看),一般没有安装,如果安装使用rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 进行相关的删除
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
yum remove mysql-libs
rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm (如果报错,执行wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm试试,安装就好)
rpm -ivh mysql-community-devel-5.7.23-1.el7.x86_64.rpm
启动服务 : systemctl start mysqld
查看服务 : systemctl status mysqld
cat /var/log/mysqld.log | grep password
不修改密码是禁止任何操作的( SET PASSWORD = PASSWORD('Mypwd123456$');) 密码需要大小写字母,数字和字符组合
授权远程客户端连接 : GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Mypwd123456$' WITH GRANT OPTION;
FLUSH PRIVILEGES;
需要关闭linux防火墙
firewall-cmd --state #查看防火墙是否启用
systemctl stop firewalld #关闭防火墙
service mysql start 启动mysql服务
设置开机自启动

chkconfig --add mysql // 添加入开机自启动
chkconfig mysql on // 自启动
chkconfig // 查看
过滤防火墙(CENTOS7之前)

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart #重启服务
简单关闭防火墙的方法
firewall-cmd --state #查看防火墙是否启用
systemctl stop firewalld #关闭防火墙
systemctl start firewalld #开启防火墙
关闭防火墙(/etc/init.d/iptables stop)
setup
firewall
按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择
按tab键切换到quit,按空格键选择
service iptables status 查看防火墙的状态
禁用防火墙

[root@rhel7 ~]# systemctl stop firewalld.service
[root@rhel7 ~]# systemctl disable firewalld.service
[root@rhel7 ~]# systemctl status firewalld.service
启动防火墙 : systemctl start firewalld
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $?
查看已启动的服务列表:systemctl list-unit-files|grep enabled
* 开启端口 : firewall-cmd --zone=public --add-port=1521/tcp --permanent	
* 删除开放的端口号 : firewall-cmd --zone=public --remove-port=80/tcp --permanent
* 查看所有开启的端口:firewall-cmd --zone=public --list-ports
* firewall-cmd --reload  //重启防火墙
使用systemctl工具管理服务程序

systemctl list-unit-files|grep enabled
上传:

alt + p ,使用put命令上传
使用WinSCP进行上传,或者使用其他工具
发布项目

将数据库还原到Linux上
备份Windows上的数据库(mysqldump -uroot -ppassword 数据库的名字 > 导出路径\表名.sql)
将备份的数据库上传到Linux上,提前创建好数据库,使用命令mysql -uroot -ppassword 库名 < sql所在的路径进行还原.
或者在本机使用sqlyog连接linux上的数据库,直接使用图形化界面还原数据库.
将程序的代码发布到Linux上
修改druid.properties的数据库连接信息
使用package进行打包
将包放在linux下的tomcat下的webapp,直接执行tomcat,开始进行访问
Nginx的安装

概念 : 高性能的web服务器,反向代理,负载均衡服务器
Nginx + Tomcat 的集群配置

一台电脑模拟,本机安装两个tomcat,修改端口号(server.xml).
项目发布到两个tomcat,就可以通过两个url进行访问
安装nginx
window直接解压就好,双击可执行文件启动,访问localhost就可以了
配置nginx,修改conf/nginx.conf
			# 设置服务器列表
			upstream server_lb{
		        server 127.0.0.1:8080;
		        server 127.0.0.1:8081;
		    }
		
		    server {
		        listen       80;
		        server_name  localhost;  # 域名
		
		        #charset koi8-r;
		
		        #access_log  logs/host.access.log  main;
		
		        location / {
		            root   html;
		            proxy_pass   http://server_lb;    # 服务列表
		            index  index.html index.htm;
		        }

		3. 重启服务:nginx -s reload
		4. 设置session共享
			1. 一个用户只在tomcat1上操作,另一个用户只在tomcat2上操作.配置文件上的服务器列表上添加`ip_hash;`,并添加权重(了解).
			
				upstream server_lb{
			        server 127.0.0.1:8080 weight=4;
			        server 127.0.0.1:8081 weight=10;
			        ip_hash;
			    }

			2. 在多个tomcat上进行session共享,使用的是tomcat的广播机制,但是不推荐.
				1. 修改tomcat的server.xml文件,将cluster className的注释去掉
				2. 在项目的web.xml中添加<distributable/>
			3. 使用redis服务器的方式完成session的共享(推荐使用).
				1. 使用jedis保存用户信息



 /etc/sysconfig/network-scripts/ifcfg-eth0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值