一、Linux概述
Linux内核最初只是由芬兰人林纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE Linux更多的是应用在服务器上。
Linux特点
- 安装VMWare虚拟机
- 购买云服务器(推荐)
man
获得帮助信息
help
获得shell内置命令的帮助信息
history
查看所敲命令历史
四、文件目录管理
目录名 | 功能介绍 |
---|---|
/bin |
是Binary的缩写,这个目录存放着系统必备执行命令 |
/boot |
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里 |
/dev |
Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 |
★/etc |
所有的系统管理所需要的配置文件和子目录。 |
/home |
存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 |
/lib |
系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 |
★/root |
该目录为系统管理员,也称作超级权限者的用户主目录。 |
★/usr |
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。 |
/tmp |
这个目录是用来存放一些临时文件的。 |
★/sbin |
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 |
/proc |
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 |
/opt |
这是给主机额外安装软件所摆放的目录。比如你安装一个MySQL数据库则就可以放到这个目录下。默认是空的。 |
/sys |
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。 |
/selinux |
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙 |
/srv |
service缩写,该目录存放一些服务启动之后需要提取的数据。 |
/net |
存放着和网络相关的一些文件. |
/media |
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 |
/lost+found |
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 |
/mnt |
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 |
/misc |
该目录可以用来存放杂项文件或目录,即那些用途或含义不明确的文件或目录可以存放在该目录下。 |
/var |
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 |
五、用户与用户组管理
六、进程管理
七、网络管理
八、磁盘管理
压缩工具
九、软件包管理
四、常用基本命令
常用快捷键:
1)ctrl + c:停止进程
2)ctrl+l:清屏
3)ctrl + q:退出
4)tab键 :自动补全
5)上下键:查找执行过的命令
4.2、用户管理命令
useradd
添加新用户
useradd 用户名
passwd
设置用户密码
passwd 用户名
id
判断用户是否存在
id 用户名
su
切换用户
su 用户名称 #切换用户,只能获得用户的执行权限,不能获得环境变量
su - 用户名称 #切换到用户并获得该用户的环境变量及执行权限
userdel
删除用户
userdel 用户名 #删除用户但保存用户主目录
userdel -r 用户名 #用户和用户主目录,都删除
who
查看登录用户信息
whoami #显示自身用户名称
who am i #显示登录用户的用户名
who #看当前有哪些用户登录到了本台机器上
usermod
修改用户所属组
usermod -g 用户组 用户名
cat /etc/passwd
查看创建了哪些用户
4.3、用户组管理命令
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,
如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
groupadd
新增组
groupadd 组名
groupdel
删除组
groupdel 组名
groupmod
修改组
groupmod -n 新组名 老组名
cat /etc/group
查看创建了哪些组
4.4、文件目录命令
pwd
显示当前工作目录的绝对路径
ls [选项]
列出目录的内容
- -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
mkdir
创建一个新的目录
- -p:创建多层目录
mkdir test
mkdir -p test/demo
rmdir
删除一个空的目录
rm
移除文件或目录
- -rf : 递归删除目录中所有内容
rm -rf test
touch
创建空文件
touch demo.java
cd
切换目录
- cd 绝对路径
- cd 相对路径
- cd ~或者cd 返回root目录
- cd - 回到上一次所在目录
- cd .. 返回上级目录
# 切换到根目录
cd /
cd test
cp
复制文件或目录
# 复制test.java文件到test目录
cp test.java test
# 递归复制test整个文件夹到test1
cp -r test test1
mv
移动文件与目录或重命名
# 重命名
mv oldNameFile newNameFile
# 递归移动文件
mv /temp/movefile /targetFolder
cat [options] 文件名
查看文件内容 — 从第一行开始显示
- -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
- -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -E :将结尾的断行字节 $ 显示出来;
- -n :列出行号,连同空白行也会有行号,与 -b 的选项不同;
- -T :将 [tab] 按键以 ^I 显示出来;
- -v :列出一些看不出来的特殊字符
tac
查看文件内容 — 从最后一行开始显示
more
查看文件内容 — 一页一页的显示文件内容
- 空白键 (space):代表向下翻一页;
- Enter:代表向下翻『一行』;
- q:代表立刻离开 more ,不再显示该文件内容。
- Ctrl+F 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
less
查看文件内容
less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用[pageup] [pagedown]往回滚动。
- 空白键 :向下翻动一页;
- [pagedown]:向下翻动一页;
- [pageup] :向上翻动一页;
- /字串 :向下搜寻『字串』的功能;n:向下查找;N:向上查找;
- ?字串 :向上搜寻『字串』的功能;n:向上查找;N:向下查找;
- q :离开 less 这个程序;
head
查看文件内容 — 只看头几行。
# 查看文件头10行内容,10可以是任意行数
head -n 10 文件
tail
查看文件内容 — 只看尾巴几行
tail -n 10 文件 #查看文件头10行内容,10可以是任意行数
tail -f 文件 #实时追踪该档的所有更新
查看日志比较方便
重定向命令
echo
ln软链接
4.5、文件权限命令
文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用
ll
或者ls –l
命令来显示一个文件的属性以及文件所属的用户和组。
一共有10个字符,如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:
- 0首位表示类型
- 代表文件
d 代表目录
c 字符流,装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
s socket
p 管道
l 链接文档(link file);
b 设备文件,装置文件里面的可供储存的接口设备(可随机存取装置)
- 第1-3位确定属主(该文件的所有者)拥有该文件的权限。—-User
- 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—-Group
- 第7-9位确定其他用户拥有该文件的权限 —-Other | 0 | 1-3 | 4-6 | 7-9 | | —- | —- | —- | —- | | 文件类型 | 属主权限 | 属组权限 | 其他用户权限 | | | R w x | R - x | R - x | | | 读 写 执行 | 读 写 执行 | 读 写 执行 |
r x w作用文件和目录的不同解释
文件
[ r ] 代表可读(read): 可以读取,查看
[ w ] 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ] 代表可执行(execute):可以被系统执行
目录
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
如果查看到是文件:链接数指的是硬链接个数。创建硬链接方法ln [原文件] [目标文件]
如果查看到是文件夹:链接数指的是子文件夹个数
权限改变
**chmod**
改变权限
- chmod [{ugoa}{+-=}{rwx}] [文件或目录] [mode=421 ] [文件或目录]
改变文件或者目录权限
文件: r-查看;w-修改;x-执行文件
目录: r-列出目录内容;w-在目录中创建和删除;x-进入目录
删除一个文件的前提条件:该文件所在的目录有写权限,你才能删除该文件。
**chown**
改变所有者
- chown [-R][ 最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
- -R: 表示递归修改文件夹中的所有文件的所有者和组
chown liuyingjie lyj.java
修改前:
drwxrwxrwx. 2 root root 4096 9月 3 21:20 liu
修改后:
[root@hadoop101 xiyou]# chown -R atguigu:atguigu sunhouzi/
[root@hadoop101 xiyou]# ll
drwxrwxrwx. 2 lyj lyj 4096 9月 3 21:20 liu
**chgrp**
改变所属组
- chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
✨4.6、进程线程命令
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
ps
查看系统中所有进程
ps -aux # 查看系统中所有进程
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
top
查看系统健康状态
top [options]
(1)options:
-d 秒数:指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令
-i:使top不显示任何闲置或者僵死进程。
-p:通过指定监控进程ID来仅仅监控某个进程的状态。
(2)操作选项:
P: 以CPU使用率排序,默认就是此项
M: 以内存的使用率排序
N: 以PID排序
q: 退出top
第一行信息为任务队列信息
系统当前时间 | 22:27:57 |
---|---|
系统的运行时间,本机已经运行37天,13小时49分钟 | up 37 day 13:49 |
当前登录1个用户 | 1 user |
系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 | load average: 0.02, 0.10, 0.08 |
第二行为进程信息
Tasks: | |
---|---|
119 total | 系统中的进程总数 |
3 running | 正在运行的进程数 |
116 sleeping | 睡眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |
第三行为CPU信息
Cpu(s): | |
---|---|
0.1%us | 用户模式占用的CPU百分比 |
0.1%sy | 系统模式占用的CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
99.7%id | 空闲CPU的CPU百分比 |
0.1%wa | 等待输入/输出的进程的占用CPU百分比 |
0.0%hi | 硬中断请求服务占用的CPU百分比 |
0.1%si | 软中断请求服务占用的CPU百分比 |
0.0%st | st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
第四行为物理内存信息
Mem: | |
---|---|
625344k total | 物理内存的总量,单位KB |
571504k used | 已经使用的物理内存数量 |
53840k free | 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了 |
65800k buffers | 作为缓冲的内存数量 |
第五行为交换分区(swap)信息
Swap: | |
---|---|
524280k total | 交换分区(虚拟内存)的总大小 |
0k used | 已经使用的交互分区的大小 |
524280k free | 空闲交换分区的大小 |
409280k cached | 作为缓存的交互分区的大小 |
pstree
查看进程树
pstree [选项]
pstree -p: #显示进程的PID
pstree -u: #显示进程的所属用户
kill
终止进程
kill -9 pid进程号 # -9 表示强迫进程立即停止
netstat
显示网络统计信息
netstat -anp #显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容
✨4.7、压缩解压命令
gzip/gunzip
压缩
gzip+文件 #压缩文件,只能将文件压缩为*.gz文件
gunzip+文件.gz #解压缩文件命令
注意
- 只能压缩文件不能压缩目录
- 不保留原来的文件
zip/unzip
压缩
zip + 参数 + XXX.zip + 将要压缩的内容
#压缩文件和目录的命令,window/linux通用且可以压缩目录且保留源文件
tar
打包
tar + 参数 + XXX.tar.gz + 将要打包进去的内容
#打包目录,压缩后的文件格式.tar.gz
4.8、搜索查找命令
find
查找文件或者目录
find [搜索范围] [匹配条件]
#按文件名:根据名称查找/目录下的filename.txt文件。
find /opt/ -name *.txt
#按拥有者:查找/opt目录下,用户名称为-user的文件
find /opt/ -user root
#按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于
find /home -size +204800
grep
过滤查找及“|”管道符
- 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
grep+参数+查找内容+源文件
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
which
文件搜索命令
which 命令 #搜索命令所在目录及别名信息