目录结构

  • linux操作系统的目录结构

    Linux只有一个顶级目录,称之为:根目录

    Windows系统有多个顶级目录,即各个盘符

  • /在Linux系统中表示

    出现在开头的/表示根目录,出现在后面的/表示层级关系

Linux命令入门

Linux命令基础

什么是命令,命令行

  • 命令:即Linux操作指令,是系统内置的程序,可以以字符化的形式去使用
  • 命令行:即Linux终端,可以提供字符化的操作页面供命令执行

Linux命令通用格式

command[-options][parameter]

  • 命令本体,即命令本身
  • 可选选项,控制命令的行为细节
  • 可选参数,控制命令的指向目标

ls命令入门

  • ls命令作用:在命令行中,以平埔的形式,展示当前工作目录(默认Home目录)下的内容
  • Home目录:每一个用户在Linux系统的专属目录:默认在/home/用户名
  • 当前工作目录:Linux命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端)默认设置目录在Home目录

ls命令的参数和选项

  • ls命令参数的作用:可以查看指定文件夹的内容,如果不给定参数,则查看当前工作目录下的内容

  • ls命令的选项:

    (1)-a选项,可以展示出隐藏的内容

    (2)-l选项,以列表的形式展示内容,并展示更多细节

    (3)-h选项,需要和-l选项搭配使用,可以显示文件的大小单位

  • 命令的选项组合使用

    命令的选项是可以组合的,比如ls -lah,等同于ls -a -l -h

目录切换相关命令

cd命令(切换工作目录)

用来切换当前的工作目录,语法是

cd [Linux路径]

  • 没有选项,只有参数,表示目标路径
  • 使用参数,切换到目标路径
  • 不使用参数,切换工作目录到当前用户的HOME

pwd命令(输出工作目录)

  • pwd命令:没有选项,没有参数,直接使用即可
  • 作用:输出当前的工作目录

相对路径和绝对路径

  • 绝对路径:以根目录为起点,描述路径的方式,路径以/开头
  • 相对路径:以当前目录做起点,描述路径的方式,路径不需以/开头

特殊路径符

  • .表示当前目录
  • ..表示上一级目录
  • ~表示用户的HOME目录

创建目录命令

mkdir命令(创建目录)

  • mkdir用以创建新的目录
  • 语法:mkdir [-p] Linux路径
  • 参数必填,表示要创建的目录的路径,相对,绝对路径均可使用
  • p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

文件操作命令

touch命令(创建文件)

  • 用于创建一个新的文件
  • 语法 touch Linux路径
  • 参数必填,表示要创建文件的路径

cat命令(查看文件内容)

  • 用于查看文件内容
  • 语法 cat Linux路径
  • 参数必填,表示要查看文件的路径

more命令(翻页查看文件内容)

  • 用于查看文件内容,可翻页查看
  • 语法 more Linux路径
  • 参数必填,表示要查看文件的路径
  • 使用空格翻页,使用p退出查看

cp命令(复制文件/文件夹)

  • 用于复制文件或文件夹
  • 语法 cp [-r] 参数1 参数2
  • 参数1和参数2分别表示被复制的文件或文件夹和复制要去的地方
  • 选项可填,带上表示复制的是一个文件夹

mv命令(移动文件)

  • 用于移动文件
  • 语法 mv 参数1 参数2
  • 参数1表示被移动的文件或文件夹,参数2表示移动要去的地方,如果不存在则对参数1进行改名

rm命令(删除文件/文件夹)

  • 用于删除文件或文件夹
  • 语法 rm [-r -f] 参数1 参数2 ......
  • -r选项,可选,表示文件夹删除 -f,可选,表示强制删除(一般用于root用户)
  • 参数表示被删除的文件或文件夹路径,可支持批量删,也支持通配符*,可用于模糊匹配

查找命令

which命令(查找命令)

  • 查找命令的程序文件
  • 语法 which 要查找的命令

find命令(查找文件)

(1)按名称查找

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

  • 支持通配符*

(2)按文件大小查找

语法:find 起始路径 -size +/- n[KMG]

  • +/-代表大于或小于
  • n代表数字
  • [KMG]是大小的单位
1
2
find /user -size + 100 M
#/user目录内大于100M的文件

其他命令

grep命令(过滤文件行)

  • 从文件中通过关键词过滤文件行
  • 语法:grep [-n] 关键字 文件路径
  • 选项-n,可选,表示在结果中匹配的行的行号
  • 关键字必填,表示要过滤的关键字,建议用” “包围起来
  • 文件路径必填,表示要过滤的内容的文件路径,可通过管道符输入。

WC命令(统计文件数据)

  • 命令统计文件的行数,单词数,字节数,字符数
  • 语法:wc [-c -m -l -w] 文件路径
  • 不带选项默认统计行数,单词数,字节数
  • -c字节数 -m字符数 -l行数 -w单词数
  • 参数,被统计的文件路径,可通过管道符输入

管道符|

将管道左边的结果作为右边的输入

1
2
cat text.txt | grep hello | wc -l
#统计text.txt中带有hello关键字的有几行

echo命令(输出内容)

  • 可以使用echo命令在命令行输出指定内容
  • 语法:echo 输出内容
  • 无需选项,只需一个参数,表示要输出的内容,可用” “包围

`` `反引号符

被`` `包围的内容,会被当做命令执行,而非普通字符

1
2
echo `pwd`
#不会输出`pwd`,而会输出当前工作目录

重定向符(写入结果)

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

tail命令(查看尾部内容)

  • 查看文件尾部的内容,并可以持续追踪
  • 语法:tail [-f -num] Linux路径
  • -f:持续追踪,-num,查看尾部多少行,默认查看尾部10行

vi编辑器

简介

  • vi\vim编辑器,就是命令行模式下的文本编辑器,用来编辑文件
  • vim是vi的升级版,一般用vim即可,包含vi的全部功能

基础命令

vi 文件路径 vim 文件路径

运行模式

  • 命令模式:默认模式,可以通过键盘快捷键控制文件内容
  • 输入模式:通过命令模式输入i进入,可以输入内容进行编辑,按esc退回命令模式
  • 底线命令模式:通过命令模式进入,可以对文件进行保存,关闭操作,输入wq退出

Linux用户和权限

Linux的root用户

Linux系统的超级用户管理员是:root

su命令(切换命令)

  • 可以切换用户,语法:su [-] [用户名]
  • -表示切换后带上环境变量,建议带上
  • 用户可以省略,省略默认切换到root

sudo命令(增加权限)

  • 可以让一条普通命令带有root权限,语法:sudo 其他命令

  • 需要以root用户执行visudo命令,增加相关的配置方法即可让普通用户有sudo命令的执行权限

    在该文件的最后一行加入

    1
    用户名  ALL=(ALL)    NOPASSWD: ALL

用户 用户组管理

Linux用户管理模式

  • Linux可以支持多用户,多用户组,用户加入多个组
  • Linux权限管控的单元是用户级别和用户组级别

用户 用户组相关命令

  • groupadd添加用户组,groupdel删除用户组
  • useradd添加用户,userdel删除用户
  • usermod -aG 用户组 用户名修改用户组,将指定用户加入到用户组,id命令查看用户信息
  • getent password查看系统全部用户信息
  • getent group查看系统全部组信息

查看权限控制

ls -l列出的权限信息

1
2
drwxr-xr-x. 2 yh yh 6 5月  19  02:34 Desktop
#1 #2 #3
  • 序号1,表示文件,文件夹的控制信息
  • 序号2,表示文件,文件夹的所属用户
  • 序号3,表示文件,文件夹所属用户组

权限细节

文件类型(1) 所有者权限(2-4) 同组用户权限(5-7) 其他用户权限(8-10)
-dl (r-) (w-) (x-)

文件类型:-表示文件,d表示文件夹,l表示软连接

rwx分别代表什么

  • r表示可以查看内容
  • w表示可以修改此文件,针对文件夹即可以创建,修改,删除等操作
  • x表示可以将文件作为程序执行,针对文件夹,则表示可以将工作目录更改到此文件夹,即cd进入
  • -即代表不包含该类权限

修改权限控制-chmod

chmod命令(修改文件/文件夹权限)

  • 修改文件,文件夹的权限细节

  • 只能是文件,文件夹的所属用户或root有权修改

  • 语法:chmod [-R] 权限 文件或文件夹

  • 选项-R,对文件夹内的内容应用同样的规则

    1
    2
    chmod -R u=rwx,g=rx,o=x hello.txt
    #-rwxr-x--x

权限的数字序号

  • r代表4,w代表2,x代表1

  • 通过相应的数字整合即可得到相应权限

    1
    2
    chmod -R 761 hello.txt
    #-rwxrw---x

修改权限控制-chown

chown命令(修改文件/文件夹所属用户)

  • 修改文件,文件夹的所属用户和用户组

  • 此命令只适用于root用户

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

  • 选项-R,对文件夹内的内容应用同样的规则

  • 选项用户和用户组分别对应修改所属用户和用户组

  • :用于分隔用户和用户组

    1
    2
    3
    4
    5
    6
    chown root hello.txt
    #将文件的用户修改为root
    chown :root hello.txt
    #将文件的用户组修改为root
    chown root:root hello.txt
    #将文件的用户和用户组都修改为root

Linux实用操作

常用快捷键

  • ctrl+c强制停止
  • ctrl+d退出登录
  • history查看历史命令
  • ctrl+l清屏
  • ctrl+a/e光标移动到命令开始或结束 ctrl+<- | ->左右跳单词

软件安装

Centos系统

  • 语法:yum [-y] [install | remove | search] 软件名称
  • 选项-y,自动确认,无需手动确认安装和卸载过程
  • 该操作需要root权限

Ubuntu系统

  • 语法:apt [-y] [install | remove | search] 软件名称
  • 选项与Centos系统相同

控制软件进程

systemctl命令(控制软件启动等)

可以控制软件的启动,关闭和自启动

  • 系统内置服务均可被systemctl控制
  • 第三方软件,如果自动注册了,则可以被systemctl控制
  • 如果没有自动注册,则可以手动注册
  • 语法:systemctl start | stop | status | enable | disable 服务名
  • start/stop启动/停止 status状态 enable/disable开启自启/关闭开机自启

软连接

简介

可以将文件,文件夹链接到其他位置,链接只是一个指向,并不是物理移动,类似于Windows系统的快捷方式

使用用法

语法:ln -s 参数1 参数2

  • -s选项,创建软连接
  • 参数1:被链接的文件,文件夹
  • 参数2:要连接去的目的地

日期和时区

date命令(查看时间)

可以查看时间,并可以格式化显示形式以及做日期计算

语法:`date [-d] [+格式化字符串]

%Y年 %y 年份后两位数字 %m 月份 %d 日 %H 小时 %M 分钟 %S 秒

修改Linux时区

1
2
rm -f /etc/localtime #删除该文件
sudo ln -s /usr/share/zoneInfo/Asia/Shanghai /etc/localtime #创建软连接到该文件

ntp

1
yum -y install ntp  #下载该软件

可以自动联网校准时间,也可以通过ntpdate -u ntp.aliyun.com手动校准时间

IP地址和主机名

IP地址

IP地址是联网计算机的网络地址,用于在网络中进行定位 特殊IP:127.0.0.1表本机 0.0.0.0也可表示本机,也可在一些白名单中表示任意IP

主机名

主机名就是主机的名称,用于标识一个计算机

域名解析(主机名映射)

通过主机名找到对应的IP地址,即主机名映射

先从系统的本地记录中查找,如未找到,再去联网公开的DNS服务器去找

网络请求和下载

Ping命令(测试服务器是否可联通)

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

  • 选项c,测试的次数

    1
    ping -c 3 baidu.com

wget命令(网络文件下载)

  • 语法:wget [-b] url
  • 选项-b,后台下载

curl命令(网络请求)

  • 语法:curl [-O] url
  • 选项-O,用于下载使用

端口

IP只能确认计算机,通过端口才能锁定要交互的程序

划分

  • 公认端口:1-1023,用于系统内置或常用知名软件绑定使用
  • 注册端口:1024-49151,用于松散绑定使用(用户自定义)
  • 动态端口:49152-65535,用于临时使用(多用于出口)

查看端口占用

  • nmap IP地址,查看指定IP对外暴露的端口
  • netstat -anp | grap 端口号,查看本机指定端口号的占用情况

进程管理

简介

进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID

  • ps-ef命令(查看进程信息)
  • ps -ef | grep 关键字过滤指定关键字的进程
  • kill [-9] 进程号 关闭指定进程,-9表示强制关闭

主机状态监控

top命令

  • 类似于windows的任务管理器
  • 查看CPU,内存,进程的信息

df命令(查看磁盘使用率)

iostat命令(查看磁盘速率)

sar -n DEV 命令(查看网络情况)

环境变量

简介

环境变量是一组信息记录,类型是key-value,用于操作系统运行时记录关键信息

env命令

可以查看当前系统配置的环境变量信息,通过$符可以取出环境变量的值

1
2
echo ${PATH}
#打印出PATH这个环境变量的值

PATH

环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。可以通过修改这个项目的值,加入自定义的命令搜索路径

export PATH=$PATH:自定义路径

修改环境变量

  • 临时生效:export 名称=值

  • 永久生效

    针对用户:~/bashrc文件中配置

    针对全局:/etc/profile 文件中配置

    配置完成,通过source命令立刻生效