一、Linux概述

Linux内核最初只是由芬兰人林纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE Linux更多的是应用在服务器上。

Linux特点

  • Linux里面一切皆是文件
  • Linux里面没有后缀名这一说
  • Linux里输入命令没报错即成功

    二、Linux安装

  1. 安装VMWare虚拟机
  2. 购买云服务器(推荐)

man 获得帮助信息

help获得shell内置命令的帮助信息

history查看所敲命令历史

四、文件目录管理

Linux入门 - 图1

目录名 功能介绍
/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添加新用户

  1. useradd 用户名

passwd设置用户密码

  1. passwd 用户名

id 判断用户是否存在

  1. id 用户名

su切换用户

  1. su 用户名称 #切换用户,只能获得用户的执行权限,不能获得环境变量
  2. su - 用户名称 #切换到用户并获得该用户的环境变量及执行权限

userdel 删除用户

  1. userdel 用户名 #删除用户但保存用户主目录
  2. userdel -r 用户名 #用户和用户主目录,都删除

who查看登录用户信息

  1. whoami #显示自身用户名称
  2. who am i #显示登录用户的用户名
  3. who #看当前有哪些用户登录到了本台机器上

usermod修改用户所属组

  1. usermod -g 用户组 用户名

cat /etc/passwd 查看创建了哪些用户

4.3、用户组管理命令

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,

如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

groupadd新增组

  1. groupadd 组名

groupdel删除组

  1. groupdel 组名

groupmod修改组

  1. groupmod -n 新组名 老组名

cat /etc/group 查看创建了哪些组

4.4、文件目录命令

pwd 显示当前工作目录的绝对路径

ls [选项] 列出目录的内容

  • -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

mkdir 创建一个新的目录

  • -p:创建多层目录
  1. mkdir test
  2. mkdir -p test/demo

rmdir 删除一个空的目录

rm 移除文件或目录

  • -rf : 递归删除目录中所有内容
  1. rm -rf test

touch创建空文件

  1. touch demo.java

cd 切换目录

  • cd 绝对路径
  • cd 相对路径
  • cd ~或者cd 返回root目录
  • cd - 回到上一次所在目录
  • cd .. 返回上级目录
  1. # 切换到根目录
  2. cd /
  3. cd test

cp 复制文件或目录

  1. # 复制test.java文件到test目录
  2. cp test.java test
  3. # 递归复制test整个文件夹到test1
  4. cp -r test test1

mv移动文件与目录或重命名

  1. # 重命名
  2. mv oldNameFile newNameFile
  3. # 递归移动文件
  4. 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查看文件内容 — 只看头几行。

  1. # 查看文件头10行内容,10可以是任意行数
  2. head -n 10 文件

tail 查看文件内容 — 只看尾巴几行

  1. tail -n 10 文件 #查看文件头10行内容,10可以是任意行数
  2. tail -f 文件 #实时追踪该档的所有更新

查看日志比较方便

重定向命令

echo

ln软链接

Linux入门 - 图2

4.5、文件权限命令

文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组。

Linux入门 - 图3

一共有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):可以进入该目录

Linux入门 - 图4

如果查看到是文件:链接数指的是硬链接个数。创建硬链接方法ln [原文件] [目标文件]

如果查看到是文件夹:链接数指的是子文件夹个数

权限改变

**chmod**改变权限

  • chmod [{ugoa}{+-=}{rwx}] [文件或目录] [mode=421 ] [文件或目录]

改变文件或者目录权限

文件: r-查看;w-修改;x-执行文件

目录: r-列出目录内容;w-在目录中创建和删除;x-进入目录

删除一个文件的前提条件:该文件所在的目录有写权限,你才能删除该文件。

**chown**改变所有者

  • chown [-R][ 最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
  • -R: 表示递归修改文件夹中的所有文件的所有者和组
  1. chown liuyingjie lyj.java
  2. 修改前:
  3. drwxrwxrwx. 2 root root 4096 9 3 21:20 liu
  4. 修改后:
  5. [root@hadoop101 xiyou]# chown -R atguigu:atguigu sunhouzi/
  6. [root@hadoop101 xiyou]# ll
  7. drwxrwxrwx. 2 lyj lyj 4096 9 3 21:20 liu

**chgrp**改变所属组

  • chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)

✨4.6、进程线程命令

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

ps查看系统中所有进程

  1. ps -aux # 查看系统中所有进程

Linux入门 - 图5

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查看系统健康状态

  1. top [options]

(1)options:

-d 秒数:指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令

-i:使top不显示任何闲置或者僵死进程。

-p:通过指定监控进程ID来仅仅监控某个进程的状态。

  1. 2)操作选项:

P: 以CPU使用率排序,默认就是此项

M: 以内存的使用率排序

N: 以PID排序

q: 退出top

Linux入门 - 图6

第一行信息为任务队列信息

系统当前时间 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查看进程树

  1. pstree [选项]
  2. pstree -p #显示进程的PID
  3. pstree -u #显示进程的所属用户

kill终止进程

  1. kill -9 pid进程号 # -9 表示强迫进程立即停止

netstat显示网络统计信息

  1. netstat -anp #显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容

✨4.7、压缩解压命令

gzip/gunzip压缩

  1. gzip+文件 #压缩文件,只能将文件压缩为*.gz文件
  2. gunzip+文件.gz #解压缩文件命令

注意

  • 只能压缩文件不能压缩目录
  • 不保留原来的文件

zip/unzip压缩

  1. zip + 参数 + XXX.zip + 将要压缩的内容
  2. #压缩文件和目录的命令,window/linux通用且可以压缩目录且保留源文件

tar打包

  1. tar + 参数 + XXX.tar.gz + 将要打包进去的内容
  2. #打包目录,压缩后的文件格式.tar.gz

4.8、搜索查找命令

find查找文件或者目录

  1. find [搜索范围] [匹配条件]
  2. #按文件名:根据名称查找/目录下的filename.txt文件。
  3. find /opt/ -name *.txt
  4. #按拥有者:查找/opt目录下,用户名称为-user的文件
  5. find /opt/ -user root
  6. #按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于
  7. find /home -size +204800

grep过滤查找及“|”管道符

  • 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
  1. grep+参数+查找内容+源文件

-c:只输出匹配行的计数。

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

which文件搜索命令

  1. which 命令 #搜索命令所在目录及别名信息