我该如何进行Linux的学习
实践是最好的老师,搭建自己的Ubuntu虚拟机,亲自使用体验bash命令与Linux系统
互动与实战网站
- Linux Journey适合新手的网站
- OverTheWire:Bandit闯关游戏
- Cisco Networking Academy约8小时的入门课程
书籍
《The Linux Command Line》
《鸟哥的Linux私房菜》
视频教程
YouTube:LearnLinuxTV
Coursera:IntroductionToLinux
Staging与Production的区别
Staging(预发布/测试环境) 和 Production(生产/正式环境) 是指文件所处的运行环境和生命周期阶段。
Staging(预发布文件)
Staging是生产环境的一个“镜像”或“近似副本”。
- 作用:
- 深度测试: 测试与正式环境几乎相同的配置下,新功能是否会崩溃
- 风险规避: 检验配置是否有错误,避免正式上线后导致系统瘫痪
- 性能压力测试: 模拟大量用户访问,测试服务器性能
- 存放内容: 即将发布的源码、新的配置文件、脚本等
Peoduction文件(生产文件)
Production是最终用户访问和业务实际运行的环境
- 作用:
- 对外服务: 提供稳定可靠的业务输出
- 数据产出: 产生真实的业务数据和日志
- 特点:
- 高稳定性: 除非经过严格测试,否则禁止在生产环境直接修改文件
- 严格权限: 只有少数系统管理员有写权限,防止误操作
cp命令目标路径分析
命令cp src ~/backup会进行什么操作?
- 若
backup是文件,则覆盖backup文件内容 - 若
backup是目录,则src存入目录,其路径变为~/backup/src - 若
backup不存在,则创建名为backup的新文件
可以使用cp -t ~/bacup src,强制要求backup必须存在且为目录,否则报错
避免mv命令重命名操作误执行为移动
命令mv a b将文件a重名为b,但如果b是目录的话,a将会进行移动操作且不报错
mv -T a b,若b是目录,报错mv -i a b,若b已存在,暂停并询问是否覆盖mv -n a b,若b已存在,直接跳过,不执行操作
若误操作将a移动至b目录下,可使用这个命令find b/a -mindepth 1 -maxdepth 1 -exec mv -t ./ {} +
逻辑:在b/a中找到深度为1的内容,并移动到当前目录
~与/目录的区别
- 根目录
/是最基础的目录,在一切文件之上 - 家目录
~是某个用户的个人目录,通常指向当前用户- 它的完整路径是
/home/username - 当输入
cd ~时,实际是cd /home/username
- 它的完整路径是
以/开头,绝对路径,需要完整路径,可以前往其他地方
不以/开头,相对路径,从“当前所在位置”开始查找
例:若当前所在位置为~,执行cd tmp将会报错,因为~下没有tmp
正确命令应为:cd /tmp
.的作用
- 执行当前目录下的程序,执行当前目录下的脚本
hello.sh不能直接输入文件名,而应该是./hello.sh - 作为命令的目的地,从别处复制文件到当前目录,
cp /etc/fstab .,还有解压时也会用到 - 消除歧义,路径符
./表明这是路径,其后面的是文件名,而非其他东西 - 搜索命令的起点,使
find只从当前目录开始查找
总结:.表示“当前目录”
tips:cd ~去家目录,cd /去根目录,cd ..去上级目录,cd -去刚才的目录
修改主机名
- 查看当前主机名:
hostnamectl - 修改主机名:
sudo hostnamectl set-hostname new-hostname - 编辑hosts文件:
sudo vim /etc/hosts,修改或添加下面两行:
1 | 127.0.0.1 localhost |
vim的基本操作
1 | # 检查是否有vim |
1 | # 1. 使用vim打开文件 |
useradd中的-b、-d、-m
-d, --home-dir:指定具体目录,需要提供绝对路径useradd -d /custom/path/my_king king家目录为:/custon/path/my_king
-b, --base-dir:指定基础前缀,自动在前缀后加用户名useradd -b /custom/path king家目录为:/custom/path/king
-m, --create-home:生成目录,并将其指定为用户家目录-m的作用为:mkdir -p 最终家目录路径+cp /etc/skel/* 最终家目录路径
具体示例如下:
- 默认创建
useradd -m king
在/home/king创建文件夹并创建用户 - 改变基础位置
useradd -b /date -m king
在/data/king创建文件夹并创建用户 - 完全自定义位置
useradd -d /var/www/king -m king
在/var/www/king创建文件夹并创建用户
文件的特殊权限位
4= Set User ID2= Set Group ID1= Sticky Bit(粘滞位)
SUID通常作用于可执行文件,令普通用户执行程序时临时获得文件所有者的权限
例如:使用passwd命令可以使普通用户获得root权限去修改/etc/shadow文件
SGID通常作用于目录,任何人在该目录下创建的新文件或子目录,都会自动继承父目录的所属组
例如:跨部门协作时,无需修改用户所属组,也能保证其他组成员创建的文件能有权访问
StickyBit作用于目录,禁止文件所有者外的其他用户删除或重命名,即使其他人有写权限
例如:/tmp目录,所有用户都能往里存入临时文件,但没人能删掉别人的临时文件
用数字表示权限,则显示为四位数字,第一位数字代表特殊权限
用字母表示权限,则如下所示:
- 4:
rwsrwxrwx,开头s - 2:
rwxrwsrwx,中间s - 1:
rwxrwxrwt,末尾t
如果s和t显示为大写,则说明原先并没有执行权限,是强行加了特殊权限,通常意味着配置没有作用。(比如给不可执行的文件加SUID是没有意义的)
tips:特殊权限也可像普通权限一样进行组合,例如3770,即rwxrws--t