linux相关命令
程序员文章站
2022-05-04 09:26:44
1. 关机 shutdown h now // 立即关机 shutdown r now // 重启 halt // 关机 reboot // 重启 service sshd start // 开启ssh服务,方便CRT进行连接 2. 进入桌面 startx // 进入桌面 3. 用户管理 logou ......
- 关机
- 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)
- 最后两个分别表示用户和组
- 所属用户和所属组的的位置(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(右移一个字符→)
- vim三种模式:命令模式、插入模式、编辑模式。使用esc或i或:来切换模式(i,o,a都可以用来插入)。
- 安装插件
- tree : sudo yum -y install tree
- vim : yum -y install vim*
- wget : yum -y install wget
- ifconfig:yum install net-tools
- 删除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
(如果出现neither the java_home nor the jre_home environment variable is defined 和 at least one of these environment variable is needed to run this program,进入到tomcat的bin目录下,执行vi setclasspath.sh,添加两行
export java_home=/usr/local/software/jdk/jdk1.8.0_181
export jre_home=/usr/local/software/jdk/jdk1.8.0_181/jre ) - 在本机访问(有可能访问不了,尝试关闭防火墙(参考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,开始进行访问
- 将数据库还原到linux上
- 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; }
- 重启服务:nginx -s reload
- 设置session共享
-
一个用户只在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;
} - 在多个tomcat上进行session共享,使用的是tomcat的广播机制,但是不推荐.
- 修改tomcat的server.xml文件,将cluster classname的注释去掉
- 在项目的web.xml中添加
- 使用redis服务器的方式完成session的共享(推荐使用).
- 使用jedis保存用户信息
-
/etc/sysconfig/network-scripts/ifcfg-eth0