目录索引

. 当前目录

.. 上一级目录

~ 用户主目录(绝对路径)

cd xx/xxx/xx 切换目录

pwd 查看用户当前目录

基本命令

  • ps 观察正在执行的shell

  • ls 显示文件或目录信息(-la查看全部文件)

  • mkdir 当前目录下创建空目录

  • rm 删除文件或目录

  • cat 查看文件内容

  • gzip filename 压缩文件

  • gzip -d filename.gz 解压文件

  • tar 解压

    -c:建立压缩档案
    -x:解压
    -t:查看内容
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件

    这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

    -z:有gzip属性的
    -j:有bz2属性的
    -Z:有compress属性的
    -v:显示所有过程
    -O:将文件解开到标准输出

    -f: 必须的参数,使用档案名字,最后一个参数,后面只能接档案名。

    tar -cf all.tar *.jpg 将所有.jpg的文件打成一个名为all.tar的包。-c表示产生新的包,-f指定包的文件名。

    tar -rf all.tar *.gif 将所有.gif的文件增加到all.tar的包里面去。-r表示增加文件

    tar -uf all.tar logo.gif 更新原来tar包all.tar中logo.gif文件,-u表示更新文件

    tar -tf all.tar 列出all.tar包中所有文件,-t表示列出文件

    tar -xf all.tar 解出all.tar包中所有文件,-x表示解开

压缩
tar –cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg zip格式的压缩,需要先下载zip for linux

解压
tar –xvf file.tar 解压 tar包
tar -xzvf file.tar.gz 解压tar.gz
tar -xjvf file.tar.bz2 解压 tar.bz2
tar –xZvf file.tar.Z 解压tar.Z
unrar e file.rar 解压rar
unzip file.zip 解压zip

总结:
*.tartar –xvf 解压
*.gzgzip -d或者gunzip 解压
.tar.gz.tgztar –xzf 解压
*.bz2bzip2 -d或者用bunzip2 解压
*.tar.bz2tar –xjf 解压
*.Zuncompress 解压
*.tar.Ztar –xZf 解压
*.rarunrar e 解压
*.zipunzip 解压

  • vi & vim

    输入i:插入模式
    esc:普通模式
    输入::命令行模式— q!不保存退出,wq保存退出,q未做修改就退出

  • sed 利用脚本来处理文本文件

  • awk 处理文本文件的语言

自动补全命令:TAB键
历史命令:上下箭头键

shell脚本变量:

显示所有环境变量: env
显示某个变量的值: echo $NAME

快捷键

Linux查看隐藏文件(点开头):Ctrl+H

截屏:PrintScreen

强制退出程序

以pycharm为例,适用于系统显示pycharm正在运行但找不到界面时

终端输入:ps u
会显示系统正在运行的程序的pid是多少,查看pycharm的pid(假如是54281)

再输入:kill -9 54281

此时已经强制结束了pycharm,其余软件同理

如果需要运行pycharm再在终端输入 pycharm.sh

本文参考:

https://blog.csdn.net/imyang2007/article/details/7634470

Linux 用户与用户组管理操作手册

一、 用户管理

1. 查看用户
  • 查看所有可登录用户(拥有 Shell 的用户)

    1
    grep -E ":/bin/(bash|sh|zsh)" /etc/passwd

    示例输出:

    1
    2
    3
    4
    5
    root:x:0:0:root:/root:/bin/bash
    mvb:x:1000:1000:4090-6:/home/mvb:/bin/bash
    smbuser:x:1001:1001::/home/smbuser:/bin/sh
    wuwenjing:x:1002:1002::/home/wuwenjing:/bin/bash
    shaojunjie:x:1003:1004::/home/shaojunjie:/bin/bash
  • 查看当前登录的用户

    1
    who

    示例输出:

    1
    2
    wuwenjing pts/7        2026-05-13 11:44 (tmux(42876).%0)
    mvb pts/13 2026-05-29 10:08 (10.114.78.118)
2. 创建新用户
1
2
3
4
5
6
7
8
# 1. 创建用户并建立home目录,指定默认 shell 为 bash
sudo useradd -m -s /bin/bash <username>

# 2. 设置密码(根据提示输入两遍)
sudo passwd <username>

# 3. 修改用户目录的所有者(如果 user_dir 与 username 不同)
sudo chown -R username:username /home/user_dir
3. 切换用户
1
2
3
4
5
# 切换到指定用户
su - username

# 以其他用户身份执行单条命令
sudo -u username command
4. 删除用户
1
2
# 删除用户及其home目录
sudo userdel -r username

二、 用户组管理与共享文件夹配置

1. 创建共享组并添加用户
1
2
3
4
5
6
# 1. 创建一个共享组
sudo groupadd sharedgroup

# 2. 将现有用户添加到该组(-a 表示追加,-G 指定附加组)
sudo usermod -a -G sharedgroup user1
sudo usermod -a -G sharedgroup user2
2. 配置共享文件夹权限
1
2
3
4
5
6
7
8
# 3. 更改文件夹所属组
sudo chgrp -R sharedgroup /path/to/shared/folder

# 4. 设置文件夹权限(770 表示:所有者rwx,组rwx,其他人无权限)
sudo chmod -R 770 /path/to/shared/folder

# 5. 设置 SGID 位(+s),确保新创建的文件/目录自动继承父目录的组,IMPORTANT:原始的文件/目录没有SGID,要单独设置
sudo chmod g+s /path/to/shared/folder
3. 使用 ACL 细化权限控制(可选)
1
2
3
4
5
6
7
8
9
10
11
# 安装 ACL 工具
sudo apt-get install acl # Ubuntu/Debian
# 或
sudo yum install acl # CentOS/RHEL

# 为目录设置默认 ACL,确保所有新文件/目录自动拥有正确权限
sudo setfacl -R -m g:shared_data:rwx /path/to/shared/folder
sudo setfacl -R -d -m g:shared_data:rwx /path/to/shared/folder

# 查看 ACL 设置
getfacl /path/to/shared/folder

三、 验证与查看方法

1. 查看用户所属组
1
2
groups mvb
# 输出示例: mvb : mvb adm cdrom sudo dip plugdev lxd docker shared_data
2. 查看组内成员
1
2
getent group shared_data
# 输出示例: shared_data:x:1003:wuwenjing,mvb
3. 查看文件夹详细权限
1
ls -ld /home/projects/wwj/

输出解析示例:

1
drwxrwsr-x+ 6 mvb shared_data 4096 Apr 28 14:02 /home/projects/wwj/

  • d:文件类型(目录)
  • rwx(所有者权限):mvb 拥有读、写、执行权限。
  • rws(组权限):
    • rwx 表示 shared_data 组成员拥有读、写、执行权限。
    • 其中的 s 表示 SGID 位已设置。在该目录下新建的文件会自动继承 shared_data 组。
  • r-x(其他用户权限):其他用户只有读和执行权限。

权限的数字表示法:

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • SGID 位用 2000 表示,因此 drwxrwsr-x 的数字权限是 2775
    1
    2
    # 用数字方式设置相同的权限
    sudo chmod 2775 /home/projects/wwj/
4. 查看 ACL 权限
1
getfacl /home/projects/wwj/

示例输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# file: home/projects/wwj/
# owner: mvb
# group: shared_data
# flags: -s-
user::rwx
group::rwx
group:shared_data:rwx # 额外的 ACL 规则
mask::rwx
other::r-x
default:user::rwx # 默认 ACL,新文件继承此权限
default:group::rwx
default:group:shared_data:rwx
default:mask::rwx
default:other::r-x