Linux基础命令

目录和文件

  • 切换目录: cd (./当前目录; ../上一级目录; ~根目录)

  • 获取当前路径: pwd

  • 创建目录: mkdir (-p递归创建)

  • 移动或改名目录或文件: mv

  • 复制目录或文件: cp (-r递归复制)

  • 同步文件(支持远程同步): rsync -av ./ user@ip:/home/project (-a递归并同步元信息; -v同步结果输出到终端)

  • 删除目录或文件: rm -rf

  • 列出目录内容: ls (-a查看隐藏文件; ll文件具体信息; -h人类可读方式显示文件大小)

  • 查看目录大小: du (-s不显示子目录和子文件; -h人类可读方式)

  • 创建或编辑文件: vim (i编辑模式; Esc命令模式 :wq保存并退出, :cq不保存并退出, :nohl取消高亮, :%s///g全局替换)

  • 查看文件:

    • less (-S内容不转行; /pattern搜索匹配模式的内容; q退出查看)

    • more (q退出查看)

  • 打印文件:

    • cat (-A打印文件分隔符)

    • zcat (打印或解压gz文件)

    • 合并文件: cat file1 file2 > mergefile

    • head -n (打印文件前n行)

    • tail -n (打印文件倒数n行; -f实时打印内容)

  • 压缩与解压文件:

    • gz文件: gzip (压缩) gzip -d/gunzip/zcat (解压)

    • tar.gz文件: tar -zcf (压缩) tar -zxf (解压)

    • zip文件: zip (压缩) unzip (解压)

  • 修改目录或文件权限: chmod (-R递归处理; r=4,w=2,x=1)

  • 修改目录或文件的所有者: chown owner:group directory/file (-R递归处理)

  • 统计文件行数: wc -l (压缩文件不能直接统计)

  • 文件内容排序: sort (-n按数值排序; -r降序; -u输出重复行的第一行; -t指定分隔符; -k指定排序的字段)

  • 文件内容去重: uniq (去除连续的重复行; -u保留唯一)

  • 选取文件指定列内容: cut (-d指定分隔符; -f选取列)

  • 搜素文件指定内容: grep 'pattern' (-v搜索内容取反; -E “A|B”匹配多个关键字)

  • 编辑文件内容: sed 's///g' (-i直接修改原文件; s替换; g全局)

  • awk: awk '' (-F指定文件分隔符,默认是空格)

  • 多命令组合:

    • 管道符: |

    • xargs (-d指定分隔符; -i指定{}代表传过来的参数; -I指定其他符号代表传过来的参数)

  • 创建文件软链接: ln -s /opt/python/bin/python3.9 /usr/bin/python3 (与添加到环境变量的功能类似)

其他

  • 查看历史命令: history

  • 下载: wget(-O下载保存文件名; 下载链接中有特殊字符需要将链接用””) axel(多线程下载; -n连接数)

  • 文件完整性检测: md5sum -c md5.txt

  • 查看磁盘空间大小: df (-h以人类可读方式)

  • 任务提交到后台: nohup command 1>out 2>&1 & (nohup不挂断; &后台运行; &1追加到1里)

  • 查看进程: ps (-e所有终端进程; -f完整命令)

  • 查看进程占用端口: netstat -ntulp/netstat -apn

  • 终止进程: kill PID

  • 系统资源占用情况: top / htop (q退出)

  • 查看系统版本信息: less /proc/version

  • 查看系统性能: less /proc/cpuinfo

  • 查看或修改系统时区/时间:

    • 查看时区: date -R/timedatectl status

    • 修改时区: timedatectl set-timezone "Asia/Shanghai"

    • 查看/修改时间: date (-s修改时间)

    • 系统时间写入CMOS: clock -w

  • 环境变量:

    • 用户级别环境变量文件: ~/.bashrc ~/.bash_profile

    • 系统级别环境变量文件: /etc/bashrc /etc/bash_profile

    • 添加环境变量: export PATH=$PATH:/opt/R/bin

    • 环境变量文件修改后生效: source /etc/bashrc

  • 服务设为系统服务并开机自启:

    • 拷贝服务: cp /opt/mysql/support-files/mysql.server /etc/init.d

    • 添加为系统服务: chkconfig --add mysql.server

    • 设置为开机自启: chkconfig mysql.server on

  • 开机自动执行命令: vim /etc/rc.local (添加需要执行的命令, eg. java -jar /opt/software.jar 1>/opt/test.log 2>&1 &)

  • 用户相关:

    • 创建用户: sudo useradd -u 1001 username -m -d /home/username -G group -s /bin/bash (sudo可以执行root权限的命令)

    • 修改密码: sudo passwd username (为用户修改密码) passwd (修改当前用户密码)

  • 远程登录:

    • 登录: ssh username@ip -p port (该命令也可以在Windows下的cmd中使用)

    • 免密登录: ssh-keygen (生成钥匙) ssh-copy-id username@ip -p port (远程机器记住公钥)

    • 推出登录: exit

    • 配置登录别名:

      1
      2
      3
      4
      5
      6
      vim ~/.ssh/config
      Host wk
      HostName ip
      User username
      Port 22
      ssh wk # 通过别名wk直接登录
  • 终端复用器tmux:

    • 创建一个会话: tmuxtmux new -s session
    • 查看所有会话: tmux ls
    • 分离会话: tmux detach / exit 或 ctrl + b -> d (ctrl + d关闭并删除当前会话)
    • 连接会话: tmux attach -t session
    • 切换会话: tmux switch -t session
    • 杀死会话: tmux kill-session -t session
  • 升级Ubuntu:

    1
    2
    3
    4
    5
    6
    7
    sudo apt update
    sudo upgrade -y
    sudo dist-upgrade -y
    sudo reboot
    sudo apt install update-manager-core
    sudo do-release-upgrade -d
    lsb_release -a # 查看版本
Author: Giftbear
Link: https://giftbear.github.io/2021/11/30/Linux基础命令/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.