目录
一.前言
因为已经在开始学Linux了,怕后面积了太多Linux的东西然后来不及写,所以会和JavaSE的教程交叉着更新,然后我的方向是Java的后端开发,所以在学Linux之前,我大致的过了一遍HTML、CSS和JavaScript三个和前端相关的课程,但是这些我就不更了,因为我也只是学点皮毛了解一下而已,那么久言归正传,开始我们的Linux基础教程
二.网络模式
1.Bridged桥接模式
• 不提供DHCP服务(DHCP服务指由服务器控制的一段IP地址范围,客户机登录服务器时会自动获取分配的IP地址和子网掩码)
• 虚拟机需要与外部的主机在同一个网段上,与局域网的其他机器没有区别
• 可以和局域网内的其他主机进行通信,也可以与外部网络通信
• 但容易和局域网内的其他主机引起IP地址冲突
2.Host-only仅主机模式
• 提供DHCP服务
• 虚拟机可以和物理机互相访问,但无法访问外部网络
3.NAT模式
• 提供DHCP服务
• 虚拟机可以和物理机互相访问,也可以访问外部网络
• 但无法访问局域网内的其他机器
三.常用基础命令
因为Linux的命令实在是太多了,所以这里就只是列举一些大家平时工作中常用到的命令
1.cd 切换目录,你想进到哪个目录,你就在cd后面跟那个目录的绝对路径
例:cd /usr/local/
2.ls 用来列举出该目录下的所有内容
例:ls -ltr /usr/local/
3.pwd 可以查看你目前在哪个目录下
4.cat 用来查看比较小的文件的内容
例:cat -n 123.txt
5.more 用来查看比较大的文件的内容
例:more System.map-3.10.0-123.el7.x86_64
6.head 用来查看文件前面n行的内容
例:head -20 System.map-3.10.0-123.el7.x86_64
7.tail 用来查看文件后面n行的内容
例:tail -20 System.map-3.10.0-123.el7.x86_64
8.touch 用来创建一个空的文件
例:touch 123.txt
9.mkdir 创建一个目录
例:mkdir -p /tmp/class/xd
10.rmdir 删除一个目录
例:rmdir /tmp/class/xd
11.cp 拷贝文件
例:cp 123.txt /var/
12.mv 移动或更名现有的文件或目录
例:mv 123.txt /var/
13.rm 删除文件或目录
例:rm -rf 123.txt
14.diff 对比文件之间的差异
例:diff 123.txt 456.txt
15.ssh 远程安全登录方式
例:ssh xxx.xxx.xxx.xxx
16.exit 退出命令
17.id 查看用户
例:id root
18.uname 查询主机信息
例:uname -a
19.ping 查看网络是否畅通
例:ping www.baidu.com
20.echo 标准输出命令
例:echo "1111"
21.man 查看帮助文档,其实就是你可以在这里查到所有的命令
例:man ls
22.help 查看内部命令帮助
例:help if
23.clear 清屏
24.who 当前在本地系统上的所有用户信息
25.uptime 查询系统信息
26.w 查询系统信息,和uptime命令相比,显示的格式不同
27.free 查看系统内存
28.wc 统计行数
例:wc -l 123.txt
29.grep 查找文件里符合条件的字符串
-n:输出行数
-w:精确匹配
-i:忽略大小写
-v:反向选择
30.find 查询文件
31.uniq 对排序好的内容进行统计
例:uniq -c 123.txt
32.sort 对内容进行排序
例:uniq -c 123.txt | sort -n
33.df 对文件系统的磁盘使用请款统计
34.netstat 查看网络端口的使用情况
35.hostname 查看主机名
36.ps 显示所有进程的信息,通常和grep组合使用
37.kill 杀进程
38.echo 判断上一条命令是否正确
39.firewall -cmd 查看防火墙的状态
40.cal 查看日历
Linux的命令是很多的,如果单靠背的话可能会傻掉的,最好还是直接多使用练习,练多了自然就会了
四.重定向
1.输入重定向
• 把要输入的信息写入到指定的文件中去
• 例:wc -l < 123.txt
2.输出重定向
• 把要输出的信息写入到一个文件中去,而不是将输出的信息输出到控制台
• > 代表覆盖写入;>> 代表追加写入
• 例:cat >>123.txt;cat>123.txt
3.错误重定向
• 把错误的信息写入到一个文件中去
4.相关符号
• & 代表等同的意思
• &> 代表不分正确与否
• | 管道符
• ;代表可以执行多条命令
• && 前面的命令执行成功后,后面的命令才可以执行
• || 前面的命令执行成功后,后面的命令不执行
五.目录分类与作用
• /:根目录,只存放目录,不存放文件
• /mnt:测试目录
• /root:root用户的家目录
• /home:普通用户的家目录
• /tmp:临时目录
• /var:存放经常修改的文件,如日志文件
• /boot:存放启动Linux时使用的内核文件
• /etc:默认放置配置文件的目录
• /bin:存放所有用户都可以执行的程序
• /sbin:存放只有root用户才能执行的程序
• /usr:存放用户自己的软件
• /dev:存放硬件设备
• /media:挂载光盘(挂载:mount/dev/cdrom/media;卸载:umount/dev/cdrom)
六.vi编辑器
1.命令模式
• $ 移动到这一行行尾
• gg 移动到文档第一行行首
• G 移动到文档最后一行行首
• x 删除内容
• dd 删除光标所在的整一行
• u 复原原来的操作
• v 选中范围后按y复制
• p 粘贴
2.插入模式
插入模式就没这么多要求了,属于是你乐意怎么改就怎么改
3.底行模式
底行模式都是先输入:后再输入以下命令:
• n 光标移动到第n行
• / 寻找想要的内容
• set nu 显示行号
• set nonu 取消行号显示
• q! 强制离开且不保存
• wq 离开并保存
• wq! 强制离开并保存
• !ls 暂时离开
七.用户管理和组管理
Linux用户分为root用户、普通用户和系统用户三种,其中root用户掌握着最高的权限
首先我们来看下面的图,这是一张用户的账号信息图
可以看到,这里是以:为分隔符,我们以最后一行Nicole用户为例来讲解每一列的含义
Nicole:用户名
:x:密码占位符
:1010:UID
:0:GID
::用户描述
:/home/Nicole:用户的家目录
:/bin/bash:登录后的shell解释
需要注意的是最后一列通常是有/bin/bash和/sbin/nologin两种,它们分别表示可以登陆和不可登录
1.用户添加
用户添加使用useradd命令
-u:指定用户UID
-d:指定用户主目录
-g:指定用户所属组
-r:指定用户为系统用户
-s:用户登录的shell解释器
-M:不创建主目录
例如:创建一个用户Nicole,指定UID为1010,指定家目录为/home/Nicole,指定所属组为root,指定shell解释器为/bin/bash,则可以输入如下命令:
useradd -u 1010 -d /home/Nicole -g root -s /bin/bash Nicole
需要注意的是,当我们登录一个用户后出现以下信息时:
bash-4.2$
我们只需要将相关信息复制到家目录即可:
cp -r /etc/skel/.bash* /home/Nicole/
2.用户删除
用户删除使用userdel命令,后面加上-r则表示连同家目录一起删除
3.用户组增删
添加用户组:groupadd 删除用户组:groupdel
4.修改用户信息
修改信息使用usermod命令,后可跟如下:
-u:指定用户UID
-d:指定用户主目录
-g:指定用户所属组
5.设置用户密码
设置用户密码使用passwd命令
echo "新密码" | passwd --stdin Nicole
八.文件属性和权限操作
1.文件属性
通过ls -lrti命令可以查看文件属性,如下图:
这里可以看到一共有九列内容,我们一列一列来讲解,以第一行为例:
134291184:i节点,可以理解成为文件id,一个i节点可以对应多个文件,但一个文件只有一个i节点
drwxr-xr-x:这里分为四部分,首先是第一个字母
-:代表文件;d:代表目录;l:代表软连接文件;b:代表块设备;c:代表硬件设备
剩下的九个位置三个为一组,分别表示所属者的权限、所属组的权限、其他权限
其中r(4):表示可读权限;w(2):表示可写权限;x(1):表示可操作权限
2:表示有多少文件名链接到这个节点
root:文件的所有者
root:文件的所有组
6:容量大小,单位默认为B
Jun 10 2014:文件创建或最近一次修改的时间
yp:文件名
这里引入了链接这个新的概念,链接分为软链接和硬链接
软连接:i节点和源文件不一样,一旦源文件删除,软链接就无法找到源文件了
硬链接:i节点与源文件一样,即使源文件删除,硬链接依旧可以正常使用,可用来备份文件防止误删
2.文件权限修改
文件权限修改使用chmod命令,后可跟-R表示递归,可以用来修改目录下的权限
例如我们需要给原本权限为-rwxr---w-的123.txt文件的所属组增加w和x权限,则可以这样命令:
chomd g+wx 123.txt
其他的权限修改方式雷同
九.文件归档与压缩
1.文件归档
相当于就是我们平时将许多文件装在一个文件夹里一样,可以节约磁盘的空间
2.压缩
压缩有两种命令:gzip和xz
2.1 gzip
不能用来压缩目录,只能压缩文件,压缩速度快但压缩程度低,跟.gz扩展名
保留源文件的压缩:gzip -c 123.txt > 123.txt.gz
不保留源文件的压缩:gzip 123.txt
保留源文件的解压:gunzip -c 123.txt.gz > 123.txt
不保留源文件的解压:gunzip 123.txt.gz
2.2 xz
目录和文件都可以压缩,压缩速度慢但压缩程度高,跟.xz扩展名
保留源文件压缩:xz -c 123.txt > 123.txt.xz
不保留源文件压缩:xz 123.txt
保留源文件解压:xz -d -k 123.txt.xz
不保留源文件解压:unxz 123.txt.xz
通常来说,我们文件归档和压缩是一起进行的,这里就有了一个新的命令:tar
-c:创建新文件
-f:指定文件格式
-v:显示详细过程
以gzip方式归档压缩:tar -zcvf vmware-tools.tar.gz vmware-tools-distrib
以xz方式归档压缩:tar -Jcvf vmware-tools.tar.xz vmware-tools-distrib
解档解压缩:tar -xf vmware-tools.tar.xz