Linux由来
Linux和Unix的关系
1. 安装和配置虚拟机
可以CSDN随便找一个看看
-
软件选择这块
-
三个基本分区安排(20个G为例子)
- boot分区 (引导) 1g
- swap分区 (相当于内存的延申 无形扩大了内存)2g
- root分区 (文件保存在root根分区)17g
- 快照,迁移,删除
三个网络配置讲解:
同一网段下相互通信 (192.168.0.xx)
-
桥接模式:虚拟机可以和外界通信,但容易造成ip冲突(因为占用该网段的主机数)
-
NAT模式: 网络地址转换模式–虚拟系统可以和外界通信,且不造成ip冲突
(我的理解:虚拟机严格意义上只和自己的主机互通,然后要访问外界其他的时候通过转换地址的方式,用主机的地址和外界胡同),,外界无法返回到虚拟机 -
主机模式: 独立的系统
虚拟机的克隆
- 方式一:直接复制咯 然后打开咯
- 方式二:虚拟机停机,然后克隆
2. 安装vmtools
可以设置虚拟机和主机共享文件夹,实际开发的时候上传下载需要远程方式完成
安装步骤:
前提:要在gcc环境下才可以安装
注意细节:登录虚拟机用root超级用户登录,可以桌面拷贝文件夹
-
进入虚拟机弹出光盘 然后点击 安装VMware tools,(灰色就重启)
-
然后把文件夹复制到 主文件夹的opt目录下
-
在终端解压 安装(./vmware-install.pl)
然后一路回车
3. Linux目录结构介绍
层级式树状目录结构
- root: 系统管理员用户的主目录
- boot:Linux启动的核心文件,包括一些连接文件和一些镜像文件
- dev: 设备管理器(Linux把硬件映射成文件来管理,,Linux下,万物皆文件)
- /bin:存放常用的指令
- /sbin:(super user)存放系统管理员使用的系统管理程序
- /home:存放普通用户的主目录(每个用户都有自己的一个文件夹,一般用用户名命名文件夹)
- /lib:系统开机所需要的最基本的动态连接共享库,其作用类似于windows中的DLL文件,几乎所有的程序都需要这些共享库
- /lost+found:一般是空的,当系统非法关机的时候,存放一些文件
- /etc:所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库 my.conf
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似windows的program files目录。
- /proc[不能动]:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息(修改可能导致系统崩溃)
- /srv service:缩写,该目录存放一些服务启动之后需要提取的数据
- /sys :这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的文件系统sysfs
- /tmp:这个目录是用来存放一些临时文件的
- media:识别一些设备
- mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
d:/myshare - /opt 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下,默认为空
- /usr/local [常用] :这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
- /var[常用]:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
- /selinux [security-enhanced linux]:SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置。
4. Linux远程
4.1 Xshell远程连接:
先检查虚拟机和主机是否ping通过:
- 虚拟机查看ip (ifconfig)
- 主机和虚拟机是否ping通
- 打开Xshell 新建
简单的验证
4.2 Xftp远程下载和上传
- 建立连接
中文编码问题设置
- 左边windows,右边虚拟机;
左边拖到右边咯
5. vi和vim指令
vi是Linux内置的文本编辑器
vim是vi的增强
三个模式转化:
快捷键:
- 拷贝当前行yy,拷贝当前行向下的5行 5yy,并粘贴(输入p)
- 删除当前行dd,删除当前行向下的5行5dd
- 在文件中查找某个单词[命令行下 /关键字,回车查找,输入n就是查找下一个]
- 设置文件的行号,取消文件的行号.[命令行下: set nu 和:set nonu]
- 编辑/etc/profile文件,在一般模式下,使用快捷键到该文档的最末行[G]和最首行[gg]
- 编辑/etc/profile文件,在一般模式下,并将光标移动到,输入20,再输入shift+g之间跳转到20行
- 在一般模式下,然后又撤销,u
6. 开机重启
- 开关机重启:
- shutdown -h now 立刻关机
- shutdown -h 1 1分钟后关机
- shutdown -r now 立刻重启
- halt 关机
- reboot 立刻重启
- sync 把内存数据同步到磁盘
细节注意:每次关机重启前,都同步数据。
7. 用户管理
一、用户
- 用户登录注销:
基本介绍:
- 一般少用root账号,权限太大,避免操作失误。可以利用普通账户登录,然后用"su - 超级用户名" 转换,
- 输入logout即可注销用户
- logout在图形界面运行无效
- 添加用户
添加用户:
- 添加用户:useradd 用户名 (添加后,会在/home下新建一个同名用户名目录)(也可以指定目录 useradd -d 路径 用户名)
- 设密码root下,passwd 新建用户名
加一个wts01用户 密码000000;wts02 密码000000
-
删除用户:
-
查询用户:id 用户名
-
用户转换: su - 用户
返回时候,su或者logout/exit(注意退出系统) -
查看登录用户:whoami 和 who am i
- whoami 当前登录的用户
- who am i 连接Linux登录的用户(我是以wts登录的,所以不管转哪个用户都是返回wts)
二、用户组
- 组
- 创建组:groupadd 组名
- 移动用户到特定组 : groupmod -g 组名 用户名
- 创建用户到指定组 : useradd -g 组名 用户名
- 用户和组相关文件
8.实用指令
8.1 运行级别
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务(开发常用)
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用3和5,简化后:
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
-
命令:init[0123456] 切换级别
-
得到当前级别:systemctl get-default
-
设置当前级别:systemctl set-default graphical.target(设置成级别5)
8.2 修改密码
我没看
8.3 帮助指令
- man 命令:
比如ls:man ls (q退出)
注意:
-
ls -a (列出 ,包括隐藏文件)
-
ls -l (单列输出)
ls -al(单列输出隐藏文件) -
ls -l root/ (root目录下所有文件,单列输出)
- help 命令:
help cd
8.4 文件目录命令
- pwd 当前工作目录的绝对路径
- ls 显示目录下的文件
ls -a
ls - l
ls - lh (h表示人性化输出,在查看文件大小时候默认是字节大小,用h可以换成看得懂的单位) - cd 移动
cd ~ 回到家目录
cd… 回到当前目录的上一级 - mkdir 创建目录
mkdir -p 创建多级目录 - rmdir 删除空目录
rm -rf 要删除的目录名 : 强制删除 - touch 创建空文件
- cp 拷贝文件到指定目录
cp hello.txt /opt/
cp -r /home/bbb /opt 丢递归多级拷贝
\cp -r /home/bbb /opt 强制覆盖 - rm 删除文件或者目录
rm -r 递归删除整个文件夹
rm -f 强制删除不提示 - mv 重命名或者移动
mv oldname newname (重命名)
mv /home/hello.txt /opt (移动)
mv /home/hello.txt /opt/helloworld.txt(移动并重命名) - cat 查看文件内容,只能浏览不能修改 (安全)
cat -n /ect/profile (查看并带行号)
cat -n /ect/profile | more(查看并带行号,一行一行交互看,摁enter下一行,|more 是管道命令 ) - more
more是基于vi编辑器的文本过滤器,他以全屏的方式按页显示文本内容
交互如下
eg:more /etc/profile
-
less
分屏查看文件内容,和more相似,比more强大,支持各个显示终端
好处:(动态加载)对于大文件具有高效率的查看
弹幕注意:乱码的小伙伴可以在Windows下打开TXT文件,选择另存为将编码格式改成UTF-8点击确定,再把已经转换成UTF-8格式的文件传输到Linux系统打开,就不会有乱码的情况啦 -
echo
输出内容到控制台
-
head
查看文件开头 默认是10行
head -n 5 (看前五行)
eg: head -n 12 /etc/profile -
tail
查看文件末尾 默认10行
tail -n 5
tail -f (实时追踪文件的更新) -
“>” 输出重定向 和 ">>"追加
ls -l > 文件 (列表内容写入文件 覆盖写入)
ls -al >> 文件 (列表内容追加到文件中)
ls -l /home > /home/info.txt (没有info.txt文件就自动创建) -
ln 软连接 (相当于快捷方式,超链接)
ln -s [原文件或目录] [软连接名]
ln -s /root myroot
删除软连接(rm) -
history 历史指令
history 10 最近10条指令
!5 执行最近指令序号是5的
8.5 日期时间指令
- date
- date(功能描述:显示当前时间)
- date +%Y(功能描述:显示当前年份)
- date +%m(功能描述:显示当前月份)
- date +%d(功能描述:显示当前是哪一天)
- date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
- date -s 时间字符串 (设置时间)
date -s “2021-10-13 13:00:00” - cal 查看当前日历
cal 1998 查看1998 所有日历
8.6 搜索查找指令
- find 从指定目录往下递归遍历查找
find [搜索范围] [选项]
find /opt -user root (查找opt目录下用户名为root的文件)
find / -size +200M (查找Linux系统下所有文件大于200M的文件)
(+大于;-小于;没有等于)(单位K,M,G) - locate 快速定位文件
利用事先建立的系统中所有的文件名称和目录路径的locate数据库实现快速查找;无须遍历整个文件系统,速度较快;定期更新locate时刻,保持准确性
先updatedb 然后 locate 文件
- which 查看命令在哪个目录
which ls (查看ls在哪个目录) - grep过滤指令 和 管道指令 | (管道指令将前一个处理结果传入到后面的命令)
8.7 压缩解压指令
-
gzip压缩 和 gunzip解压
gzip 压缩成 *.gz的文件 -
zip压缩和unzip解压(项目打包好用)
-
zip [选项] xxx.zip
zip -r myhome.zip /home/(递归压缩) -
unzip [选项] xxx.zip
unzip -d [指定目录] [压缩源文件] (压缩到指定 目录)
unzip -d /opt/temp/ /home/myhome.zip (把zip解压到temp下) -
tar 打包成 .tar.gz的文件
tar [选项] xxx.tar.gz 打包内容
压缩:解压如下:
注意:压缩-zcvf ; 解压-zxvf