Linux 文件权限
1 2 chmod [选项] 用户属性+权限属性 文件名
用户 1 2 3 4 5 6 7 8 9 10 whoami who users w tty
系统信息 1 2 3 4 5 6 7 8 uname uname -nuname -iuname -a
时间/日历 1 2 3 4 date date "+%Y-%m-%d %H:%M:%S"
1 2 3 4 5 6 sudo apt install bsdmainutils cal cal 12 2024
切换用户 1 2 3 4 5 6 7 8 sudo passwd root su root su - root su - user
whatis - 从系统的man手册数据库中提取命令/函数的一句话简介 1 2 3 4 whatis ls whatis mkdir passwd
help - 查询 Bash Shell 内置命令的帮助
man - 系统的命令/工具 手册页
翻页:PageUp/PageDown 或 Ctrl+F(下翻)/Ctrl+B(上翻)
退出:按 q 键
搜索:/关键词(向下搜)、?关键词(向上搜),按 n 继续下一个结果
info - 命令的结构化 文档
进入子节点:按 Enter(点击带有 * 或 [...] 的节点名称)
返回上一级节点:按 u
查看目录(所有节点):按 d
搜索关键词:按 s 输入关键词
退出:按 q 键
1 2 3 4 5 6 info info info info ls
echo - 显示一行文本 1 2 echo 'The shirt costs $23.50.'
1 2 3 4 5 6 echo $USER echo $HOME echo $PATH
printf - 格式化并打印数据 1 2 3 4 printf 'Hello, World!' printf 'Hello, World!\n'
touch - 新建文件 1 2 3 4 5 6 touch 1.txttouch 1.txt 2.md 3.pytouch -t 202509230830 1.txt
file - 查看文件类型 1 2 3 4 5 6 7 8 file 1.txt file 1.txt 2.md 3.py file /bin/ls file archive.tar.gz
gedit - 图形化文本编辑器
1 2 3 4 5 sudo apt install gedit gedit 1.txt &
vim - 终端式文本编辑器
打开后,默认在 命令模式 ,先按 i 进入 插入模式 以输入。
输入完后,按 Esc 返回命令模式。
输入 :wq 保存并退出。
1 2 3 4 sudo apt install vim vim 1.py
cat - 合并/合并显示文件内容 1 2 3 4 cat 1.txt 2.txtcat 1.txt 2.txt > all.txt
Ubuntu 系统软件源 位置 1 2 3 4 /etc/apt/sources.list /etc/apt/sources.list.d/ubuntu.sources
more - 一页一页显示大文件
less - 更强大的分页显示
上下方向键 翻页,支持搜索(输入 /关键词),用 q 退出
head - 显示文件开头几行
tail - 显示文件结尾几行
grep - 在文件中搜索关键词 1 2 3 4 grep "xx" 1.txt grep -n "xx" 1.txt
find - 查找文件 1 2 3 4 5 6 7 touch main1.txt main2.py main_test.txtecho "This is main1" > main1.txtecho "print('hello from main2')" > main2.pyecho "main file test" > main_test.txtfind . -type f -name "main*"
diff - 比较文件
例:
1c1:表明 1.txt 的第1行 和 2.txt 的第1行不同。
< 表示左边文件(1.txt)的内容
> 表示右边文件(2.txt)的内容
cat - 显示文件内容
sort - 显示排序后的文件内容
wc - 统计文件信息 1 2 3 4 5 6 7 8 wc -l 1.txtwc -w 1.txtwc -c 1.txtwc 1.txt
cp - 复制
mkdir - 创建文件夹
mv - 移动
ls - 列出当前目录相关内容
rmdir - 删除文件夹
pwd - 显示当前所在的绝对路径
chmod - 修改用户对文件的权限
用户 :
user - 文件拥有者
group - 用户组
others - 其他人
文件权限 :
r - read - 可读 - 4
w - write - 可写 - 2
x - execute - 可执行 - 1
1 2 3 4 5 6 chmod u+rwx g+rx o+x 1.txtchmod u=rwx g=rx o=x 1.txtchmod 751 1.txt
umask - 设置文件默认权限
User File Creation Mask (用户文件创建屏蔽码),它决定了当你 新建文件或目录时默认的权限 。
Linux 创建文件/目录的默认权限:
普通文件:666(rw-rw-rw-)
目录:777(rwxrwxrwx)
例:输入 umask 输出 0022,意味着屏蔽了组和其他用户的写权限。
永久设置 umask
作用范围
修改文件
当前用户
~/.bashrc 或 ~/.profile
全局生效
/etc/profile 或 /etc/bash.bashrc
添加一行:
保存后执行:
tar - 归档
用户(组)信息管理与用户(组)的增删 1. 用户信息文件 /etc/passwd
1 2 3 4 root:x:0:0:root:/root:/bin/bash user1:x:1001:1001::/home/user1:/bin/bash
/etc/passwd 文件的每一行共有7个字段,以冒号:为分隔,含义如下:
字段位置
字段名称
示例值
含义
1
用户名
user1
登录系统时使用的用户名
2
密码占位符
x
表示密码已加密存储在 /etc/shadow 文件中
3
UID
1001
用户 ID(0 为 root,普通用户从 1000 起)
4
GID
1001
用户所属主群组的 ID
5
用户说明
(空)
可存放用户描述或备注
6
主目录
/home/user1
用户登录后的默认目录
7
登录 Shell
/bin/bash
用户登录后使用的命令解释器
2. 用户密码信息文件 /etc/shadow
1 2 3 root:$6$8cFp9b ...$FHYyADw ...:19931:0:99999:7::: user1:$6$ABc123 ...$xyZpQe ...:19931:0:99999:7:::
/etc/shadow 文件的每一行包含9个字段,以冒号:为分隔,含义如下:
字段位置
含义
示例值
说明
1
用户名
user1
与 /etc/passwd 对应
2
加密密码
$6$ABc123…
$6$ 表示使用 SHA-512 加密算法
3
上次修改密码的日期
19931
从1970-01-01起的天数
4
最短改密间隔
0
多少天后才能修改密码
5
最长改密间隔
99999
密码最长有效天数
6
提前警告天数
7
密码过期前几天开始警告
7
账号不活动天数
(空)
过期后多少天禁用账号
8
账号失效日期
(空)
从1970起的天数,表示账号失效时间
9
保留
(空)
暂未使用
用户 - 增删改查 增加用户 - useradd/adduser 1 2 3 sudo useradd -m usera sudo passwd usera
删除用户 - userdel/deluser 1 2 3 4 sudo userdel -r userc sudo deluser userb --remove-home
修改用户信息 - usermod 1 2 3 4 5 6 sudo usermod -l userc usera sudo usermod -g sudo userb sudo usermod -aG adm userb
id - 显示用户的 ID、GID以及所属的用户组信息 1 2 3 4 5 6 7 id userbuid=1002(userb) gid=27(sudo) groups =27(sudo),4(adm)
检验用户数据 1 2 3 4 cat /etc/passwdls /home/
3. 用户组信息文件 /etc/group
/etc/group 文件的每一行有4个字段,以冒号:分隔
字段位置
字段名称
示例值
含义
1
组名
testgroup
群组名称
2
密码占位符
x
表示加密密码存储在 /etc/gshadow 文件中
3
GID
1002
群组 ID
4
组成员
user1,user2
属于该组的用户列表(多个用户以逗号分隔)
4. 用户组密码信息文件 /etc/gshadow
1 2 3 4 root:*:: sudo:*:: testgroup:!:user1,user2:
以 testgroup:!:user1,user2: 为例,/etc/gshadow 文件每行包含 4 个字段 ,含义如下:
字段位置
字段名称
示例值
含义
1
组名
testgroup
群组名称,与 /etc/group 对应
2
密码
!
表示群组无密码(通常为空或!)
3
组管理员
user1,user2
有权管理该组的用户
4
组成员
(空)
组中普通成员列表
用户组 增删改查 1 2 3 4 5 6 7 8 9 10 sudo groupadd xxx sudo groupdel xxx sudo groupmod -n yyy xxx sudo groupmod -g 1200 xxx cat /etc/group
1 2 3 4 5 6 sudo usermod -aG xxx user1 id user1uid=1001(user1) gid=1001(user1) groups =1001(user1),1200(xxx)
文件所属群组修改 1 2 3 4 5 6 7 8 9 10 touch testfile.txtls -l testfile.txt-rw-r--r-- 1 user1 user1 0 Oct 11 09:00 testfile.txt sudo chgrp xxx testfile.txt -rw-r--r-- 1 user1 xxx 0 Oct 11 09:05 testfile.txt
磁盘管理 1.添加虚拟硬盘
关机状态下,在 VMware - 虚拟机管理中添加一块新的虚拟硬盘,大小10GB
启动系统
1 2 sudo apt install util-linux lsblk
新磁盘显示为 /dev/sdb
2.使用 fdisk 工具对新磁盘进行分区
1 2 3 4 5 6 7 8 9 10 11 12 13 14 sudo fdisk /dev/sdb n p 1 回车 +5G n p 2 回车 回车 w
3.重新读取分区表
1 2 sudo partprobe /dev/sdb lsblk
1 2 3 sudo mkfs.ext4 /dev/sdb1 sudo mkfs.ext4 /dev/sdb2
1 2 3 4 5 6 7 sudo mkdir /web /data sudo mount /dev/sdb1 /web sudo mount /dev/sdb2 /data mount | grep sdb
1 2 3 4 5 6 7 sudo nano /ect/fstab UUID=af34b98d-8f38-438c-8a4c-1d4d6c917361 /web ext4 defaults 0 0 UUID=cac848c8-1a2d-4501-9739-91fd55ead002 /data ext4 defaults 0 0 sudo mount -a
无误后重启系统,验证是否挂载:
设置磁盘配额并测试
1 2 3 4 5 6 7 8 9 10 sudo nano /etc/fstab UUID=af34b98d-8f38-438c-8a4c-1d4d6c917361 /web ext4 defaults 0 0 UUID=cac848c8-1a2d-4501-9739-91fd55ead002 /data ext4 defaults,usrquota 0 0 sudo mount -o remount /data mount | grep data
建立配额数据库文件并启动配额功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 cd /datasudo apt insatll quota sudo quotacheck -cum /data -c:创建新的配额文件。 -u:为用户启用配额。 -m:忽略挂载点的只读标志 ls -l /data | grep quotasudo quotaon /data sudo repquota /data
Linux 编程
1 2 3 4 5 6 gcc xxx.c -o xxx ./xxx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sudo apt update sudo apt install libsdl1.2-dev sudo apt install libsdl-image1.2-dev sudo apt install libsdl-ttf2.0-dev sudo apt install libsdl-draw1.2-dev sdl-config --version dpkg -l | grep libsdl-image
1 2 3 4 5 6 sdl-config --cflags cd /usr/include/SDLls -l SDL.h SDL_video.h SDL_surface.h SDL_events.h SDL_draw.h