去年学习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 水族馆