Linux基础快速回顾

整理自Linux 学习笔记(借鉴黑马程序员Linux课程)_itheima linuxpdf文档-CSDN博客

Linux 教程 | 菜鸟教程 (runoob.com)

Linux教程

由Linux系统内核系统级应用程序两部分组成。

内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO

系统级应用程序,可供用户快速上手操作系统,如:文件管理器、任务管理器

由于内核无法被用户直接使用,需要配合应用程序,所以在内核之上,封装系统级应用程序,组合在一起就称之为Linux发行版。

目录结构

是一个树型结构,只有一个根目录 “ / ”,所有文件都在它下面

  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
  • /boot:
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • /dev :
    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
  • /etc:
    etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
  • /lib
    lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /media
    linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
  • /opt
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
  • /proc
    proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。
  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
  • /srv
    该目录存放一些服务启动之后需要提取的数据。
  • /sys

这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs

sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
  • /usr
    usr 是 unix system resources(unix 系统资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
  • /usr/bin:
    系统用户使用的应用程序。
  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src:
    内核源代码默认的放置目录。
  • /var
    var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

Linux命令

命令行:即Linux终端(Terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。

命令:即Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈。

基础格式

command [-options] [parameter]

  • command:命令本身
  • -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
  • parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等

ls命令

列出目录下的内容 ls [-a -l -h] [Linux路径]

-a 选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹)

只要以" . "开头,就能自动隐藏

-l 选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息

-h 表示以易于阅读的形式,列出文件大小,如 K、M、G

必须搭配 -l 使用

HOME目录和工作目录

Linux系统的命令行终端,在启动的时候,默认会加载:

  • 当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容
  • HOME目录:每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名

目录切换相关命令(cd/pwd)Change Directory

  • cd命令无需选项,只有参数,表示要切换到哪个目录下
  • cd命令直接执行,不写参数,表示回到用户的HOME目录

pwd 查看当前工作目录

绝对路径:以根目录为起点,路径描述以/开头

相对路径:以当前目录为起点,路径描述无需以/开头

特殊路径符:

" . " 表示当前目录,比如: cd ./Desktop 表示切换到当前目录下的Desktop目录内,和 cd Desktop效果一致

" .. " 表示上一级目录,比如:cd.. 即可切换到上一级目录,cd../.. 切换到上二级的目录

" ~ " 表示HOME目录,比如:cd~ 即可切换到HOME目录cd~/Desktop,切换到HOME内的Desktop目录

创建目录命令(mkdir)

语法:mkdir [-p] Linux路径

  • -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

文件操作命令

touch创建文件

touch Linux路径 无选项,参数必填

cat命令查看文件内容

cat Linux路径

more命令查看文件内容

  • cat是直接将内容全部显示出来
  • more支持翻页,如果文件内容过多,可以一页页的展示

空格翻页,通过 q 退出查看

cp命令复制文件\文件夹

cp [-r] 参数1 参数2

  • -r选项,可选,用于复制文件夹使用,表示递归
  • 参数1,Linux路径,表示被复制的文件或文件夹
  • 参数2,Linux路径,表示要复制去的地方

mv移动文件\文件夹

mv 参数1 参数2

参数1,Linux路径,表示被移动的文件或文件夹

参数2,Linux路径,表示要移动去的地方,如果目录不存在,则进行改名

rm删除文件\文件夹

rm [-r -f] 参数1 参数2 ...... 参数N

-r选项用于删除文件夹

-f表示force,强制删除 root管理员用户删除内容会有提示

  • 参数1、参数2、......、参数N 表示要删除的文件或文件夹路径,按照空格隔开

支持通配符 *,用来做模糊匹配 *test*,表示匹配任何包含test的内容

grep命令

从文件或其他信息中通过关键词查找其所在文件行。

grep [-n] 关键字 文件路径

-n,可选,表示在结果中显示匹配的行的行号

关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用 " " 将关键字包围起来

文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口

wc命令做数量统计

统计文件的行数、单词数量等

wc [-c -m -l -w] 文件路径

  • 选项,-c,统计bytes数量
  • 选项,-m,统计字符数量
  • 选项,-l,统计行数
  • 选项,-w,统计单词数量
  • 参数,文件路径,被统计的文件,可作为内容输入端口

管道符: |

将管道符左边命令的结果,作为右边命令的输入

which命令

查看所使用的一系列命令的程序文件存放在哪里

find命令 - 按文件名查找文件

find 起始路径 -name "被查找文件名"

find 起始路径 -size +\- n[kMG]

  • 查找小于10KB的文件:find / -size -10k

echo命令

在命令行内输出指定内容

无需选项,只有一个参数,表示要输出的内容,复杂内容可以用 " " 包围(因为不包围的话,空格后很容易被识别为参数2,尽管echo不受影响

反引号 `

被 ` 包围的内容,会被作为命令执行,而非普通字符 echo `pwd`(tab上面的

重定向符

>,将左侧命令的结果,覆盖写入到符号右侧指定的文件中

>>,将左侧命令的结果,追加写入到符号右侧指定的文件中

tail命令

查看文件尾部内容,跟踪文件的最新更改

tail [-f -num] Linux路径

  • 选项,-f,表示持续跟踪
  • 选项,-num,表示,查看尾部多少行,不填默认10行

vi编辑器

vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能

三种工作模式

命令模式:所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能 此模式下,不能自由进行文本编辑

输入模式:编辑模式,插入模式。此模式下,可以对文件内容进行自由编辑。

底线命令模式:以:开始,通常用于文件的保存、退出

vim 文件路径

  • 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件

会打开一个新的窗口,此时这个窗口就是:命令模式窗口

命令模式是 vi编辑器 的入口和出口

  • 进入 vi编辑器会进入命令模式
  • 通过命令模式输入键盘指令,可以进入输入模式
  • 输入模式需要通过esc退回到命令模式。
  • 然后通过命令输入:可以进入底线命令模式

Linux用户和权限

root用户(超级管理员)

su和exit命令

su [-] [用户名]

- 符号表示是否在切换用户后加载环境变量

参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root

切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d

使用root用户切换到其它用户,无需密码

sudo命令

sudo 其他命令

用户、用户组管理

  • 针对用户的权限控制
  • 针对用户组的权限控制

用户组管理

需root用户执行

  • 创建用户组

groupadd用户组名

  • 删除用户组

groupdel用户组名

用户管理

以下命令需root用户执行

  • 创建用户

useradd [-g -d] 用户名

选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g

选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

删除用户

userdel [-r] 用户名

选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留

查看用户所属组

id [用户名]

参数:用户名,被查看的用户,如果不提供则查看自身

修改用户所属组

usermod -aG 用户组 用户名,将指定用户加入指定用户组

getent

使用getent命令,可以查看当前系统中有哪些用户

语法:getent passwd

显示共有7份信息,分别是:

用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

查看权限控制

认知权限信息

ls -l 可以以列表形式查看内容,并显示权限细节

  • 序号1,表示文件、文件夹的权限控制信息
  • 序号2,表示文件、文件夹所属用户
  • 序号3,表示文件、文件夹所属用户组
  • 序号1:如drwxr-xr-x

  • r表示读权限 针对文件可以查看文件内容,针对文件夹,可以查看文件夹内容,如ls命令
  • w表示写权限 针对文件表示可以修改此文件,针对文件夹,可以在文件夹内:创建、删除、改名等操作
  • x表示执行权限 针对文件表示可以将文件作为程序执行,针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

chmod命令

修改文件、文件夹的权限信息,只有文件、文件夹的所属用户或root用户可以修改。

chmod [-R] 权限 文件或文件夹

-R,对文件夹内的全部内容应用同样的操作

chmod u=rwx,g=rx,o=x hello.txt

权限修改为:rwxr-x--x u表示user所属用户权限,g表示group组权限,o表示other其它用户权限

权限的数字序号 0~7即二进制000到111表示

第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。

chown命令

修改文件、文件夹所属用户和用户组,只适用于root用户执行

chown [-R] [用户][ : ][用户组] 文件或文件夹

Linux 实用操作

ctrl + c 强制停止
ctrl + d 退出或登出(不能用于退出 vi/vim
历史命令搜索
  • 可以通过history命令,查看历史输入过的命令
  • 可以通过:!命令前缀,自动执行上一次匹配前缀的命令
  • 可以通过快捷键:ctrl + r,输入内容去匹配历史命令
  • 回车键可以直接执行
  • 键盘左右键,可以得到此命令(不执行)
光标移动快捷键
  • ctrl + a,跳到命令开头
  • ctrl + e,跳到命令结尾
  • ctrl + 键盘左键,向左跳一个单词
  • ctrl + 键盘右键,向右跳一个单词
清屏

ctrl + l/clear

软件安装

yum 命令(CentOS

yum [-y] [install | remove | search] 软件名称

-y,自动确认,无需手动确认安装或卸载过程

需要root权限,可以su切换到root,或使用sudo提权。yum命令需要联网。

apt命令(Ubuntu

apt [-y] [install | remove | search] 软件名称

systemctl

systemctl start | stop | status | enable | disable 服务名

  • enable 开启开机自启
  • disable 关闭开机自启
  • NetworkManager,主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • sshd,ssh服务

软连接

ln命令创建软连接(类似快捷方式

ln -s 参数1 参数2

-s选项,创建软连接

参数1:被链接的文件或文件夹

参数2:要链接去的目的地

日期、时期

date命令

date [-d] [+格式化字符串]

-d 按照给定的字符串显示日期,一般用于日期计算

格式化字符串:通过特定的字符串标记,来控制显示的日期格式

IP地址

ifconfig,查看本机的ip地址

127.0.0.1,这个IP地址用于指代本机

0.0.0.0,特殊IP地址

  • 可以用于指代本机
  • 可以在端口绑定中用来确定绑定关系
  • 在一些IP地址限制中,表示所有IP的意思,如放行规则设置0.0.0.0,表示允许任意IP访问
主机名

hostname查看主机名

hostnamectl set-hostname 主机名,修改主机名(需root)

域名解析
  • 先查看本机的记录(本地地址本)
  • 再联网去DNS服务器(如114.114.114.114,8.8.8.8等)询问
配置主机名映射

在Windows系统的:C:\Windows\System32\drivers\etc\hosts文件中配置记录 即可通过域名(主机名)连接

虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的;

DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更

网络传输

ping命令

检查指定的网络服务器是否是可联通状态

语法:ping [-c num] ip或主机名

  • -c,检查的次数,不使用-c选项,将无限次数持续检查
wget命令

非交互式的文件下载器,可以在命令行内下载网络文件

wget [-b] url

-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件

curl命令

发送http网络请求,可用于:下载文件、获取信息等

curl [-O] url

-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件

端口
  • 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
  • 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的

公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口

注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务

动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。

netstat命令,查看指定端口的占用情况

进程管理

为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程

并会为每一个进程都分配一个独有的:进程ID(进程号)

ps命令查看Linux系统中的进程信息

ps [-e -f]

  • -e,显示出全部的进程
  • -f,以完全格式化的形式展示全部信息

UID:进程所属的用户ID

PID:进程的进程号ID

PPID:进程的父ID(启动此进程的其它进程)

C:此进程的CPU占用率(百分比)

STIME:进程的启动时间

TTY:启动此进程的终端序号,如显示?,表示非终端启动

TIME:进程占用CPU的时间

CMD:进程对应的名称或启动路径或启动命令

关闭进程

kill [-9] 进程ID

-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制

主机状态

查看系统资源占用

top命令查看CPU、内存使用情况

每5秒刷新一次,语法:直接输入top,按q或ctrl+c退出

-p 只显示某个进程的信息

-d 设置刷新时间,默认是5s

-c 显示产生进程的完整命令,默认是进程名

-n 指定刷新次数,比如 top -n 3,刷新输出3次后退出

-b 以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如 top -b -n 3 > /tmp/top.tmp

-i 不显示任何闲置(idle)或无用(zombie)的进程

-u 查找特点用户启动的进程

top交互式选项
磁盘信息监控

df[-h] 查看硬盘的使用情况

iostat[-x][num1][num2] 查看CPU、磁盘的相关信息

  • 选项:-x,显示更多信息
  • num1:数字,刷新间隔,num2:数字,刷新几次

tps:该设备每秒的传输次数。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的

网络状态监控

sar命令查看网络的相关统计

sar -n DEV num1 num2

  • -n,查看网络,DEV表示查看网络接口
  • num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

环境变量

env命令即可查看当前系统中记录的环境变量,是一种KeyValue型结构,即名称和值

环境变量:PATH

记录了系统执行任何命令的搜索路径

当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体

$符号被用于取“变量”的值 $环境变量名

自行设置环境变量

临时设置,语法:export 变量名 = 变量值

永久生效

  • 针对当前用户生效,配置在当前用户的:~/.bashrc 文件中
  • 针对所有用户生效,配置在系统的:/etc/profile 文件中
  • 并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效

压缩、解压

  • .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装
  • .gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积

tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N

  • -c 创建压缩文件,用于压缩模式
  • -v 显示压缩、解压过程,用于查看进度
  • -x 解压模式
  • -f 要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
  • -z gzip模式,不使用-z就是普通的tarball格式
  • -C 选择解压的目的地,用于解压模式
  • tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
  • tar -xvf test.tar tar -xvf test.tar -C/home/itheima
  • -C 选项单独使用,和解压所需的其它参数分开

zip [-r] 参数1 参数2 ... 参数N 包含文件夹的时候,需要使用-r

unzip [-d] 参数 -d 指定要解压去的位置,同tar的-C选项

Shell教程

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

扩展名并不影响脚本执行

实例:#!/bin/bash

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

运行 Shell 脚本

1、作为可执行程序

chmod +x ./test.sh #使脚本具有执行权限

./test.sh #执行脚本

直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

2、作为解释器参数

直接运行解释器,其参数就是 shell 脚本的文件名

/bin/sh test.sh

/bin/php test.php

1.source FileName:在当前 bash 环境下读取并执行 FileName 中的命令,该 filename 文件可以无 "执行权限"

2.sh FileName:打开一个子 shell 来读取并执行 FileName 中命令。该 filename 文件可以无 "执行权限"。

3. ./FileName:打开一个子 shell 来读取并执行 FileName 中命令,该 filename 文件需要 "执行权限"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值