欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

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 ......
  1. 关机
    • shutdown -h now // 立即关机
    • shutdown -r now // 重启
    • halt // 关机
    • reboot // 重启
    • service sshd start // 开启ssh服务,方便crt进行连接
  2. 进入桌面
    • startx // 进入桌面
  3. 用户管理
    • 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 - 用户名 // 切换用户,并且进入用户名的宿主目录
  4. 用户组管理
    • groupadd 组名 // 创建组
    • id // 当前用户的组信息
    • useradd 用户名 -g 组名 // 创建用户并为用户分配组(创建用户时,没有指定用户组,会自动生成一个用户组,组名与用户名相同)
    • groupdel 组名 // 删除组,但是注意如果组下存在用户是不允许删除的(使用userdel删除用户)
    • groups // 查看当前登录的用户组名
  5. 权限管理:
    1. /etc/password : 存储用户信息
    2. /etc/shadow : 存储用户密码
    3. /etc/group : 用户组信息
    4. 权限描述机制(字符和数字)
      1. -开头 : 普通文件
      2. d开头 : 目录文件
      3. l开头 : 链接,相当于快捷方式
      4. 之后每三个为一个权限,前三个表示当前用户对该文件是否有读写执行的权限(也就是属主权限),中间三个表示属组权限,后三个表示其他用户权限
        1. r : 读 4
        2. w : 写 2
        3. x : 执行 1
          • : 表示无权限 0
    5. 如何分配权限
      1. chmod 700 普通文件 : 对普通文件赋权限 700 表示当前用户可读可写可执行,其它的都无权限
      2. chmod u=rwx,g=rwx,o=rwx 普通文件 : 对普通文件赋权限 700 表示当前用户可读可写可执行,其它的都无权限(也可以将=换为+,去掉权限使用-)
      3. chown -r 用户 : public dir : 变更目中的所有子目录及文件的所属用户和组
        1. 所属用户和所属组的的位置(drwx------. 2 wzlove wzlove)
          1. 最后两个分别表示用户和组
      4. chown 所有者:所有组 文件
  6. 系统相关:
    • 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 显示本机详细信息
  7. 树形目录
    • -root 存放root用户的相关文件(*),宿主目录
    • -home 存放普通用户的相关文件(*),普通用户的宿主目录
    • -bin 存放常用命令的目录,如vi,su(*),二进制可执行文件
    • -sbin 要具有一定权限才可以使用命令
    • -mnt 默认挂载光驱和软驱的目录
    • -etc 存放配置相关文件(*)
    • -boot 存放引导系统启动的相关文件
    • -usr 安装一个软件的默认目录,相当于windows下的program files(*),共享的资源文件信息
  8. 目录相关的命令
    • 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 : 高亮显示
  9. 网络相关
    1. ifconfig 显示网络设备
    2. ifconfig eth0 up : 启用网卡
    3. ifconfig eth0 down : 关闭网卡
    4. ping 命令(ctrl + c停止)
    5. netstat -ano 查看端口的占用情况
      1. netstat -ano | grep java/端口号 : 查看某些端口的占用情况
      2. netstat(查看网络的端口信息,下面的命令可以组合使用)
        1. -n : 以数字形式展示
        2. -a : 展示所有
        3. -l : 展示监听者的进程信息
        4. -t : tcp
        5. -u : udp
        6. -p : 进程
  10. 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的文件
  11. 压缩和解压缩
    • 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 文件 参数 如果参数存在是移动,不存在时重命名

  12. 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(右移一个字符→)
  13. 安装插件
    1. tree : sudo yum -y install tree
    2. vim : yum -y install vim*
    3. wget : yum -y install wget
    4. ifconfig:yum install net-tools
  14. 删除jdk
    1. rpm -qa | grep java // 查看本机是否有jdk
    2. 如果有输出,就进行删除卸载
    3. 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
  1. 安装tomcat
    1. wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
    2. 将下载的压缩包移动到对应的文件夹下
    3. tar -zxvf apache(按tab键提示一下) 进行解压缩
    4. 进入到bin目录
    5. 执行 ./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 )
    6. 在本机访问(有可能访问不了,尝试关闭防火墙(参考mysql安装的最后一个操作)或者让8080端口通过就好)
    7. tail -f logs/catalina.out 查看日志
  2. 安装mysql
    1. 先删除电脑上原本的mysql(rpm -qa | grep -i mysql 查看),一般没有安装,如果安装使用rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 进行相关的删除
    2. wget https://dev.mysql.com/get/downloads/mysql-5.7/mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
    3. tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
    4. yum remove mysql-libs
    5. rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm
    6. rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm
    7. rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm
    8. 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试试,安装就好)
    9. rpm -ivh mysql-community-devel-5.7.23-1.el7.x86_64.rpm
    10. 启动服务 : systemctl start mysqld
    11. 查看服务 : systemctl status mysqld
    12. cat /var/log/mysqld.log | grep password
    13. 不修改密码是禁止任何操作的( set password = password('mypwd123456$');) 密码需要大小写字母,数字和字符组合
    14. 授权远程客户端连接 : grant all privileges on . to 'root'@'%' identified by 'mypwd123456$' with grant option;
    15. flush privileges;
    16. 需要关闭linux防火墙
      1. firewall-cmd --state #查看防火墙是否启用
      2. systemctl stop firewalld #关闭防火墙
    17. service mysql start 启动mysql服务
  3. 设置开机自启动
    1. chkconfig --add mysql // 添加入开机自启动
    2. chkconfig mysql on // 自启动
    3. chkconfig // 查看
  4. 过滤防火墙(centos7之前)
    1. /sbin/iptables -i input -p tcp --dport 3306 -j accept
    2. /etc/rc.d/init.d/iptables save
    3. /etc/rc.d/init.d/iptables restart #重启服务
      • 简单关闭防火墙的方法
      1. firewall-cmd --state #查看防火墙是否启用
      2. systemctl stop firewalld #关闭防火墙
      3. systemctl start firewalld #开启防火墙
    • 关闭防火墙(/etc/init.d/iptables stop)
      • setup
      • firewall
      • 按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择
      • 按tab键切换到quit,按空格键选择
    • service iptables status 查看防火墙的状态
  5. 禁用防火墙
    • [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 //重启防火墙

  6. 使用systemctl工具管理服务程序
    1. systemctl list-unit-files|grep enabled
  7. 上传:
    1. alt + p ,使用put命令上传
    2. 使用winscp进行上传,或者使用其他工具
  8. 发布项目
    1. 将数据库还原到linux上
      1. 备份windows上的数据库(mysqldump -uroot -ppassword 数据库的名字 > 导出路径\表名.sql)
      2. 将备份的数据库上传到linux上,提前创建好数据库,使用命令mysql -uroot -ppassword 库名 < sql所在的路径进行还原.
      3. 或者在本机使用sqlyog连接linux上的数据库,直接使用图形化界面还原数据库.
    2. 将程序的代码发布到linux上
      1. 修改druid.properties的数据库连接信息
      2. 使用package进行打包
      3. 将包放在linux下的tomcat下的webapp,直接执行tomcat,开始进行访问
  9. nginx的安装
    1. 概念 : 高性能的web服务器,反向代理,负载均衡服务器
  10. nginx + tomcat 的集群配置
    1. 一台电脑模拟,本机安装两个tomcat,修改端口号(server.xml).
    2. 项目发布到两个tomcat,就可以通过两个url进行访问
    3. 安装nginx
      1. window直接解压就好,双击可执行文件启动,访问localhost就可以了
      2. 配置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中添加
        3. 使用redis服务器的方式完成session的共享(推荐使用).
          1. 使用jedis保存用户信息

/etc/sysconfig/network-scripts/ifcfg-eth0