《鸟哥的linux私房菜》
1. arm
嵌入式
存储卡
操作系统
linux 内核
智能制造 ,机器人,物联网
2. 树莓派(微型计算机)
3. pc
--------------
1. 购买阿里云 ubuntu16.04 server
2. putty 远程登录
mac 类linux ssh
$ ssh [email protected]
3. 登录过程
root
4. 系统介绍
只有c盘的windows
c:/
windows
program files
users 用户家目录
licy
zhangsan
...
linux
/
bin 部分系统可执行文件目录
usr unix system resource
类似 c:/windows
usr/local 第三方软件安装目录
类似 c:/program files
var
可变文件目录
用户信息
apache www
etc 配置文件目录
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/etc/sudoers
/etc/skel
/etc/profile 核心配置
opt
解压即安装的软件目录 d:/soft
eclipse
home 普通用户家目录
licy zhangtt ...
root 超级用户家目录
...
5. 命令
cd [路径]
无 回家
相对路径
不以 / 开始的路径
绝对路径
以 / 开始的路径
ls [路径]
无 查看当前路径下所有文件以及子目录
路径 查看指定路径下所有文件以及子目录
-a
列出所有文件包含隐藏文件
-A
列出所有文件包含隐藏文件,但是不包含. ..
-l
以长格式列出所有文件以及目录
drw-r--r-- 2 root root
clear
清理屏幕
mkdir 目录名称
在当前目录下新建目录
rmdir 目录名称
删除空目录
rm 删除文件
rm -r 文件/目录
删除文件,或者非空目录
mv 移动、重命名
$ mv a.txt ~
将当前目录下的a.txt移动到家目录中
$ mv a.txt b.txt
将a.txt重命名为b.txt
cp 拷贝
$ cp a.txt ~
将当前目录下的a.txt拷贝到家目录中
pwd
显示当前所在路径
more
预览
less
预览
head
预览头10行
tail
预览末尾10行
cat 文件1 文件2
将文件1与文件2内容合并后显示
tac 文件1 文件2
将文件1的反向和文件2的反向合并后显示
nl 文件1 文件2
添加行号显示
history
调出所有历史命令
!命令编号
执行命令编号指定的命令
...
29 ls -l
30 clear
...
$ !29
执行29行命令
$ !!
执行上一条命令
6. 用户
adduser 用户名
$ adduser user1
addgroup 组名
新增用户组
$ addgroup team
usermod [options] 用户名
修改用户信息
$ usermod --gid 1008 user1
将用户user1切换到组id为1008的组
userdel 用户名
-r 删除所有信息
groupdel 组名
删除组
$ groupdel user1
su [-] [用户名]
切换用户身份
如果具有参数 - ,表示彻底切换
1) 切换家目录,用户身份切换成功后直接进入到当前用户的家目录
2) shell切换,当前的$PATH(环境变量)使用当前用户的
/opt/node-v8.11.3
/root
/home
user1
用户变量
.bashrc .profile
PATH=$PATH:/opt/node-v8.11.3/bin
$ node
user2
用户变量
.bashrc .profile
$ node
$ su
切换到超级管理员身份进行登录
$ su user1
切换到user1用户上
从root切换到其他用户不需要输入密码,从其他用户切换到第三方用户需要输入第三方用户的密码
root 超级用户
licy 普通用户
7. 权限
用户角色
user 拥有者 u
group 同组人 g
other 其他人 o
文件权限
read 读 r
write 写 w
execute 执行 x
修改文件权限
1) chmod g+w index.html
为index.html添加同组人写权限
2) chomd 766 index.html
user 7 rwx
group 6 rw-
other 6 rw-
rwxrw-rw-
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
8. vim
vi升级版,linux主要文本编辑,类似于window记事本,功能异常强大!
windows 记事本 sublime editplus vscode...
1) 打开关闭vi
$ vi
或
$ vim
:q
2) 三种模式
命令模式
1. 删除行
dd 删除当前行
3dd 删除连续3行,包含当前行
x 删除光标所在字符
3x 删除连续3个字符
dw 删除当前单词
3dw 删除联系3个单词
拷贝行
yy 复制当前行
3yy 复制连续3行
yw 复制当前单词
3yw 复制连续3个单词
替换
r 替换当前字符
cc 替换当前行
cw 替换当前单词
p 粘贴
u 恢复
光标移动
上下左右 在对应位置上移动
^ 光标移动到当前行行首
$ 光标移动到当前行行尾
底行模式
1) 定位光标位置
:n 光标进入到n行,n 表示具体数字
:$ 光标进入最后一行
2) 存档
:q 退出
:q! 强制退出,不保存改动信息
:w 保存
:w! 强制保存
:wq 保存并退出
:w 文件名
另存为... ,默认该文件保存在当前目录下
3) :set 参数
临时设置vim参数
:set nu
:set tabstop=2
:set autoindent
4) 查找
/目标字符串 查找目标字符串
n 查询下一个
N 查询上一个
5) 替换
:n,ms/old/new/g
n 开始
m 结束
old 被替换字符
new 用来替换的字符
g 全局
6) 移动
:9,14co6
将第9行到14行代码拷贝到第6行后
:6,14m2
将第6行到14行代码移动到第2行后
7) 分屏
:split
:vsplit
ctrl + ww 在不同屏幕中移动光标位置
:open 在分屏打开一个文件
:close 关闭分屏
配置,默认配置文件~/.vimrc
$ cd
$ vim .vimrc 新建.vimrc
编辑模式
1) 命令模式->编辑模式的方式
i 在当前字符前插入
I 在当前行前插入
a 在当前字符后追加
A 在当前行后插入
o 在当前行下另起一行
O 在当前行上另起一行
2) 编辑模式->命令模式的方式
ESC
9. 拓展
1) 将/etc/group中的内容拷贝到c.txt
$ more /etc/group > c.txt
2) vim插件管理
1. 安装vim插件管理器 pathogen.vim
$ mkdir -p ~/.vim/autoload ~/.vim/bundle
$ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
2. 配置~/.vimrc
插入一行(放在第一行)
execute pathogen#infect()
3.安装emmet-vim(用于html代码提示)
$ git clone https://github.com/mattn/emmet-vim.git
4.spf13 (.vimrc)【建议】
$ curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
3) 软件安装
1. 在线安装
# 更新源(无需每次更新)
$ apt-get update
# 安装软件
apt-get install 软件名称
$ apt-get install git
$ git --version
2. 手动安装
1) 安装包
2) 解压安装包
3) 配置环境变量
4) 授权
adduser user1
user登录系统
$ apt-get install git
权限不足
$ sudo apt-get install git
当前用户不在sudoer
root登录系统
修改/etc/sudoers
10. 压缩
zip
语法: zip 归档名称 带压缩的文件
案例: $ zip all.zip *.html
后缀: .zip
解压: unzip
bzip2
语法:bzip2 归档文档
案例:$ bzip2 *.html
分别将每个文件压缩
后缀: .bz2
解压:bunzip2
gzip
语法:gzip 归档文档
案例:$ gzip *.html
分别将每个文件压缩
后缀: .gz
解压:gunzip
11. 归档
tar
-x 解压归档
-v 打印过程
-f 归档、拆档对象
-c 新建归档
-z gzip gunzip
-j bzip2 bunzip2
tar -czvf all.tar.gz *.o
tar -xzvf all.tar.gz
------------------
框架
组件
依赖
打包
jquery.js
lodash.js
a.js
b.js
c.js
webpack 运行在node.js
------------------
1. 进程
2. 服务
apache
vsftpd
3. 软件安装
git
apache2
vsftpd
node