Linux常用指令

查内存,CPU,硬盘

1
free -h
1
cat /proc/meminfo
1
lscpu
1
top
1
df -h

查看全部用户

1
cat /etc/passwd
1
echo ~fleming

区分系统和普通用户

  • 系统用户:UID < 1000(不同发行版可能略有不同,如 Ubuntu 从 1000 开始,RHEL/CentOS 从 500 或 1000 开始)
  • 普通用户:UID ≥ 1000

    查看普通用户(UID ≥ 1000):

    1
    awk -F: '$3 >= 1000 {print $1}' /etc/passwd

    查看系统用户(UID < 1000):

    1
    awk -F: '$3 < 1000 {print $1}' /etc/passwd

删除用户

1
sudo userdel -r <name>

将用户加入到某个组

1
sudo usermod -aG docker fleming
  • 刷新组权限newgrp docker

查看有sudo权限的用户

1
sudo cat /etc/sudoers
1
getent group sudo

注销当前用户

1
gnome-session-quit --logout --no-prompt
  • 强制终止所有属于当前用户的会话
    1
    loginctl terminate-user $USER

赋权限

  • 目录所属权限
    1
    sudo chown -R fleming:fleming <path>
  • 目录读写执行权限
    1
    sudo chmod 755 <path>
  • 可执行文件
    1
    sudo chmod +x *.sh

打印PATH环境变量

1
echo $PATH | tr ':' '\n'

打印目录结构

1
tree /path/to/target

不解压,先查看压缩包内容

1
tar -ztvf app.tar.gz

压缩文件或者目录

1
tar -czf example.tar.gz file1 file2 dir1

解压缩tar

1
2
3
mkdir -p /opt/myapp/
tar -xvf example.tar -C /opt/myapp/
tar -xzf example.tar.gz -C /opt/myapp/

解压缩zip

1
2
3
mkdir -p /opt/android-ndk
unzip ~/Downloads/android-ndk-r25c-linux.zip -d /opt/android-ndk
ls /opt/android-ndk

创建文件及文件夹

1
2
3
4
5
touch file #单个
touch file1 file2 file3 #多个

mkdir path #单级
mkdir -p path #多级

查看当前路径及大小

1
2
3
4
5
6
7
cd path
pwd

du -sh <目录或文件名>
du -sh ./*
du -sh ./* | sort -h # -h 升序 -n 降序
du -h --max-depth=1 # 仅看下一级

查看硬盘类型, 1机械 0固态

1
lsblk -d -o name,rota

查找某个文件

1
sudo find /path/to/search -name "filename"
  • 找到并删除
    1
    sudo find /path/to/search -type f -name "example.txt" -exec rm {} \;

查找某个字符串

1
grep -r "PRODUCT_DEX_PREOPT" .

使用 find 和 grep 组合

  • 查找所有 .mk 文件中的 PRODUCT_DEX_PREOPT
    1
    find . -name "*.mk" | xargs grep "PRODUCT_DEX_PREOPT"