1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343
| 计算机是由硬件和软件构成的。
硬件的五大部件: - 运算器 -| | - 中央处理器 - 控制器 -| - 存储器 - 内存(RAM) - 输入设备 - 输出设备
软件的两大类别: - 系统软件 - 操作系统(内核+工具程序) - 应用软件
Linux系统的内核是Free的 Linux系统最早的内核是由Linus在1991年开发的
Unix - MINIX - Linux - Android - BSD - FreeBSD - Macintosh - macOS - iOS - AIX(IBM) - HP-UX(HP) - Solaris(SUN)
我们能够接触到的操作系统除了Windows其他系统几乎都是Unix的衍生品 类Unix操作系统
Shell - 壳程序 - 人机交互界面(人和计算机对话的窗口) Shell中的工具和命令
who - 查看登录系统用户的信息 last - 查看最近使用过系统的用户信息
clear - 清除屏幕输出 history - 查看历史命令 !历史命令编号 - 重新执行历史命令
useradd/userdel - 添加/删除用户 passwd - 修改用户口令 su - switch user - 切换用户
logout / exit - 退出登录 reboot / shutdown - 重启 / 关机 write 用户名 - 给指定用户发送消息 mesg y/n - 是否接收别人发送的消息 wall - 给所有人发出广播消息
获得帮助 man - manual - 查看帮助手册 命令 --help - 获得命令的帮助
pwd - print working directory - 打印当前工作目录 cd - change directory - 改变目录 ls - list directory contents - 列出目录内容
mkdir 目录名 - make directory - 创建文件夹 rmdir 目录名 - remove empty directory - 删除空文件夹 touch 文件名 - 创建一个空文件 echo 内容 > 文件名 - 将内容重定向到指定的文件 wget http://www.sohu.com/ - 联网通过URL获取指定文件 rm - 删除文件 rm -rf - 删除文件夹 cp - 拷贝文件或文件夹 mv - 移动文件或文件夹(重命名)
cat - concatenate - 连接文件内容(查看文件) less / more - 分屏查看 head / tail - 查看文件前面/后面的部分 sort - 给文件排序 uniq - 去除相邻的重复内容 | - 管道 - 连接两个进程(命令)- 把前一个进程的输出作为后面一个进程的输入
gzip / gunzip - 压缩/解压缩 xz -z / xz -d - 压缩/解压缩
tar是Linux系统下的归档文件(类似于Windows下的rar文件) 解归档 - tar -xvf 归档文件的名字 归档 - tar -cvf 归档文件的名字 需要归档的文件
grep - 搜索字符串 find - 查找文件
MySQL - 关系型数据库 Redis - NoSQL数据库
CPython - 用C语言实现的Python解释器 Jython - 用Java语言实现的Python解释器 IronPython - 用C#语言实现的Python解释器 PyPy - 用Python语言实现的Python解释器
8bit -------> 1Byte 1024B -------> 1KB 1024KB -------> 1MB 1024MB -------> 1GB 1024GB -------> 1TB 1024TB -------> 1PB
《鸟哥的Linux私房菜》
Linux发行版本: - Redhat - CentOS - Ubuntu - Fedora - SUSE - Debian
Linux系统安装软件: 1. 使用包管理工具 - yum / rpm / apt / deb 2. 源代码构建安装 - 下载源代码用C语言构建工具进行构建 3. 直接下载二进制程序 - 配置环境变量之后使用
Apache/Nginx ---> HTTP服务器 ---> 提供Web应用
yum search nginx - 搜索名为nginx的软件包 yum -y install nginx - 安装名为nginx的软件包 yum -y remove nginx - 删除名为nginx的软件包 yum update nginx - 更新名为nginx的软件包 yum info nginx - 查看名为nginx的软件包相关信息 yum list installed - 查看已经安装的软件包
service nginx start
systemctl start nginx - 启动Nginx systemctl restart nginx - 重启Nginx systemctl stop nginx - 停止Nginx systemctl status nginx - 查看Nginx状态 systemctl enable nginx - 设置Nginx开机自启 systemctl disable nginx - 禁用Nginx开机自启
更新Linux系统Python环境到3.7.1 1. 安装依赖项 yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
2. 下载源代码 wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
3. 解压缩和解归档 gunzip Python-3.7.1.tgz tar -xvf Python-3.7.1.tar
4. 进入文件夹生成构建文件(Makefile) cd Python-3.7.1 ./configure --prefix=/usr/local/python37 --enable-optimizations
5. 构建和安装 make && make install
6. 修改环境变量 cd ~ vim .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/python37/bin
7. 断开服务器连接,重新连接服务器 python3 --version
8. 注册一个快捷方式(符号链接) ln -s /usr/local/python37/bin/python3 /usr/bin/python3
硬链接 - 相当于给文件增加了一个引用计数(不复制数据的备份) 软链接(符号链接) - 相当于是Windows下的快捷方式 可以为常用的文件和文件夹在用户主目录下创建软链接来方便操作
ln 源文件 目标文件
ps - processes - 查看进程状态 ps -ef / ps -aux
top - 类似于任务管理器
kill - 结束进程
登录系统成功之后进入Shell(壳程序)交互式环境 大多数Linux系统默认的Shell都是bash bourne again shell
Internet是基于TCP/IP模型的四层架构
应用层 - HTTP / FTP / SSH / QQ / SMTP / POP3 传输层 - TCP / UDP - 端到端传输服务 网络层 - IP - 寻址和路由 物理链路层(网络接口层) - 分帧和校验
端口是对IP地址的扩展用来区分不同的服务 HTTP - TCP协议80端口 HTTPS - TCP协议443端口 SSH - TCP协议22端口 SMTP - TCP协议25端口 POP3 - TCP协议110端口
sftp root@1.2.3.4 sftp> quit / exit / bye - 退出sftp cd / lcd - 切换远端工作目录 / 切换本地工作目录 pwd / lpwd - 查看远端工作目录 / 查看本地工作目录 ls / lls - 查看远端目录下的内容 / 查看本地目录下的内容 mkdir / lmkdir - 在远端创建目录 / 在本地创建目录 put - 上传文件(-r递归可以用来上传文件夹) get - 下载文件(-r递归可以用来下载文件夹)
Vim的工作模式: 1. 命令模式 按i或a进入编辑模式;按:/?进入末行模式 2. 编辑模式 按Esc进入命令模式 3. 末行模式 按回车回到命令模式
常用命令: h j k l - 移动光标 gg / G / <n>G - 首行 最后一行 第n行 dd d0 d$ dw - 删行 删到行首 删到行尾 删单词 yy - 复制 p - 黏贴 u - 撤销 ZZ - 保存退出 q - 录制宏/结束录制 qa - 录制宏并保存在寄存器a中 @a - 播放宏 100@a - 将指定的宏播放100遍
快捷键: ctrl+e / ctrl+y 下移/上移一行 ctrl+f / ctrl+b 下移/上移一页 ctrl+r 重做 ctrl+w 按两下 - 切换窗口
末行模式: set nu / set nonu - 设置显示/取消行号 set ts=4 - 设置制表的空格数 syntax on / off - 打开/关闭高亮语法 map/imap/inoremap 快捷键 执行的操作 - 映射快捷键 ls - 显示打开的文件 b <n> - 切换文件 sp - 水平拆分窗口 vs - 垂直拆分窗口 w - write - 保存 q - quit - 退出 可以加!强制执行 /正则表达式 - 正向搜索与正则表达式匹配的字符串 ?正则表达式 - 反向搜索与正则表达式匹配的字符串 1,$s/正则表达式/替换的内容/指示器 - 查找替换 c - 确认 - confirm i - 忽略大小写 - ignore case e - 错误静默 - error
~/.vimrc - vim的配置文件
代码提示 - 安装一个名为YouCompleteMe插件
文件权限 -rw-r--r-- 1 root root hello.py
第一个字符 d - 文件夹 l - 软链接 - - 文件 第2-4个字符:文件的所有者对文件有何种操作权限 r - read - 读 w - write - 写 x - execute - 执行 第5-7个字符:和文件所有者同组的用户对文件有何种操作权限 第8-10个字符:其他用户(不是所有者也不同组)的用户对文件有何种操作权限
chmod u+x,g+x,o+x 文件名 - 给文件加上执行权限 chmod 755 文件名 chown 用户名 文件名 - 改变文件所有者 chgrp 用户组 文件名 - 改变文件用户组
以太网 - Ethernet
网络相关命令: ping - 检测网络可达性 - ICMP tracepath - 检查数据路由 ifconfig - 检查网络接口(网络适配器) ip - 查看配置网络接口相关信息 netstat - 查看网络状态(端口占用、进程、已建立的连接) sftp - 安全网络文件传输 scp - 安全文件拷贝
scp 文件 用户名@1.2.3.4:/目录/文件名
命令 & - 让命令在后台运行 jobs - 查看后台运行的进程 fg %编号 - 让命令回到前台运行 bg %编号 - 让命令在后台运行 Ctrl+z - 将前台进程暂停放到后台
版本控制 1990s - 锁定模式 - CVS - Concurrent Version System - VSS - Visual Source Safe
2000s - 合并模式 - SVN - Subversion - 集中控制式
分布式版本控制系统 - BitKeeper 2005年 - Git / Mercury
Linux系统安装Git 方法一:yum -y install git 方法二: 1. 下载git源代码压缩文件 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.1.tar.xz 2. 解压缩和解归档 xz -d git-2.19.1.tar.xz tar -xvf git-2.19.1.tar 3. 配置安装路径 cd git-2.19.1 ./configure --prefix=/usr/local 4. 安装git的网络依赖库 yum -y install libcurl-devel 5. 构建和安装 make && make install 6. 检查安装结果 git --version
Git的使用 1. 创建git仓库 git init
2. 将代码纳入暂存区 git add 文件名 git add .
3. 查看暂存区状态 git status git rm --cached 文件名(从暂存区移除) git checkout -- 文件名(将暂存区文件恢复到工作区)
4. 配置身份标识 git config --global user.name "..." git config --global user.email "..."
5. 提交到本地仓库 git commit -m '...'
6. 查看提交日志 git log git reflog - 看到未来的版本(曾经提交过又被撤回的版本)
7. 回到历史版本 git reset --hard HEAD^ git reset --hard HEAD^^ git reset --hard 版本的哈希摘要
--hard参数是为了保持工作区和历史版本的一致性
|