1. 准备工作 阿里云(ubuntu16.04) ip root root密码 2. linux windows pc操作系统(使用便捷) unix 收费 linux 命令行 【 图形化界面(ubuntu desktop)】,用于服务器 稳定,不需要关机 内核非常小 - 安装在板子上(嵌入式开发) 飞行器、android操作系统、macos(类linux) 开源(源码是开放的)- 思想、文化 3. 要求 阿里云 ip 121.199.29.84 root root密码 符号 > windows/macos (客户机) $ linux (服务器-普通用户) # linux(服务器-超级管理员) 1) 远程登录、远程文件传输 1. 图形化界面方式(简单直观、安装图像化界面软件、配置) xshell filezilla 2. 命令行模式 > ssh root@121.199.29.84 使用root账号,登录ip为121.199.29.84的主机 通常情况下,我们不直接使用root进行登录,务必将root的密码设置的较为复杂(但是不要忘记) # exit 退出登录 > scp ./app.zip root@121.199.29.84:/var/www/html 将当前目录下的app.zip上传到ip为121.199.29.84 /var/www/html(使用root账号登录,如果使用普通账号登录,只能将文件传输到家目录中) > scp ./app.zip charles@121.199.29.84:/var/www/html 报错!没有权限! > scp ./app.zip charles@121.199.29.84:~ window(DOS命令) c:/users/王五 桌面 下载 影音 收藏 ... win+R 打开了dos, dos默认所在目录为 c:/users/王五 > dir 类似于linux中的ls, 打印出当前目录下的文件及子目录 > cd 桌面 2) 文件系统(路径、文件、目录) / /root 超级管理员的家目录 /home/charles charles用户的家目录 /home/jacky jacky用户的家目录 /etc 配置文件目录 group 组信息 passwd 账号信息 shadow 账号敏感信息(普通账号无法查看) /var 可变目录 /opt 第三方软件安装目录 jdk,nodejs /usr/local 默认软件安装目录 apt install ... 命令模板 命令 [options] [arguments] options -la $ pwd 打印当前所在目录 $ ls 列出当前目录下的子目录或文件 $ ls -a $ ls -l $ ls -R $ more $ more /etc/group 预览/etc/group这个文件 回车:换行 空格:换页 q: 退出 $ tail -10 /etc/group 查看/etc/group这个文件的后10行 $ man groupadd manual 手册,查看groupadd这个命令的使用手册 # reboot 重启 当修改了/etc/hostname的时候,需要重新启动电脑才能生效 # vi /etc/hostname $ history 查看历史命令 !命令序号 执行命令序号对应的命令 !! 执行上一条命令 目录相关 普通账号默认只能对自己家目录进行目录操作 $ cd [目录] 切换目录, 如果没有指定目录,默认进入自己家目录下 目录: / 根目录(操作系统的根) ~ 家目录(相对目录) . 当前目录 .. 上一级目录 $ mkdir a 创建目录 $ rmdir a 删除空目录 $ touch f 新建文件(f不存在的时候)或者修改文件最近访问时间(f存在的时候) $ rm f 删除文件(由于目录也是文件,所以rm也可以删除目录) rm -r a 删除a及a目录下的所有子目录及文件 (删库跑了 sudo rm -r /) $ date > a 将date函数的输出重定向到a文件中,a如果不存在,创建。会覆盖 $ date > a 将date函数的输出重定向到a文件中,a如果不存在,创建。不会覆盖 $ cp a b 如果a是文件,b不存在或者b也是一个文件:将a的内容复制到b中 如果a是文件,b是目录:将a复制到b中 $ cp -r a b 如果a为目录,必须使用-r,表示级联操作 $ mv $ mv a b 如果a是文件/目录,b不存在,表示重命名 如果a是文件,b是目录,表示将a移动到b中 3) 用户、权限 普通用户只能在自己的家目录中创建文件、删除文件、修改文件 用户组 # groupadd web-ui # more /etc/group ... webui:x:1019: 用户 # adduser vicky 创建用户 vicky 创建组 vicky 将vicky添加到 vicky组中 创建一个加目录 /home/vicky 将家目录的默认文件/etc/skel进行拷贝->/home/vicky # adduser --gid 1019 vicky 创建用户 vicky 将vicky添加到 1019组中 创建一个加目录 /home/vicky 将家目录的默认文件/etc/skel进行拷贝->/home/vicky # userdel -r zhangnn 将zhangnn彻底删除 # id [用户名] 查看账号信息 # usermod --gid=1009 larry $ su - 账号 切换到指定账号下,账号如果缺省,表示切换到超级管理员下 root 超级管理员 sudoer 可以执行超级权限的用户(管理员) # vi /etc/sudoers $ sudo more /etc/shadow 4) 文件权限 普通用户拥有自己家目录中所有的权限。 $ ls -l -rw-r--r-- 1 vicky webui 44 Aug 24 07:36 hello.js drwxr-xr-x 2 root root 4096 Aug 24 09:29 bin -rwxr-xr-x 1 root root 8600 Aug 24 09:34 hello.o - 文件 d 目录 rw-r--r-- 角色: 拥有者u、同组人g、其他人o 权限 读r、写w、执行x 修改权限 一个文件的权限拥有者可以修改、超级管理员、普通管理员也可以修改 chmod $ chomd g+w hello.js 为hello.js添加同组人编写的权限 rw-rw-r-- 110 110 100 6 6 4 $ chmod 664 world.js 5) vim 编辑器(命令行、插入模式、底行模式) vi 、vim(linux)、sublime 、vscode(轻量级的编辑器)、webstom(集成开发工具) 三种模式:命令行模式、插入模式、底行模式 1. 命令行模式 打开vim编辑器,默认进入的模式,字符表示特殊的命令 x 删除一个字符 u 回退 cc 替换当前行:删除当前行;进入到插入模式 cw 替换单词 r 替换一个单词 ... 2. 插入模式 命令行模式 -> 插入模式 i insert 插入 o other 在下一行插入 a append 追加 I 从行首插入 O 在上一行插入 A 在行尾追加 3. 底行模式 命令行-> 底行模式 保存 :w 另存为 :w 文件名 退出 :q 保存退出 :wq 强制退出 :q! 搜索 /words 回车表示查询(高亮)n/N查询下一个 替换 :1,$s/旧串/新串/g ... 6) vim配置 用户配置 ~/.vimrc 全局配置 /etc/vim/vimrc ---------------------- set nu set autoindent set tabstop=2 syntax on ---------------------------- 懒人配置 spf13 $ curl http://j.mp/spf13-vim3 -L -o - | sh 7) 软件安装(mysql、apache2、jdk、nginx...) 1. 后台相关软件 jdk1.8 mysql jar 2. 前端相关软件 apache2 (httpd) npm run build:prod -> dist -> /var/www/html nginx (nuxt.js) 门户系统 -> vue-admin-template (nuxt.js 适于seo检索) node.js nodeJS(io模块,网络模块,数据库模块,任务[线程]...) 3. 工具类型软件 gitlab(内存不低于2G);gitee、github(开源) svn-server 8) 软件安装方式 1. 命令行安装 mysql、apache2 # apt update (更新源) 1) 安装 # apt install xxx 2) 配置 /etc/xxx 2. 解压安装 jdk、nodejs 1) 下载 wget ; 本地下载,上传阿里云 (.tar.gz , .tar.xz , ...) 2) 解压 /opt # tar -xvf xxx.tar.gz xxx 该软件的家目录 例: /opt $ sudo tar -xvf node-v14.17.5-linux-x64.tar.xz /opt/node-v14.17.5 nodejs的家目录 3) 环境变量配置 1. 全局 /etc/profile 2. 本地 ~/.bashrc shell编程 export NODE_HOME=/opt/node-v14.17.5 export PATH=$NODE_HOME/bin:$PATH 4) 生效 $ source .bashrc 3. 编译安装 nginx、fastdfs c开发 -> 编译 -> 运行 1) 编译 2) 执行 4) 实例安装nodejs 1) 下载压缩包 /opt $ sudo wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-linux-x64.tar.xz 2) 解压 /opt $ sudo tar -xvf node-v14.17.5-linux-x64.tar.xz 3) 环境变量配置 用户环境变量配置 ~/.bashrc ~/.profile 系统环境变量配置 /etc/profile export NODE_HOME=/opt/node-v14.17.5-linux-x64 export PATH=$NODE_HOME/bin:$PATH 4) 使生效 $ source .bashrc $ node --version 9) 进程监控、端口号查询、磁盘查询... $ ps -aux | grep java $ kill -9 进程编号 $ service 服务名 status/restart/start/stop $ java -jar xxx.jar ctrl + z 将当前正在运行的进程停止下来 $ bg %1 将1号任务在后台运行 $ fg $ wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-linux-x64.tar.xz $ curl 解析url,将url内容展示到终端中 -----后台接口------ Hello.java World.java -> Hello.class World.class -> app.jar(接口服务,一直运行, 按下ctrl+c键后,停止运行) 4. docker 101.132.69.89 【csj】 1) 作用 2) 安装 # docker version 1. 更新源 # apt update 2. 安装必备软件 # apt-get install apt-transport-https ca-certificates curl gnupg lsb-release 3. 安装 GPG key # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 4. 安装 # echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 5. 更新源 # apt-get update # apt-get install docker-ce docker-ce-cli containerd.io