一.Linux诞生
1.虚拟机本身只是一个机遇操作系统的软件,可以模拟其他操作系统环境。
2.Linux是Linus(人名)作为创始人开发的,包括内核版本和发行版本,内核版本只有一个版本,而发行版用作推广,有很多版本,Fedora Core,Debian,Mandrake,Ubuntu等十多种不止。
3.服务器端操作系统包含Linux,Windows Server等;客户端操作系统包括,Windows,MacOS等。Linux是最常用的服务器操作系统,是多用户的,不同于客户端系统(同一时间只能有一个用户操作系统为单用户)。
4.MacOS安装Linux虚拟机
安装VMware Fusion(官网有),使用VMware下载Ubuntu。
二.Linux命令
基础格式:command [Option] [Parameter]
‘[]’代表可选
1.基础操作命令
- cd -切换目录
.表示当前目录 ..表示上一级目录
cd or cd~ 回到用户根目录
cd - 最近两次目录来回切换 - pwd - 显示当前目录
- ls - 显示当前文件
ls -a 显示所有文件 包括隐藏文件(.开头的)
ls -l 列表显示
ls -l -h 列表显示,且包含文件大小
ls 通配符 查看满足通配符的文件 *代表任意多个字符 ?代表任意一个字符
2.文件相关
- touch -创建文件
- mkdir File -创建文件夹
mkdir -p a/b/c/d 连续创建多目录 - rm File -删除文件
rm -r 删除文件夹内容
rm -f 忽略不存在的文件,强制删除
rm 也可以使用通配符 - tree 显示目录树状结构
tree ~ 根目录的结构
tree -d 只显示目录,不显示文件 - cp SourceFile DirectionFile -复制文件
linux同一个目录下不能有同名的文件及文件夹
cp -i 是否提示覆盖
cp -r 复制文件或目录 - mv SourceFile DirectionFile -移动文件
mv -i 是否提示覆盖 - cat File 查看文件内容(全部)
cat -b 显示编号,不包含空行
cat -n 显示编号,包含空行 - more File 查看文件内容(分屏显示)
用于看多内容文件 - grep Keyword File -查找Keyword
-n 显示行号
-i 忽略大小写
-v 取反 - 重定向> File -把内容输出到文件中
eg:ls -l >a.txt 把文件目录输出到a.txt - 重定向>> File -把内容追加输出到文件中
eg:tree >>a.txt 把文件结构输出到a.txt - 管道 | -一个命令的输入作为另一个命令的输入
eg:ls -a | grep d 查看目录中包含d的文本 - man 命令 or 命令 --help 查看命令帮助
skill:Tab可以自动补全文件名称
3.远程管理相关
- ifconfig -查看当前计算机网卡和ip相关信息
- ping IP地址|域名 - 检测目标主机是否连接正常
ping 127.0.0.1 检测本机网卡是否正常连接 - ssh [-p port] user@ip
使用ssh协议进行客户端到服务器端的通讯,传输数据进行压缩和加密。
通过ssh,让Mac(模拟客户端)连接到Linux-Ubuntu(模拟服务器)系统。
1.查看Ubuntu主机的ip地址
ifconfig | grep inet
2.在Mac终端输入ssh连接指令
ssh -p 22 parallels@192.168.156.128
3.确认yes并输入用户密码即可连接
4.退出连接
exit
tips:ps -e | grep ssh 查看ssh服务是否启动,如果没有信息,通过sudo apt-get install openssh-server 命令安装即可。 - scp -复制远程文件到客户端
复制Linux-Ubuntu桌面a文件夹到Mac当前目录demo下
scp -P 22 -r parallels@192.168.156.128:Desktop/a demo
4.用户相关
先介绍ls-l 显示的文件信息相关概念
第一个参数 drwxrwxrwx-代表是否是目录,用户读写执行权限,用户组读写执行权限,其他用户读写执行权限
第二个参数 表示硬链接数(能访问到该文件/文件夹的方式数目),比如cd 绝对路径;cd .;子目录cd ..等,所以如果硬链接数多,间接可以反映出文件子文件/目录的个数多,因为子文件才可以使用cd ..方式到达该文件。
第三,四个参数 表示用户和用户组
- chmod -修改文件/目录权限
-R 递归修改文件权限
chmod -rwx File -删除读写执行权限
chmod +rwx File -添加读写执行权限
如果文件拥有执行权限,会作为可执行文件处理;如果文件夹没有拥有执行权限,不能访问到该文件目录(cd 无权限)。
快捷修改用户,用户组,其他用户权限
rwx-对应421 三个数字对应三种权限设置之和
chmod 777 -修改权限为rwxrwxrwx
chmod 000 -修改权限为---------
sudo -默认用root权限执行命令(超级管理员)
用户组的作用就是方便权限的统一管理 - groupadd groupName -添加组
需要使用 sudo groupadd root权限添加 - groupdel groupName -删除组
需要使用 sudo groupdel root权限删除 - cat /etc/group - 查看组
- chgrp -R 用户组 目录 -修改目录所属组
需要sudo chgrp root权限修改 - chown 用户名 目录 -修改目录所属用户
需要sudo chown 权限
用户管理
一个用户可以配置多个用户组权限,包括一个主组,多个附加组 - useradd -创建用户
-m 自动创建home目录
-g 指定用户组
eg:sudo useradd -m -g dev zhousiyang - passwd -指定用户密码
eg:sudo passwd zhousiyang - userdel -删除用户
-r 自定删除home目录
eg:sudo userdel -r zhousiyang - id userName -查看用户uid和用户组gid信息
cat /etc/passwd 存放用户uid相关
cat /etc/group 存放用户组gid相关 - whoami - 查看当前登录用户名称
- who - 查看登录当前系统的所有用户和来源
- usermod -给用户配置用户组权限/指定用户的shell
-g 指定主组
-G 指定附加组
eg:sudo usermod -G sudo zhousiyang,给zhousiyang添加附加组sudo权限
sudo usermod -s /bin/bash zhousiyang ,给zhousiyang指定使用bash shell - which command -查看命令所在位置
/etc/passwd 用户保存用户信息的文件
/usr/bin/passwd 用于修改用户密码的程序
在linux中,绝大部分命令保存在/bin,/sbin,/usr/bin,/usr/sbin目录下/bin 二进制执行目录,主要用于具体应用
/sbin 系统管理员应用的二进制执行目录,主要用于系统管理
/usr/bin 后期安装的一些软件
/usr/sbin 超级用户的一些管理程序 - su username -切换用户
su zhousiyang 切换到zhousiyang用户,但不改变当前位置
su - zhousiyang 切换到zhousiyang用户,且到该用户home目录
su - 直接切换到root用户
exit 退出当前切换的用户,回到上一个用户
5.系统信息相关
- date -查看系统时间
- cal -查看日历
- df -h -查看磁盘使用情况
- du -h 目录 -显示目录下文件大小
- ps -查看进程信息
a -显示终端上所有进程,包括其他用户的进程
u -显示进程详细信息
x -显示不是终端打开的进程 - top -动态显示运行中的进程并且排序,使用q退出显示
- kill Pid -杀掉对应进程
6.其他命令
find [路径] 类型 "通配符"
eg:find . -name "a" -查找当前目录下名称包含a的文件/目录ln 被链接文件绝对路径 链接文件名 -创建链接
-s -创建软链接;不加-s则创建硬链接
如果被链接的源文件删除,软链接的文件则打不开,硬链接的文件还可以使用
之所以要使用绝对路径,是因为如果使用相对路径,当软链接目录发生移动就找不到了tar -打包/解包
tar -cvf t.tar a.txt b.txt c.txt 把a.txt,b.txt,c.txt打包成t.tar(不压缩)
tar -xvf t.tar 把t.tar文件解包
tar -zcvf t.tar.gz a.txt b.txt c.txt 把a.txt,b.txt,c.txt打包成t.tar.gz(使用gzip压缩)
tar -zxvf t.tar.gz -C 指定目录 把t.tar.gz文件gzip解压缩解包
tar -jcvf t.tar.bz2 a.txt b.txt c.txt 把a.txt,b.txt,c.txt打包成t.tar.bz2(使用bzip2压缩)
tar -jxvf t.tar.bz2 -C 指定目录 把t.tar.bz2文件bzip2解压缩解包apt -安装/卸载/升级软件
sudo apt install 软件包 -安装
sudo apt remove 软件包 -卸载
sodo apt upgrade 软件包 -升级
7.vi编辑命令
vi有三种状态模式,命令模式,编辑模式,末行模式
1.命令模式进行查看,编辑模式进行编辑,末行模式进行保存退出
2.打开文件时,默认进入命令模式,点击i进入编辑模式,点击ESC退出编辑模式,进入命令模式;在命令模式下,点击:进入末行模式(w-保存 q-退出 wq/x-保存并退出 q!-强制退出不保存),点击ESC进入命令模式。
- vi 文件名 -打开文件
+Line -直接定位到指定行,如果不加行号,定位到文件末尾
如果该文件存在,那么直接打开并进入编辑,如果不存在就新建文件
命令模式下移动光标操作
1.上下左右: h j k l
2.行内移动:w-向后移动一个单词 b-向前移动一个单词 0-行首 $(Shift+4)-行尾 ^(Shift+6)-非空白行首
3.行数移动:数字gg -移动到对应行数
4.屏幕移动:Ctrl+b-向上翻页 Ctrl+f-向下翻页 H-屏幕顶部 M-屏幕中部 L-屏幕下部
5.段落移动:{ -上一段(Shift+[) } -下一段(Shift+]) %(Shift+5) -匹配()
6.标记:mx-标记 'x-跳到标记位置 (x可以使a-Z任意字母)
命令模式下选中操作
- v -正常按照光标移动选中
- V -光标移动整行选中
- ctrl+v -光标移动垂直选中
命令模式下删除操作
- x -删除光标选中字符
- d(移动命令) -删除移动命令对应的内容,比如d0删除行尾到光标位置,dw删除光标位置至单词末尾,d]删除下一个段落。
- dd -删除光标所在行,可以+行号删除多行
- D -从光标处删除至行尾
命令模式下撤销操作
- u - 撤销上次命令
- ctrl+r -恢复撤销的命令
命令模式下复制粘贴
- y(移动命令) -复制移动命令的内容,选中文本点击y相当于复制选中文本
- yy -复制整行
- p -粘贴
命令d,x类似于ctrl+x
命令y 类似于ctrl+c
命令p 类似于ctrl+v
在其他软件中复制的内容,需要在编辑模式下才能粘贴。
命令模式下复制粘贴
- r -替换当前字符
命令模式下缩进重复
- >> -向后缩进
- << -向前缩进
- . -重复上一步操作
末行模式下查找
- /keyword -查找keyword,n向下N向上
- :%s/旧文本/新文本/g -全局查找替换 (:进入末行模式下)
- :s/旧文本/新文本/g -选中区域查找替换 (先使用v选中区域)
- :%s/旧文本/新文本/gc -确认是否替换(y-逐个检查替换 n-逐个检查不替换 a-全部替换 q-退出)
命令模式下插入文本
- i -当前字符前插入文本
- I -当前行首插入文本
- a -当前字符后插入文本
- A -当前行尾插入文本
- o -当前行之前插入一个空行
- O -当前行之后插入一个空行
命令模式下分屏
- :sp -横向分屏
- :vsp -纵向分屏
ctrl+w进行分屏管理,w切换分屏