zoukankan      html  css  js  c++  java
  • Linux汇总

    常用命令

    1 tree /home/  树状形式显示 yum install tree
    2 cat :查看文本内容
        cat >> test2.txt <<EOF
        > ads
        > adf
        > EOF
    3 less,more:文本查看,分页
        less /etc/services
    4 head -n1 /etc/services :查看该文件第一行
    5 ps aux | head -n5 :查看前5个进程
    6 tail -f /var/log/messages   :动态查看文件变化
    7 grep:查找命令
        -grep "lqz" test2.txt   查找文件中有lqz的行
        -ps aux | grep ssh    查看sshd进程是否在运行
    8 less打开文件:ctrl+b:下翻页       ctrl+f:上翻页
    
    
    9 wget:下载yum install wget
        wget 路径  默认下载在当前路径
        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    10 curl:连通性
        你的django:127.0.0.1:8080端口,先在本地curl一下,看看能不能通,可能是防火墙,阿里云的安全组
        curl -o /home/a.png https:72743-20190.png
    11 上传下载 (4g以内)
        yum install lrzsz -y
        rz:上传,选择文件直接上传
        sz:sz 文件路径  可以下载到当前主机
    12 which 命令:
    去/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 路径找有没有
    13 whereis -b ls  查找ls命令,只找二进制(可执行文件)
    14 sort
        sort file.txt  对内容进行排序
        sort -t ":" -k2 file.txt
        sort -t ":" -n -k2 file.txt
    15 uniq 去重,连续挨着的才能去,所以要跟sort连用
        sort file2.txt | uniq
    16 cut 
        Im lqz, is QQ 306334678
        cut -d " " -f2,5 file.txt #把字符串按“ ” 分割,取出第2和第5个
    17 wc
        wc -l /etc/services 
        ls | wc -l # 统计当前路径下有多少文件和文件夹
        ps aux |grep ssh | wc -l # 统计有多少个ssh相关的进程

    文件属性

    ls -l
    ls -lh  以人性化显示,kb,gb
    -:文件类型       
    rw-r--r--.:权限 
    1:硬链接的次数
    root:属主(属于哪个用户)
    root:属组(属于哪个组)
    43856 :大小
    Aug 19 11:54 :修改时间
    a.png:文件名字
    
    文件类型:
    -   #普通文件(文本, 二进制, 压缩, 图片, 日志等) 
    d   #目录文件
    
    b   #设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
    c   #设备文件(字符设备),终端 /dev/tty1, /dev/zero
    s   #套接字文件, 进程间通信(socket)
    p   #管道文件
    l   #链接文件
    
    
    通过file来查看详细的类型
      file a.txt 
      file /bin/ls
            

    软链接硬链接

    1 软链接和硬链接:软链接新建inode,硬链接指向同一个inode
    2 软链接---》快捷方式
        -ln -s a.png /home/jack/a.png
        -一般咱们对可执行文件建立软链接(删除不会删除原来)
        -软链接目录: 
            redis-3.2.1---->编译安装
            redis-3.2.1/bin  路径配到环境变量
            软件升级
            redis-4.2.1
            
            
            -建立软链接redis---》redis-3.2.1
            redis/bin  路径配到环境变量
            软件升级
            redis软链接到---》redis-4.2.1
    3 ln  /root/file /tmp/file_hard  (了解)

    vim

    # yum install vim -y
    # 普通模式、编辑模式、命令模式
    # 普通模式:
        -上下翻
        -yy 复制一行
        -p   粘贴
        -dd  剪切
        -p   把上面剪切的粘贴上
    # 编辑模式
        -i:insert插入
        -a:append追加
        -o:换行
        -正常写就可以了
        -esc回到普通模式
        
    # 命令模式:
        -不能从编辑模式直接进,只能先到普通模式按 :  进入命令,退出命令模式esc
         -w  表示保存
         -q   退出
         -!  强制退出
         -修改了文件后保存:  wq    wq!
         -修改了不想保存退出: q     q!
         -:set nu 显示行号
         -:set nonu 不显示行号
         -/字符串    搜索这个字符串
         -:%s#sbin#test#g #替换整个文本文件中包含sbin的替换为test

    用户相关

    #1  id  查看当前用户信息
    uid=0(root) gid=0(root) groups=0(root)
    #2  用户信息保存在 cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    #3  密码存放路径 cat /etc/shadow
    #4 约定不同用户的uid属于某个范围(了解)
    # 5 用户的增,删,改
        -useradd(一个用户只能属于一个主组,属于多个附加组)
            -groupadd sa  新增一个组
            -groupadd sa1  新增一个组
            -groupadd students 新增一个组
            -useradd -u 5001 -g students -G sa,sa1 -c "2020 new student" -s /bin/bash lqz1
        -创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统 
           useradd mysql -M -s /sbin/nologin
        -usermod
            -usermod -c "2019 new student" -md /bgx -s /bin/sh -l change_bgx bgx
            -usermod -L change_bgx  #锁定后会无法登陆系统
            -usermod -U change_bgx
        -userdel
            -userdel egon  # 删除用户,不删家目录
            -userdel -r egon1 # 删除用户,删家目录
            
    #6  改密码
        -passwd root
    #7 组增删改
        -groupadd no_gid   新增组
        -groupmod -g 1111 student  改组id号
        -groupmod student -n new_student  改组名字
        -groupdel new_student   删除组(组下没有人,把人删除,再删)
     
    # 8 su 和sudo
        -su 切换用户
            -su - jack:打开新的shell,会加载自己的环境变量
            -su jack:不打开新的shell,不会加载它的环境变量
        -sudo 普通用户可以有一些超级用户的权限,不需要输入密码
            usermod jack -G wheel  # 把jack用户加入到了wheel组
            -你这个用户没有权限,你尝试 sudo mkdir ll试一下,不行,超级管理员没有给你配这个权限

    特殊权限:权限属性chattr

    #选项: + 增加权限 -减少权限 =等于某个权限
    # a:让文件或目录仅可追加内容
    # i:不得任意更动文件或目录
    # 给某个文件或者文件夹加特殊权限
        -chattr +i lqz.text
        -chattr -i lqz.text

    压缩解压

    #1  Windows的压缩包与Linux的压缩包能否互通
        windwods:rar,zip  
        linux:tar.gz,zip互通,不支持rar
    # 2 gzip (只能压一个文件,不能压文件夹,会把原来的删除)
        -gzip file
        -gzip -d file
        -有什么用?
           -cd /etc/yum.repos.d/
    #3 zip的压缩和解压
        -yum install zip unzip -y
        -zip  filename.zip  filename  # 压单个文件
        -zip -r home.zip /home/   #把home文件夹压缩
        -unzip  home.zip   #解压
        -unzip -l  home.zip # 不解压,看内容
        -unzip home.zip  -d /opt/   # 把当前路径下的home.zip 解压到opt
        
     # 4 tar打包与压缩
        -tar -czf 文件        ---》tar.gz
        -tar -xf  xx.tar.gz  --->解压xx.tar.gz
       
        tar -xzvf  xx.tar.gz :解压tar.gz,详细过程列出来
       
        -tar -czf home.tar.gz dd/ lqz1 lqz2 /home/
        
        -tar czf etc.tar.gz --exclude=etc/services etc/  # 排除文件
        -tar xf /etc/local.tar.gz  -C /tmp  # -C指定解压到哪个路径

    软件管理:rpm

    #1  红帽的软件安装包(windows的:exe,mis)
    #2  mount /dev/cdrom /mnt 把光盘挂在到 /mnt文件夹
    #3  Linux中除了rpm安装软件,是否还有安装软件方式
        -源码安装-->官网下源码--》编译安装---》最新
        -rpm包,预先编译打包,安装简单,yum安装,本质就是rmp安装--》稍微老一些
        -二进制包:绿色包
        
        -安装rpm的软件:rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
        -强制安装:rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm
        
        -rpm -q :查看这个软件是否安装********
        -rpm -qa |grep tr  :列出所有安装的软件
        -rpm -ql :查询指定软件包所安装的目录、文件列表rpm -ql unzip *****
        -rpm -qc unzip:查看这个软件的配置文件位置
        -rpm -qf /etc/pam.d/vsftpd  :查看配置文件属于哪个软件
        -rpm -qlp trace-cmd-2.6.0-10.el7.x86_64.rpm :查看该软件包安装后会释放哪些文件
        
        -使用远程地址安装:rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.8-2.el7.x86_64.rpm
            
        -rpm -Uivh  升级软件需要用  U
        -rpm -e zabbix-agent
      

    yum仓库,源

    # 1 Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装
    
    # 2 cd /etc/yum.repos.d/  路径下有xx.repo 文件---》yum源
    
    # 3 换阿里云的源
        wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
            
    # 4 配置其他源
        -wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
        -yum install nginx 
        
        -yum provides ipconfig  # 通过命令查软件,这个命令属于哪个软件
    
           -rpm -qf `which ifconfig` # 查命令属于哪个软件,前提是该软件安装了

    基本权限chmod

    1 rwx                 r-x       r-x
      属主(文件所有者)      属组权限    其他人权限
    2 权限详解
        r:read写权限
        w: write写权限
        x:可执行
    3 修改权限
        7=4(r)+2(w)+1(x)
        chmod 777 文件夹/文件

    软件管理之二进制安装

    1 会了yum安装,为什么还要会二进制安装(编译安装)
        -官方不提供yum安装
        -二进制安装是最新的
    2 向服务器传递文件的几种方式 
        -scp nginx-1.18.0.tar.gz root@101.133.225.166:/home/jack 
        -sz,rz
        -xftp软件来传
        
        
    3 源码安装nginx
        -1 下载
        -2 解压
        -2.1 安装依赖
            -yum install -y pcre-devel gcc gcc-c++ make zlib-devel openssl-devel
        -3 通过configure 生成配置信息,配置相关的选项,并生成Makefile,软件安装的信息
            ./configure --prefix=/usr/local/nginx
        -4 make 按照Makefile生成的安装软件
        -5 make install:将二进制文件拷贝至对应的目录中
        -6 目录介绍
            conf :配置文件都放在这
            html :静态文件存放路径,index.html
            logs :日志
            sbin :可执行文件
        -7 命令介绍
            nginx  # 启动
            nginx -s reload # 重新加载,修改配置文件
            nginx -s restart  # 重启
            nginx -s stop # 停止
        -8 在任意路径敲nginx都能执行
            -建立软链接  ln -s /usr/loacl/nginx/sbin/nginx /sbin/nginx
            -把/usr/loacl/nginx/sbin/路径加入环境变量
            -想使用systemctl 管理(制作系统服务)

    进程管理

    #1  ps -aux 用它,[系统进程]
    #2  ps -ef
    #3  ps -aux|grep id,进程名字,
    # 4 top实时看状态
    # 5 kill -l
    # 6 kill -9 进程id号 强行关闭
    # 7 pkill -9 nginx  关闭nginx所有进程
    # 8 killall nginx   关闭nginx所有进程
    
    
    # 通过来管理进程screen
    yum install screen -y
    创建一个窗口
    screen -S myjobs
    执行耗时任务,进程
    ctrl+a+d  退出当前bashshell但是耗时任务还在后台运行
    screen -r myjobs 调到前台执行
    screen -list  查看所有任务

    系统服务

    #1  centos6 上启动服务service start network  串行启动
    #2  centos7 启动服务:systemctl start network  并行启动
    
    #3  cd /usr/lib/systemd/system/
    
    ###制作系统服务
    
    #4 vim mynginx.service
    
    [Unit]
    Description=my nginx
    After=network.target  #在哪个服务启动后启动
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    ExecRestart=/usr/local/nginx/sbin/nginx -s restart
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    [Install]
    WantedBy=multi-user.target
    
    # 以后就支持使用 systemctl start mynginx.service
    
    # 查看服务状态:
        systemctl status mynginx.service
        # disabled表示没有开机自启动
        Loaded: loaded (/usr/lib/systemd/system/mynginx.service; disabled; vendor preset: disabled)
    # 开机自启动
        systemctl enable mynginx
    # 取消开机自启动
    systemctl disable mynginx.service
  • 相关阅读:
    c++ string::size详解
    fatal error LNK1120: 1 个无法解析的外部命令
    c多个空格转成一个空格
    算法导论之三:快速排序
    转:C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
    vc6.0怎么调整工作空间到左边??
    2008生产实习 C++ 实习计划
    WCF是什么
    收藏:Silverlight 2.0 Beta Control Hierarchy (Silverlight 2.0控件层次结构图)
    A potentially dangerous Request.Form value was detected from the client 的解决方法
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14886277.html
Copyright © 2011-2022 走看看