Linux课程笔记

Linux基础命令

Linux的目录结构

image-20221027214128453

  • /,根目录是最顶级的目录了
  • Linux只有一个顶级目录:/
  • 路径描述的层次关系同样适用/来表示
  • /home/itheima/a.txt,表示根目录下的home文件夹内有itheima文件夹,内有a.txt

ls命令 (list)

功能:列出文件夹信息

语法:ls [-l -h -a] [参数]

  • 参数:被查看的文件夹,不提供参数,表示查看当前工作目录
  • -l,以列表形式查看
  • -h,配合-l,以更加人性化的方式显示文件大小
  • -a,显示隐藏文件

ls -lha /bin

隐藏文件、文件夹

在Linux中以.开头的,均是隐藏的。

默认不显示出来,需要-a选项才可查看到。

pwd命令 (print work directory)

功能:展示当前工作目录

语法:pwd

cd命令 (change directory)

功能:切换工作目录

语法:cd [目标目录]

参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户HOME目录

cd /bin

HOME目录

每一个用户在Linux系统中都有自己的专属工作目录,称之为HOME目录。

  • 普通用户的HOME目录,默认在:/home/用户名

  • root用户的HOME目录,在:/root

FinalShell登陆终端后,默认的工作目录就是用户的HOME目录

相对路径、绝对路径

  • 相对路径,/开头的称之为相对路径

    相对路径表示以当前目录作为起点,去描述路径,如test/a.txt,表示当前工作目录内的test文件夹内的a.txt文件

  • 绝对路径,/开头的称之为绝对路径

    绝对路径从开始描述路径

特殊路径符

  • .,表示当前,比如./a.txt,表示当前文件夹内的a.txt文件
  • ..,表示上级目录,比如../表示上级目录,../../表示上级的上级目录
  • ~,表示用户的HOME目录,比如cd ~,即可切回用户HOME目录

mkdir命令 (make directory)

功能:创建文件夹

语法:mkdir [-p] 参数

  • 参数:被创建文件夹的路径
  • 选项:-p,可选,表示创建前置路径

创建文件需要修改权限,请确保所有操作均在HOME目录内,不要在HOME目录外,涉及到权限问题,HOME目录外无法成功。

mkdir -p ~/itcast/itheima/nice/666

touch命令

功能:创建文件

语法:touch 参数

  • 参数:被创建的文件路径

touch test.txt

cat命令

功能:查看文件内容(全部)

语法:cat 参数

  • 参数:被查看的文件路径

cat test.txt

more命令

功能:查看文件,可以支持翻页查看

语法:more 参数

  • 参数:被查看的文件路径

  • 在查看过程中:

    • 空格键翻页
    • q退出查看

    more etc/services

cp命令(copy&paste)

功能:复制文件、文件夹

语法:cp [-r] 参数1 参数2

  • 参数1,被复制的
  • 参数2,要复制去的地方
  • 选项:-r,可选,复制文件夹使用

示例:

  • cp a.txt b.txt,复制当前目录下a.txt为b.txt
  • cp a.txt test/,复制当前目录a.txt到test文件夹内
  • cp -r test test2,复制文件夹test到当前文件夹内为test2存在

mv命令(move)

功能:移动文件、文件夹

语法:mv 参数1 参数2

  • 参数1:被移动的
  • 参数2:要移动去的地方,参数2如果不存在,则会进行改名

rm命令(remove)

功能:删除文件、文件夹

语法:rm [-r -f] 参数1 参数2 参数3 参数4...

  • 参数:支持多个,每一个表示被删除的,空格进行分隔
  • 选项:-r,删除文件夹使用
  • 选项:-f,强制删除,不会给出确认提示,一般root用户会用到
  • 可以通过 su - root,并输入密码临时切换到root用户体验,通过输入exit命令退回普通用户。

rm命令很危险,一定要注意,特别是切换到root用户的时候。

通配符

rm命令支持通配符*,用来做模糊匹配

  • 符号*表示通配符,即匹配任意内容(包含空),示例
  • test*,表示匹配任何以test开头的内容
  • *test,表示匹配任何以test结尾的内容
  • *test * , 表示匹配任何包含test的内容

which命令

功能:查看命令的程序本体文件路径

语法:which 参数

  • 参数:被查看的命令

which cd

find命令

功能:搜索文件

语法一:按文件名搜索:find 路径 -name 参数

  • 路径,搜索的起始路径
  • 参数,搜索的关键字,支持通配符*, 比如:*test表示搜索任意以test结尾的文件

find -name “test”

语法二:按文件大小搜索:find 起始路径 -size +|-n[kMG]

  • +、-表示大于和小于
  • n表示大小数字
  • kMG表示大小单位,k(小写字母)表示KB,M表示MB,G表示GB

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

查找大于100MB的文件:find / -size + 100M

查找大于1GB的文件:find / -size +1G

ctrl + C 强行中断搜索

grep命令

功能:过滤关键字

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

  • 选项-n,可选,表示在结果中显示匹配的行的行号。
  • 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用””将关键字包围起来
  • 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口

参数文件路径,可以作为管道符的输入

wc命令

功能:统计

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

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

参数文件路径,可作为管道符的输入

管道符|

写法:|

功能:将符号左边的结果,作为符号右边的输入

示例:

cat a.txt | grep itheima,将cat a.txt的结果,作为grep命令的输入,用来过滤itheima关键字

可以支持嵌套:

cat a.txt | grep itheima | grep itcast

echo命令

功能:输出内容

语法:echo 参数

  • 参数:被输出的内容

`反引号

功能:被两个反引号包围的内容,会作为命令执行

示例:

  • echo `pwd`,会输出当前工作目录

tail命令

功能:查看文件尾部内容

语法:tail [-f -n] 参数

  • 参数:被查看的文件
  • 选项:-f,持续跟踪文件修改
  • 选项:-n,表示尾部多少行

head命令

功能:查看文件头部内容

语法:head [-n] 参数

  • 参数:被查看的文件
  • 选项:-n,查看的行数

重定向符

功能:将符号左边的结果,输出到右边指定的文件中去

  • >,表示覆盖输出
  • >>,表示追加输出

vi编辑器(记事本)

vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大的方便了程序的设计和编辑性质。

vi/vim编辑器的三种工作模式

  • 命令模式(Commend mode)
    • 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能
    • 此模式下,不能自由进行文本编辑
  • 输入模式(Insert mode)
    • 也就是所谓的编辑模式、插入模式
    • 此模式下,可以对文件内容进行自由编辑
  • 底线命令模式(Last line mode)
    • 以:开始,通常用于文件的保存和退出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

命令模式快捷键

image-20221027215841573

image-20221027215846581

image-20221027215849668

底线命令快捷键

image-20221027215858967

命令的选项

我们学习的一系列Linux命令,它们所拥有的选项都是非常多的。

比如,简单的ls命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1等选项,可以发现选项是极其多的。

课程中, 并不会将全部的选项都进行讲解,否则,一个ls命令就可能讲解2小时之久。

课程中,会对常见的选项进行讲解, 足够满足绝大多数的学习、工作场景。

查看命令的帮助

可以通过:命令 --help查看命令的帮助手册

image-20221027220005610

查看命令的详细手册

可以通过:man 命令查看某命令的详细手册

image-20221027220009949

Linux常用操作

快捷键

  • ctrl + c:强制停止
  • ctrl + d:退出或登出
  • history 查看历史命令
  • !命令前缀:自动匹配上一个命令
  • ctrl + r:搜索历史命令
  • ctrl + a|e:光标移动到命令开始或结束
  • ctrl + ←|→:左右跳单词
  • ctrl + l:清屏 == clear命令

软件安装

  • CentOS系统使用:
    • yum [install remove search] [-y] 软件名称
      • install 安装
      • remove 卸载
      • search 搜索
      • -y,自动确认
  • Ubuntu系统使用
    • apt [install remove search] [-y] 软件名称
      • install 安装
      • remove 卸载
      • search 搜索
      • -y,自动确认

yum 和 apt 均需要root权限,可以su切换到root,或使用sudo提权

yum -y install wget,通过yum命令安装wget程序

yum -y remove wget,通过yum命令卸载wget程序

systemctl

功能:控制系统服务的启动关闭等

语法:systemctl start | stop | restart | disable | enable | status 服务名

  • start,启动
  • stop,停止
  • status,查看状态
  • disable,关闭开机自启
  • enable,开启开机自启
  • restart,重启

系统内置的服务比较多,比如:

  • NetworkManager,主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • sshd,ssh服务(FinalShell远程登陆Linux使用的就是这个服务)

除了内置的服务以外,部分第三方软件安装后也可以通过systemctl进行控制。

部分软件安装后没有自动集成到systemctl当中,我们可以手动添加。

systemctl stop firewalld

软链接

功能:创建文件、文件夹软链接(类似Windows中的快捷方式)

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

  • 参数1:被链接的
  • 参数2:要链接去的地方(快捷方式的名称和存放位置)

ln -s /etc/yun.conf ~/yum.conf

ln -s /etc/yum ~/yum

查看日期

通过data命令可以在命令行中查看系统的时间

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

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

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

    • %Y 年%y 年份后两位数字 (00…99)
    • %m 月份 (01…12)
    • %d 日 (01…31)
    • %H 小时 (00…23)
    • %M 分钟 (00…59)
    • %S 秒 (00…60)
    • %s 自 1970-01-01 00:00:00 UTC 到现在的秒数

示例:

  • 按照2022-01-01的格式显示日期

    image-20221027220514640

  • 按照2022-01-01 10:00:00的格式显示日期

    image-20221027220525625

  • -d选项日期计算

    image-20221027220429831

    • 支持的时间标记为:

      image-20221027220449312

修改时区

修改时区为中国时区(需要使用管理员权限)

image-20221027220554654

将系统自带的localtime文件删除,并将/user/share/zoneinfo/Asia/Shanghai文件链接文localtime文件即可

ntp(时间校准)

功能:同步时间

安装:yum install -y ntp

启动管理:systemctl start | stop | restart | status | disable | enable ntpd

当ntpd服务启动后会定期帮助我们联网校准系统的时间

手动校准时间(需要root权限):ntpdate -u ntp.aliyun.com

ip地址

格式:a.b.c.d

  • abcd为0~255的数字

特殊IP:

  • 127.0.0.1,表示本机
  • 0.0.0.0
    • 可以表示本机
    • 也可以表示任意IP(看使用场景)

查看ip:ifconfig

主机名

功能:Linux系统的名称

查看:hostname

设置:hostnamectl set-hostname 主机名

可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)

先通过系统本地的记录去查找,如果找不到就去联网公开DNS服务器去查找

本机记录位置:

  • Windows:C/Windows/System32/drivers/etc/host
  • Linux:/etc/host

如配置:192.168.88.130 centos

配置VMware固定IP

  1. 修改VMware网络,参阅PPT,图太多

  2. 设置Linux内部固定IP

    修改文件:vim /etc/sysconfig/network-scripts/ifcfg-ens33

    示例文件内容:

    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"			# 1、改为static,固定IP
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="1b0011cb-0d2e-4eaa-8a11-af7d50ebc876"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR="192.168.88.131"		# 2、IP地址,自己设置,要匹配网络范围
    NETMASK="255.255.255.0"		# 3、子网掩码,固定写法255.255.255.0
    GATEWAY="192.168.88.2"		# 4、网关,要和VMware中配置的一致
    DNS1="192.168.88.2"			# 5、DNS1服务器,和网关一致即可
    
  3. wq保存并退出

  4. 重启网卡服务

    systemctl stop network

    systemctl start network

端口

端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口。

  • 物理端口:USB、HDMI、DP、VGA、RJ45等
  • 虚拟端口:操作系统和外部交互的出入口

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

端口的划分:

  • 公认端口
  • 注册端口
  • 动态端口

nmap命令

image-20221027221241123

netstat命令(查看端口占用)

功能:查看端口占用

用法:netstat -anp | grep 端口号/进程号

安装netstat:yum -y install net-tools

ps命令(查看进程)

功能:查看进程信息

语法:ps -ef,查看全部进程信息,可以搭配grep做过滤:ps -ef | grep xxx

kill命令(关闭进程)

image-20221027221303037

ping命令(测试网络联通)

测试网络是否联通

语法:ping [-c num] 参数

image-20221027221129782

wget命令

image-20221027221148964

curl命令

image-20221027221201079

image-20221027221210518

top命令(查看系统资源占用,任务管理器)

功能:查看主机运行状态

语法:top,查看基础信息

置顶信息:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

top命令内容:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可用选项:

image-20221027221340729

交互式模式中,可用快捷键:

image-20221027221354137

df命令

查看磁盘占用

image-20221027221413787

iostat命令(磁盘信息监控)

查看CPU、磁盘的相关信息

image-20221027221439990

image-20221027221514237

sar命令(网络状态监控)

查看网络统计

image-20221027221545822

环境变量

环境变量是一组信息记录,类型是KeyValue型(名称=值),用于操作系统运行的时候记录关键信息。

通过env命令可以查看当前系统配置的环境变量信息。

  • 临时设置:export 变量名=变量值

export test=666

  • 永久设置:
    • 针对用户,设置用户HOME目录内:~/.bashrc文件
    • 针对全局,设置/etc/profile
    • 配置完成,可以通过source命令立刻生效

PATH变量

环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。

可以通过修改这个项目的值,加入自定义的命令搜索路径

export PATH=$PATH自定义路径

$符号

可以取出指定的环境变量的值

语法:$变量名

示例:

echo $PATH,输出PATH环境变量的值

echo ${PATH}ABC,输出PATH环境变量的值以及ABC

如果变量名和其它内容混淆在一起,可以使用${}

上传、下载

我们可以通过FinalShell工具,方便的和虚拟机进行数据交换。

在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的:

  • 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑。
  • 浏览文件系统,找到合适的目录,将本地电脑的文件扩展进入,即可方便上传数据到Linux中。

rz、sz命令

可以通过rz、sz命令进行文件传输

安装:yum -y install lrzsz

rz命令:rz

sz命令:sz 文件路径

压缩解压

压缩

tar [-c -v -x -f -z -C] 压缩包 被压缩1...被压缩2...被压缩N

  • -c,创建压缩文件,用于压缩模式
  • -v,显示压缩、解压过程,用于查看进度
  • -x,解压模式
  • -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
  • -z,gzip模式,不适用-z就是普通的tarball格式
  • -C,选择解压目的地,用于解压模式

常见组合

  • tar -cvf test.tar 1.txt 2.txt 3.txt

将1.txt 2.txt 3.txt压缩到test.tar文件内

  • tar -zcvf test.tar.gz 1.txt 2.txt 3.txt

将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式

注意:

  • -z选项如果使用的话,一般处于选项第一个
  • -f选项,必须在选项位最后一个

zip [-r] 参数1 参数2 参数N

image-20221027221906247

解压

tar -zxvf 被解压的文件 -C 要解压去的地方

  • -z表示使用gzip,可以省略
  • -C,可以省略,指定要解压去的地方,不写解压到当前目录,单独使用

常见的解压组合有:

  • tar -xvf test.tar

解压test.tar,将文件解压至当前目录

  • tar -xvf test.tar -C /home/itheima

解压test.tar,将文件解压至指定目录

  • tar -zxvf test.tar.gz -C /home/itheima

unzip [-d] 参数

image-20221027221939899

su命令

切换用户

语法:su [-] [用户]

image-20221027222021619

sudo命令

image-20221027222035337

比如:

itheima ALL=(ALL)       NOPASSWD: ALL

在visudo内配置如上内容,可以让itheima用户,无需密码直接使用sudo

chmod命令

修改文件、文件夹权限

语法:chmod [-R] 权限 参数

  • 权限,要设置的权限,比如755,表示:rwxr-xr-x

    image-20221027222157276

  • 参数,被修改的文件、文件夹

  • 选项-R,设置文件夹和其内部全部内容一样生效

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

chmod -R u=rwx,g=rx,o=x test

chmod 751 hello.txt

chown命令

修改文件、文件夹所属用户、组

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

image-20221027222326192

用户组管理

image-20221027222354498

用户管理

image-20221027222407618

genenv命令

  • getent group,查看系统全部的用户组

    image-20221027222446514

  • getent passwd,查看系统全部的用户

    image-20221027222512274

env命令

查看系统全部的环境变量

语法:env

  • mkdir 创建文件夹
  • touch 创建文件

  • rm 删除文件/文件夹

  • cd 切换工作目录

  • ls 查看文件夹信息
  • cat 查看文件内容(全部)
  • more 分页查看文件
  • find 搜索文件
  • grep 过滤关键字
  • wc 文件统计
  • tail 查看尾部内容

  • cp 复制粘贴文件/文件夹
  • mv 移动粘贴文件/文件夹

  • echo 写入到控制台
  • >/>> 写入文件

[-R] 权限 参数`

  • 权限,要设置的权限,比如755,表示:rwxr-xr-x

    [外链图片转存中…(img-M0bfIlKe-1710416106876)]

  • 参数,被修改的文件、文件夹

  • 选项-R,设置文件夹和其内部全部内容一样生效

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

chmod -R u=rwx,g=rx,o=x test

chmod 751 hello.txt

chown命令

修改文件、文件夹所属用户、组

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

[外链图片转存中…(img-YwjsUETP-1710416106876)]

用户组管理

[外链图片转存中…(img-kUhSpkVc-1710416106877)]

用户管理

[外链图片转存中…(img-qpOjEnur-1710416106877)]

genenv命令

  • getent group,查看系统全部的用户组

    [外链图片转存中…(img-WczDFcpV-1710416106877)]

  • getent passwd,查看系统全部的用户

    [外链图片转存中…(img-lsECjrek-1710416106877)]

env命令

查看系统全部的环境变量

语法:env

  • mkdir 创建文件夹
  • touch 创建文件

  • rm 删除文件/文件夹

  • cd 切换工作目录

  • ls 查看文件夹信息
  • cat 查看文件内容(全部)
  • more 分页查看文件
  • find 搜索文件
  • grep 过滤关键字
  • wc 文件统计
  • tail 查看尾部内容

  • cp 复制粘贴文件/文件夹
  • mv 移动粘贴文件/文件夹

  • echo 写入到控制台
  • >/>> 写入文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值