去年学习 python 基础课时包含的 linux 基础课程笔记
记得很简略基本上只有自己看得懂。。
一、操作系统与 Linux#
1. Operating System#
1)操作硬件
2)将操作硬件的方法封装为系统调用
1.1 操作系统分类#
- 桌面操作系统
- 服务器操作系统
- 嵌入式操作系统
- 移动设备操作系统
2. 操作系统发展史#
2.1 Unix#
星际旅行
BCPL->B 语言 ->C 语言
Unix
多用户
2.2 Linux#
在 minix 基础上
内核
2.3 Linux 内核与发行版#
增加了终端命令
内核是封装好的系统调用
发行版是在内核基础上开发的一套应用程序
2.4 Linux 文件系统#
win 盘符
因为 xp 之前都是单用户
linux
home 下放着各个用户的文件夹
etc 系统配置文件
bin 可执行二进制文件
home 用户目录
二、Linux 终端命令#
掌握常用的十几个即可,不常用的查表
ctrl +/- 放大终端字体
1. 最常见的 7 个命令:#
- ls list 查看当前文件夹下的内容
- pwd print work directoty 查看当前文件夹
- cd change directory 切换文件夹
- touch touch 如果文件不存在则新建文件
- mkdir make directory 创建目录
- rm remove 删除文件
- clear 清屏
2. 终端命令格式#
command [-option][parameter]
rm -r 文件夹
3. 查阅命令帮助信息#
两种方式
command --help
man command
空格 翻页
回车 下一行
b 回滚一页
f 翻页
q 退出
(command 为对应命令)
4. 文件和目录常用命令#
ls cd touch rm mkdir
tab 自动补全文件名 如果有其他选择,再按一次,系统会提示可能命令
上下可以切换至以前的命令
ctrl c 直接回到最下
拷贝和移动
tree cp mv
查看文件内容
cat more grep
1) ls#
. 开头为隐藏文件 ls 需要 - a (all)
如果需要创建隐藏文件,只需要加.
. 当前目录
.. 上级目录
ls -a 显示全部文件
ls -l 列表方式显示文件全部信息
ls -h 配合 - l 人性化显示文件大小
drwxr-xr-x 4 kanikig kanikig 4096 5 月 19 18:02 AppWebCache
drwxr-xr-x 3 kanikig kanikig 4096 6 月 16 22:55 Audio
drwxr-xr-x 2 kanikig kanikig 4096 5 月 18 18:13 CloudRes
-rw-r--r-- 1 kanikig kanikig 33280 5 月 26 15:05 CustomFace.db
-rw-r--r-- 1 kanikig kanikig 494509 7 月 9 14:01 CustomFace.dbc
-rw-r--r-- 1 kanikig kanikig 132096 7 月 9 14:01 DingDongStorage.db
-rw-r--r-- 1 kanikig kanikig 0 5 月 18 18:08 DingDongStorage.db-journal
-rw-r--r-- 1 kanikig kanikig 25600 7 月 9 14:01 DocImport.db
d 代表目录
ls -l -h
文件大小更直观
drwxr-xr-x 4 kanikig kanikig 4.0K 5 月 19 18:02 AppWebCache
drwxr-xr-x 3 kanikig kanikig 4.0K 6 月 16 22:55 Audio
drwxr-xr-x 2 kanikig kanikig 4.0K 5 月 18 18:13 CloudRes
-rw-r--r-- 1 kanikig kanikig 33K 5 月 26 15:05 CustomFace.db
-rw-r--r-- 1 kanikig kanikig 483K 7 月 9 14:01 CustomFace.dbc
选项可以连写 如
ls -alh
ls 与通配符
- 任意字符串
? 任意字符
[] 匹配字符组任意一个 [1-9] [abc]
如 ls m* 找 m 开头的
2) cd#
常用参数
cd 直接回家
或者加波浪号~直接返回家目录
cd - 在最近两次目录切换
相对路径
绝对路径 / 或者~开头
3) touch#
如果已经存在,则修改日期更新
4) mkdir#
-p 连续创建目录
mkdir -p a/b/c/d
(linux 一个目录下 文件夹和文件也不可重名)
5) rm#
-f 强制删除
-r 递归删除
同样可使用通配符
6) tree#
树状图列出文件系统
-d 只显示目录
7) cp#
cd 源文件 目标文件
文本编辑器 ctrl s 快速保存
后面可以指定文件名
不改的话可以只写目录
-i 覆盖文件前提示
-r 递归复制整个文件夹
8) mv#
mv 源文件 目标文件
-i 覆盖前提示
9) cat#
concatenate
查看文件内容
-b 对非空输出行编号
-n 对全部输出行编号
10) more#
分页显示
用来查看大文件
操作快捷键和 man 一样
11) grep#
强大的文本搜索工具
-n 显示行号
-v 不包含文本内容的行(求反
-i 忽略大小写
模式查找
^asdasd 行开头匹配
asdasd$ 行尾匹配
12) echo#
在终端输出
重定向:把本应该在终端输出的内容输出到文件里
'>' 输出到文件(覆盖)
'>>' 追加
\ 就是换行
不仅可以用与 echo
ls 也可重定向
ls -lh >>a
13) |#
管道
一个命令的输出通过管道作为另一个命令的输入
ls -lha | more 分页显示
ls -lha | grep ds 筛选输出
三、远程管理#
1.shutdown#
shutdown 选项 时间
默认是一分钟后关机
now 立即重启
shutdown 20:25
shutdown +10 十分钟后关机
-r 重启
2. 查看配置网卡#
网卡
负责网络通讯的硬件设备
ip 地址是设置在网卡上的地址信息
ifconfig 查看 / 配置网卡信息
ping 测试连接是否正常
ifconfig | grep inet 快速看 ip
一个物理网卡和多个虚拟网卡
物理网卡 ens..
ping
ctrl c 停止
3. 远程登录和复制#
1) ssh#
Secure Shell
域名 ip 地址别名
端口号 通过端口号可以找到计算机运行的应用程序
ssh 端口号默认 22 可缺省
ftp 21
web 服务器 80
ssh [-p port] user@remote
remote 为远程 ip
port 默认 22
exit 退出登录
2) scp#
远程拷贝文件
从远程下到本地 scp -P (大写!) 22 源文件 user@remote: 目标文件
从本地传到远程 scp user@remote: 源文件 目标文件
-r 传送文件夹
-P 指定端口
3) ssh 高级#
免密码登录
配置别名
ssh 的配置信息都在.ssh 下
免密码登录:
本地 .ssh 目录下执行 ssh-keygen 一路回车 生成两个文件 (公钥,私钥)
然后 ssh-copy-id [-p] user@remote 会把一个授权文件传到服务器的.ssh 下
非对称加密算法
使用公钥加密的数据,需要用私钥解密
用私钥加密的数据,用公钥解密
在本地通过私钥加密数据,在服务器的公钥对数据解密
配置别名:
在.ssh 下创建 config 文件
在其中写入
Host h1
HostName 202.182.115.91
User root
Port 22
四、用户与权限#
用户与权限的概念
用户管理
组管理
修改权限
1. 用户与权限#
读 r 4
写 w 2
执行 x 1
用户组
1)#
权限 用户 组
drwxr-xr-x 3 kanikig kanikig 4.0K 5 月 18 16:45 Music
drwxr-xr-x 2 kanikig kanikig 4.0K 5 月 18 22:17 Pictures
drwxr-xr-x 3 kanikig kanikig 4.0K 7 月 8 22:58 PycharmProjects
-rw-r--r-- 1 kanikig kanikig 485 7 月 11 15:39 shadowsocks.json
-rw-r--r-- 1 kanikig kanikig 485 7 月 11 15:25 shadowsocs.json
-rw-r--r-- 1 kanikig kanikig 0 5 月 18 16:44 stale_outputs_checked
drwxr-xr-x 2 kanikig kanikig 4.0K 5 月 18 14:25 Videos
硬链接数 有多少种方式能够访问一个文件或目录
文件一般是 1 即绝对路径
文件夹 2 或以上 因为可以 cd. 或者从子目录 cd..(这里可以无数个)
所以硬链接数可以判断子目录个数
第一列 文件或文件夹
之后每 3 个字符一组
第一组 文件或目录的拥有者
第二组 用户组的权限
第三组 其他用户
2) chmod#
修改文件或目录权限
changemod
chmod +/-rwx 文件或目录
对于目录 可读是阅读目录内容 可写是修改目录内容 可执行是在目录下执行终端命令
3)root#
sudo
substitute user do
5 分钟有效期限
2. 组管理#
groupadd 组名
groupdel 组名
cat /etc/group 确认组信息
chagrp -R 组名 文件 / 目录 修改文件目录所属的组
3. 用户管理#
useradd -m -g 组 用户名
-m 自动建立用户目录
-g 指定用户的组,否则自动建立一个同名组
passwd 设置用户密码
userdel -r 用户名
-r 删除用户家目录
cat /etc/passwd | grep 用户名 确认用户信息
passwd 文件
1 用户名
2 密码 x
3uid
4gid
5 用户全名
6 家目录
7 登录使用的 shell
查看用户信息
id 用户名 查看用户 id 和组 id
who 查看当前登录的用户列表
whoami 查看当前登录的用户名
usermod
设置用户主组、附加组和登录 shell
主组 建立用户时指定的组
附加组 指定附加组
usermod -g 组 用户名 修改用户主组
usermod -G 组 用户名 修改附加组
usermod -s /bin/bash 修改 shell
usermod -G sudo 用户名 将用户添加到 sudo
shell 输入终端命令的软件
dash
bash
which
查看执行命令的所在位置
/etc/passwd 保存用户信息
/usr/bin/passwd 修改密码的程序
su 用户名 切换用户
exit 退出
4. 修改文件权限#
chown 修改拥有者
chagrp 修改组
chmod 修改权限
chown 用户名 文件或目录
chgrp -R 组名 文件或目录
chmod -R 755 文件或目录
7 拥有者的权限
5 组成员权限
5 其他用户权限
r=4
w=2
x=1
所以可以推测
五、系统信息#
1. 时间日期#
cal 本月日历 -y 一年的日历
date 当前系统时间
2. 磁盘信息#
df -h disk free 显示磁盘剩余空间
du -h [目录名] 查看目录的占用空间
3. 进程信息#
进程:当前正在执行的程序
ps aux process status 查看进程详细情况
top 动态显示进程并排序 q 退出
kill [-9] 进程代号 -9 强行停止
ps 默认只能看到终端启动的程序
a 所有用户的进程
u 显示进程详细状态
x 显示没有控制终端的进程
最好不要 kill root 的进程
4. 其他命令#
- find 查找文件
- ln 软连接 (相当于快捷方式)
- tar 打包压缩
- apt-get 软件安装
find [路径] -name “*.py”
ln -s 源文件 链接文件
源文件要用绝对路径
如果没有 - s 会创建一个硬链接
对于软连接,如果源文件被移动或删除,则会失效,硬链接不会
硬链接:
linux 中,文件名和文件数据是分开存储的
通过文件名访问数据
而硬链接是和文件名等价的,直接访问数据,相当于别名
软连接是通过软连接文件数据,访问源文件的文件名,间接访问数据
日常基本不会建立硬链接
硬链接数为 0 时,文件的数据才会删除
5. 打包压缩#
linux 常用 tar.gz
tar 只是打包,不压缩
tar -cvf 打包文件.tar 被打包文件 / 路径 打包
tar -xvf 打包文件.tar 解包
-v 列出打包详细过程
-f 指定文件名(f 必须放最后)
gzip
压缩打包后的文件
tar -zcvf 打包文件.tar.gz 被压缩文件
tar -zxvf 打包文件.tar.gz 解压缩
tar -zxvf 打包文件.tar.gz -C 目标路径 解压到指定路径
bzip2(two)
tar.bz2
在选项最前加 - j
6.apt#
advanced packaging tool
sudo apt install 软件包
sudo apt remove 软件包
sudo apt upgrade 更新软件包
sl 小火车
htop top 的升级版
linuxlogo
screenfetch
让终端变得有意思
在终端输入 sudo visudo
在 “Defaults” 末尾(文件的前半部分)添加一行 “Defaults insults”。
保存
之后当你使用 sudo,在输入密码的时候,如果输入错误了,那么终端开始胡说八道了
cmatrix 黑客帝国
rev 逆序输出 一般用于管道后
lolcat 彩色输出
cowsay 一头牛说出输出结果
aptitude moo 也是一头牛,但是是用来玩的
fortune 随机输出一段话 -zh 输出中国诗
toilet 打印出大字母
figlet 同上
aafire 这个会在屏幕上显示除一团燃烧着的火焰 sudo apt install libaa-bin
oneko 一只小猫追着鼠标跑
factor 分解质因数
espeak 朗读
fork 炸弹。。指数自乘直到占用所有系统资源
bb 一个不太一样的播放器
ASCIIquarium 水族馆