《鸟哥的linux私房菜》
1. arm
嵌入式
存储卡
操作系统
linux 内核
智能制造 ,机器人,物联网
2. 树莓派(微型计算机)
3. pc
- 购买阿里云 ubuntu16.04 server
putty 远程登录
mac 类linux ssh
$ ssh root@120.78.164.247登录过程
root系统介绍
只有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 可以执行使用sudo命令的配置文件(权限提升)
/etc/skel
用来存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。这个目录下的所有文件都是隐藏文件(以.点开头的文件)。通过修改、添加、删除/etc/skel目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。
/etc/profile 核心配置(系统全局变量永久生效的配置文件)
opt 用来安装附加软件包,是用户级的程序目录
解压即安装的软件目录 d:/soft
eclipse
home 普通用户家目录
licy zhangtt …
root 超级用户家目录
…命令
cd [路径]
无 回家
相对路径
不以 / 开始的路径
绝对路径
以 / 开始的路径ls [路径]
无 查看当前路径下所有文件以及子目录
路径 查看指定路径下所有文件以及子目录
-a
列出所有文件包含隐藏文件
-A
列出所有文件包含隐藏文件,但是不包含“.”和“..”
-l
以长格式列出所有文件以及目录
drw-r–r– 2 root rootclear
清理屏幕
mkdir 目录名称
在当前目录下新建目录
rmdir 目录名称
删除空目录
rm 删除文件
rm -r 文件/目录
删除文件,或者非空目录
mv 移动、重命名
mva.txt 将当前目录下的a.txt移动到家目录中 m v a . t x t 将 当 前 目 录 下 的 a . t x t 移 动 到 家 目 录 中 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行命令 $ !! 执行上一条命令
用户
adduser 用户名
adduseruser1addgroup组名新增用户组 a d d u s e r u s e r 1 a d d g r o u p 组 名 新 增 用 户 组 addgroup team
usermod [options] 用户名
修改用户信息
usermod–gid1008user1将用户user1切换到组id为1008的组userdel用户名−r删除所有信息groupdel组名删除组 u s e r m o d – g i d 1008 u s e r 1 将 用 户 u s e r 1 切 换 到 组 i d 为 1008 的 组 u s e r d e l 用 户 名 − r 删 除 所 有 信 息 g r o u p d e l 组 名 删 除 组 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 普通用户
权限
用户角色
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
速记?x1 w2 r4vim
vi升级版,linux主要文本编辑,类似于window记事本,功能异常强大!windows 记事本 sublime editplus vscode…
1) 打开关闭vi
vi或 v i 或 vim
:q 退出
2) 三种模式
A、命令模式
1. 删除行
dd 删除当前行
3dd 删除连续3行,包含当前行
x 删除光标所在字符
3x 删除连续3个字符
dw 删除当前单词
3dw 删除联系3个单词
拷贝行
yy 复制当前行
3yy 复制连续3行
yw 复制当前单词
3yw 复制连续3个单词
替换
r 替换当前字符
cc 替换当前行
cw 替换当前单词
p 粘贴
u 恢复
光标移动
上下左右 在对应位置上移动
^ 光标移动到当前行行首
$ 光标移动到当前行行尾B、底行模式 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 C、编辑模式 1) 命令模式->编辑模式的方式 i 在当前字符前插入 I 在当前行前插入 a 在当前字符后追加 A 在当前行后插入 o 在当前行下另起一行 O 在当前行上另起一行 2) 编辑模式->命令模式的方式 ESC
拓展
1) 将/etc/group中的内容拷贝到c.txt
more/etc/group>c.txt2)vim插件管理1.安装vim插件管理器pathogen.vim m o r e / e t c / g r o u p > c . t x t 2 ) v i m 插 件 管 理 1. 安 装 v i m 插 件 管 理 器 p a t h o g e n . v i m mkdir -p ~/.vim/autoload ~/.vim/bundle
$ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
2. 配置~/.vimrc
插入一行(放在.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) 软件安装
软件
git
node服务 (一般要占据端口号) apache2 1. 安装服务 2. 启动服务 客户机(自己电脑) 服务器(阿里云) 浏览器 apache2 putty ssh服务器 (ssh协议) teamview teamview ftp客户端 ftp服务器(名称是:vsftpd) apt-get install apache2 80 apt-get install mysql 3306 apt-get install tomcat 8080 //启动服务: service 服务名 start/restart/stop/status(重启之后查看状态) 1. 在线安装 # 更新源(无需每次更新) $ apt-get update # 安装软件 apt-get install 软件名称 $ apt-get install git //在线安装git $ git --version //查看git版本 git apache2 mysql 1. 安装vsftpd $ apt-get install vsftpd 2. 核心配置文件 /etc/vsftpd.conf $ cp /etc/vsftpd.conf /etc/vsftpd.conf.bak $ vim /etc/vsftpd.conf 将31行注释或删除 $ service vsftpd restart $ service vsftpd status runing... 3. 打开windows dos ftp ip(47.106.202.9) 用户名/密码 ftp > put 1.js 3ftp客户端 filezilla //xshell 2. 手动安装 node安装 1) 上传安装包 2) 解压安装包 解压到/opt目录下 3) 配置环境变量 为了可以在任意目录下使用该命令,所以需要配置环境变量 全局系统变量 /etc/profile (局部)用户系统变量 ~/.bashrc ~/.profile $ cd ~ $ vim .bashrc 在.bashrc最后一行追加 export NODE_HOME=/opt/node-v8.11.4-linux-x64 export PATH=$PATH:$NODE_HOME/bin $ source .bashrc $ node -v
4) 授权
adduser user1
user登录系统
apt−getinstallgit权限不足 a p t − g e t i n s t a l l g i t 权 限 不 足 sudo apt-get install git
当前用户不在sudoer
root登录系统
// vi /etc/sudoers 然后修改
修改/etc/sudoers
//test1 ALL=(ALL:ALL) ALL压缩
zip
语法: zip 归档名称 带压缩的文件
案例: $ zip all.zip *.html
后缀: .zip
解压: unzipbzip2
语法:bzip2 归档文档
案例:$ bzip2 *.html
分别将每个文件压缩
后缀: .bz2
解压:bunzip2gzip
语法:gzip 归档文档
案例:$ gzip *.html
分别将每个文件压缩
后缀: .gz
解压:gunzip归档
tar
-x 解压归档
-v 打印过程
-f 归档、拆档对象
-c 新建归档
-z gzip gunzip
-j bzip2 bunzip2tar -czvf all.tar.gz *.o tar -xzvf all.tar.gz
vim总结
1) vim的应用
打开文件
保存文件
编辑文件
2) vim插件功能
spf13
$ curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
1. 插件管理器
1) pathogen.vim
2) vundle2. 插件 emmet-vim 代码速成 NERDTree 文件导航 ctrlp 文件快速搜索 EasyMotion 光标快速移动 ....
js
1.~/ 家目录下
mkdir corejs
cd corejs
mkdir day01 day02 day03
cd day01
touch 1-hello.js //新建文件
vim 1-hello.js //编辑文件
然后退出vim、在node中执行js文件下载node node上传到阿里云 解压 tar 配置 vim node 1-hello.js 浏览器内核js解析器
框架
组件
依赖
打包
jquery.js
lodash.js
a.js
b.js
c.js
webpack 运行在node.js
- 进程
- 服务
apache
vsftpd - 软件安装
git
apache2
vsftpd
node