• Linux常用命令


    日常命令

    cd .. // 返回上一级目录
    cd - // 返回上一次目录
    cd或cd ~ // 返回家目录
    cd / // 进入根目录
    
    pwd // 显示当前目录
    ls // 显示当前目录文件
    ls localrepo/ // 显示指定目录的文件
    ll // 查看目录文件的的详细信息
    la // 查看全部包括隐藏的目录文件
    tree // 查看当前目录文件树
    tree mydir // 查看指定目录的文件树
    touch hello.py // 创建空文件
    
    mkdir mydir // 创建文件夹
    mkdir -p a/b/c // 创建层级目录
    mkdir -p a/{b,c}/{d,e} // 同一级创建多个文件夹
    
    cp hello.py ~/hello2.py // 拷贝文件
    cp hello.py -i hello2.py // 拷贝文件,如果有同名文件询问是否覆盖
    cp hello.py -f hello2.py // 拷贝文件,如果有同名文件强制覆盖
    cp hello.py -n hello2.py // 拷贝文件,如果有同名文件不覆盖
    
    mv hello2.py hellocp.py // 重命名文件
    mv hello.py ~/Desktop // 移动文件
    rm hellocp.py // 删除文件
    rm -rf localrepo/ // 递归删除目录
    
    find ~/Desktop/ -name '*.py' // 在指定目录中查找文件
    whereis python // 查找可执行程序
    which python // 查看当前使用的是哪个目录中的python
    
    ln -s /usr/bin/python ./mypylink // 创建可执行程序的软链接
    alias rrm='rm -rf' // 给命令起别名,需要root权限(不建议使用)
    history // 查看命令历史
    clear // 清屏(快捷键Ctrl+l)

    命令速查

    rm --help // 查看rm命令帮助
    man rm // 查看rm命令的手册解释
    info rm // 查看rm命令详细信息

    更多查找

    find ~/ -name '*.py' -exec rm {} ;    查找家目录下所有的py文件并删除,{}与exec结合匹配所有文件
    find ~/ -name '*.py' -exec chown wife {} ;        查找家目录下所有py文件并将所有权转让给wife用户
    find ~/ -name '*.py' -exec cat {} ;> record.txt    查找文件并将全部内容拼接并写入文件中
    find ~/ -name '*.py' -exec cp {} mydir ;        查找文件并拷贝到指定目录
    
    grep 'def.*' a.py    在a.py中查找指定内容
    grep 'def.*' a.py b.py c.py    在多个文件中寻找指定内容
    grep -v 'def.*' a.py    在a.py中查找指定内容以外的内容
    grep -i "HELLO" a.py    在a.py中查找指定内容并忽略大小写
    grep -E "[1-9]+" a.py    在a.py中查找正则表达式匹配的内容(匹配1到多个数字)
    grep -F "[1-9]+" a.py    在a.py中查找纯文本内容(严格匹配字符串"[1-9]+")
    grep -e "def.*" -e "class.*" a.py    在a.py中查找多个内容
    grep "text" ./ -r -n    在当前目录下递归查找内容

    系统管理

    poweroff    关机
    reboot    重启
    shutdown -h 12:00    定时关机
    shutdown -h now        立刻关机
    shutdown -c            取消定时关机
    
    #结合1,查看所有CPU平均负载/每个CPU的具体负载
    #结合M/P/T,按内存占用/CPU占用/运行时间的降序,查看进程信息
    top                    显示所有系统任务
    
    free -m             查看内存占用,以M为单位
    uname -a            打印操作系统信息
    uptime -p            查看系统运行时间
    echo $PATH            查看环境变量
    export PATH=$PATH:/home/sirouyang/Desktop/    追加环境变量
    lsof | head -n 10    查看进程打开的文件(一切皆文件,数据文件、网络连接、硬件设备)
    lscpu                查看CPU信息
    
    time lsof        统计命令执行时间
    cal/date            查看日历和时间
    date +%y-%m-%d-%H-%M-%S    格式化地查看时间
    
    # 0-6:0停机-1单用户安全模式-2多用户安全模式-3多用户网络模式-4系统保留级别-5图形界面-6重启
    runlevel        显示当前运行级别
    init 6            切换运行级别

    文本命令

    cat hello.py // 查看文件
    gedit hello.py // 使用gedit查看文件
    head -n 10 hello.py // 查看前10行
    tail -n 10 hello.py // 查看后10行
    less hello.py // 一次查看少量内容,PageUp和PageDown键翻页
    vim hello.py // 使用vim打开文件

    管道与重定向

    sort hello.py | uniq -c // 排序后统计次数
    sort hello.py | uniq -d // 排序后找出重复的行
    cat /proc/cpuinfo | grep -c processor // 显示CPU核心数
    echo 'newline' > hello.py // 将结果写入文件(覆盖)
    echo 'newline' >> hello.py // 将结果追加到文件
    cat < ~/proc/cpuinfo //将指定的文件作为cat的输入

    压缩和解压

    tar -cvf /home/abc.tar /home/abc    只打包,不压缩(c=创建压缩包,v=打印信息,f=指定文件名)
    tar -zcvf /home/abc.tar.gz /home/abc    打包,并用gzip压缩
    tar -jcvf /home/abc.tar.bz2 /home/abc    打包,并用bzip2压缩
    
    tar -xvf abc.tar 解压普通tar包(x=解压缩)
    tar -zxvf abc.tar.gz 解压gz压缩包
    tar -jxvf abc.tar.bz2 解压bz2压缩包
    
    zip -r xxx.zip abc/* fuck/* temp/* 递归压缩多个文件夹到xxx.zip
    unzip xxx.zip #解压zip压缩包

    磁盘管理

    df -h /                    查看磁盘使用情况
    sudo du -h ~            查看用户目录的磁盘使用情况
    du -sh                    当前目录的总体占用情况
    du abc.tar.gz abc.tar    查看文件和目录的磁盘占用
    dd if=/dev/zero of=temp.txt bs=1K count=1024    写入一个充满0的文件,每块1K,共1024块,总大小1M
    time dd if=/dev/zero of=temp.txt bs=1M count=1024    测试写入1G文件的时间(以此衡量磁盘的读写效率)

    登录日志

    last 查看用户近期登陆情况
    last -2 最近登陆的两个用户
    last -2 root 查看root用户最近两次登陆情况
    
    id    显示用户及其群组信息
    groups    查看当前用户所加入的组
    whoami    显示当前用户名称

    用户与权限

    groups // 查看所属的工作组
    whoami // 显示当前用户名称
    
    sudo useradd -m wife // 新建wife用户,-m=自动创建家目录
    sudo useradd -d /home/myson -m son //创建son用户,指定其家目录为/home/myson
    sudo useradd -g guests -G root,adm -m him //创建him用户,属于group组,其次也属于adm,root组
    sudo useradd -G guests,sudo -m -s /bin/bash mywife // 新增一个用户,-m=自动创建家目录,-s指定bash
    userdel rose 删除rose 账号
    userdel -r rose 删除用户及相关目录下的文件(/etc/passwd, /etc/shadow, /etc/group等)
    usermod -s /bin/ksh -d /home/z –g developer him // 修改him用户的shell、家目录、所属组等信息
    sudo passwd // 修改自己的密码
    sudo passwd mywife // 修改mywife的密码
    sudo su mywife // 切换用户
    sudo su // 切换到root用户
    
    sudo groupadd guests // 添加guests组
    sudo groupadd -g 101 group1 //添加组group1,识别号为101
    groupdel group1 //删除组
    groupmod –g 10000 -n group3 group2 //将组group2的标识号改为10000,组名修改为group3
    gpasswd -a u1 g1 将u1 加入到 g1 组
    gpasswd -d u1 g1 将u1 退出 g1 组
    gpasswd -A u1 g1 将g1 组的管理员指派给u1
    
    chmod 421 hello.py // 设置自己、用户组、其他人的权限分别为只读、只写、只执行
    chmod a+r,u+wx,g+x,o-wx hello.py // 详细修改全部用户、拥有者、用户组、其他人的权限

    网络管理

    sudo apt install net-tools 安装网络工具
    ifconfig // 查看网卡状态
    ping 192.168.59.129    // 检查网络是否连通
    wget "http://download.redis.io/releases/redis-4.0.9.tar.gz" // 下载redis
    sudo apt install traceroute  安装路径追踪工具
    traceroute -m 100 www.sina.com        追踪路由信息,最大100跳
    
    netstat -t        列出所有TCP端口
    netstat -r        显示路由表
    netstat -i        显示接口(网卡)列表
    netstat -tpnl    查看已连接的TCP端口和程序名
    netstat -anp | grep 3306 -c        查看MySQL的连接数

    远程登录

    //安装并启动ssh服务
    sudo apt install openssh-server 安装openssh-server
    sudo ps -ef | grep ssh 查看SSH服务是否启动,还可以netstat -tl | grep 22或systemctl status ssh
    sudo systemctl start ssh 如果没有启动则启动SSH服务
    
    //访问远程主机(前提:对方开启了ssh服务,且你知道对方的密码,或对方持有你的ssh公钥)
    ssh root@127.0.0.1 访问远程主机
    exit 退出远程访问
    
    //执行远程拷贝
    scp -r sirouyang@192.168.158.129:/abc /home/wife/Desktop/        从远程主机拷贝内容到本地
    scp -r /abc sirouyang@192.168.158.129:/home/sirouyang/Desktop/    从本地拷贝内容弄到远程主机(对方没有本地的公钥时需要密码认证)
    
    # ssh公钥交换过程:远程主机持有本地的公钥时,ssh以及scp可以免密执行
    ssh-keygen -t rsa    生成ssh秘钥对
    scp ~/.ssh/id_rsa.pub sirouyang@192.168.158.129:/home/sirouyang/.ssh/    上传公钥给远程主机
    ssh sirouyang@192.168.158.129    ssh登录远程主机
    cat Desktop/id_rsa.pub >> ~/.ssh/authorized_keys    操作远程主机添加公钥认证(今后远程对本地ssh免密)
    
    //一站式让远程持有自己的公钥
    ssh-copy-id sirouyang@192.168.158.128    让远程持有自己的公钥(对方不必添加公钥到authorized_keys)

    进程管理

    ps -ef // 查看所有进程(包括登录的其它用户的进程)
    ps -aux //查看所有进程(仅当前用户的进程)
    ps -ef | grep redis    // 查找redis进程
    kill -9 77157    // 强行杀死指定pid的进程
    kill -15 77157    // 终止指定进程

    服务管理

    #chkconfig服务管理
    apt-get install sysv-rc-conf    安装chkconfig服务
    cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig    重命名一下可执行程序
    chkconfig --list            查看所有服务的开机启动状态
    chkconfig --list mysqld        查看mysql的开机启动状态
    chkconfig mysqld on            设置mysql开机启动
    chkconfig mysqld off        禁止mysql开机启动
    sudo apt install firewalld    安装firewalld
    firewall-cmd --state        查看防火墙状态
        
    #原生的service服务管理
    service mysql start            启动mysql
    service mysql stop            停止mysql
    service mysql restart        重启mysql
    /etc/init.d/mysql start        启动mysql
    /etc/init.d/mysql stop        停止mysql
    /etc/init.d/mysql restart    重启mysql
    
    #systemctl服务管理(推荐方式)
    systemctl status firewalld        查看服务状态
    systemctl start firewalld         启动服务
    systemctl stop firewalld         停止服务
    systemctl restart firewalld     重启服务
    systemctl is-enabled firewalld     查看是否开机启动
    systemctl enable firewalld        设置服务开机自启
    systemctl disable firewalld     禁止服务开机自启
  • 相关阅读:
    [C#]MagicLibrary.dll控件的使用(一)(下拉菜单)
    [SQL server]查询用户表及表结构
    [ASP.net]ASP.net的RUL重写
    [C#]简单XP菜单的实现(一)
    [Javascript]IFRAME运用(1)
    [ASP.net]未解的疑惑!
    [乱七八糟]Google搜索使用详细
    [Javascript]IFRAME运用(2)
    [随文杂记]残局
    [CSS]RevealTrans 滤镜
  • 原文地址:https://www.cnblogs.com/wt645631686/p/8996874.html
Copyright © 2020-2023  润新知