Linux学习

发布时间 2023-04-28 01:04:18作者: chenyuanhang

Linux学习

1.下载与安装

2.基础命令

2.0 特殊符号

  • 通配符 * 搭配查询命令使用
  • 管道符 | 管道符左边命令的结果可以作为右边命令的输入
  • 重定向符 >和>> ,> 将左侧命令的结果,覆盖写入符号右侧指定的文件中,>> 将左侧命令结果,追加写入到符号右侧指定文件中

2.1 Linux命令基础格式

语法:command [-option] [parameter]

2.2 pwd 查看当前目录

2.3 cd:切换目录

cd # 回到当前用户的家目录

cd.. #回到上一级目录

cd ~ # 可用于表示用户家目录

cd /etc # 切换到/etc目录

cd - # 切换到跳转之前的上一次的目录

2.4 touch:创建文件

touch file1 # 创造文件

2.5 rm:删除文件

rm命令可用于删除文件、文件夹

语法:rm[-r -f] 参数1 参数2. 。。。参数N

  • -r 选项用于删除文件夹

  • -f 选项用于强制删除文件

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

  • 符号*表示通配符,及匹配任意内容
  • *test 表示删除所有以test结尾的文件

2.6 ls:列出目标目录

ls:列出目标目录中的所有子目录和文件

格式:ls [选项] [目录名]
-a 用于显示所有文件和子目录(保罗点文件),展示出隐藏的内容
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-r 将目录的内容清单以英文字母顺序的逆序显示。
-t 按文件修改时间进行排序,而不是按文件名进行排序。
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-F 在列出的文件名和目录名后添加标志。例如,在可执行文件后添加“*”,在目录名后添加“/”以区分不同的类型。
-R 如果目标目录及其子目录中有文件,就列出所有的文件。
. 和..
. 表示当前目录
.. 表示父目录
文件类型
ls # 列出当前目录下的文件和目录
ls . # 列出当前目录下的文件和目录
ls .. # 列出当前目录的父目录下的文件和目录
ls /etc # 列出/etc目录下的文件和目录
ls -l # 以长格式显示文件信息

2.7 文件权限

rwxrwxr-- : 三组rwx 分别表示 所有者、所有组、其他人 的权限。
r : 表示可读, 可以用数字 4 来表示
w : 标识可写 ,可以用数字 2 来表示
x : 表示可执行 , 可以用数字 1 来表示

  • :表示没有相应权限 可以用数字 0 来表示

2.8 mkdir 创建目录

语法:mkdir [-p] Linux路径

-p 选项的作用

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

2.9 cat 查看文件内容

语法: cat Linux路径

2.10 more 查看文件内容

more 支持翻页,通常用于查看文件内容过多的文件

2.11 cp 复制文件文件夹

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

  • -r 选项,可选,用于复制文件夹使用,表示递归

  • 参数1,Linux路径,表示被复制的文件或文件夹

  • 参数2,Linux路径,表示要复制去的地方,复制过来的文件名等于参数2的名字

    image-20230425170334377

2.12 mv 移动文件或文件夹

语法 :mv 参数1 参数2

如果文件不存在,将会创造文件

2.13 su - root 切换到root用户

输入命令: su - root 并输入root密码,进入root账号登入

输入exit命令,返回普通用户

2.14 which 查找命令的所在的位置

例如:which cd

image-20230425221532692

2.15 find 按文件名查找文件

按文件名查找

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

按文件大小查找

​ 语法:find 起始路径 -size +|- n[kMG]

  • +、-表示大于和小于
  • n表示大小数字
  • kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
  • 例如:查找小于10KB的文件 find / -size -10k

支持使用通配符(*)

2.16 grep 从文件中通过关键字过滤文件行

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

只显示包含关键字的所在行

  • 选项-n ,可选,表示在结果中显示匹配的行的行号
  • 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,使用""把关键字包起来
  • 参数,文件路径,可以作为管道符的输入

2.17 wc命令做数量统计

可以通过wc命令统计文件的行数、单词数量

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

  • -c,统计bytes数量

  • -m,统计字符数量

  • -l,统计行数

  • -w,统计单词数量

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

2.18 echo 在命令行内输出指定内容

  • 无需选项,只有一个参数,表示要输出的内容
  • 例如:echo "hello world" 用双引号把字符串包起来
  • echo pwd 被反引号包围的内容将会被作为命令执行

2.19 tail 查看文件尾部内容,并可持续跟踪

  • 查看文件尾部内容,并可持续跟踪
  • 语法: tail [-f -num] Linux路径
  • -f 设置查看尾部多少行,默认10行,可持续跟踪
  • linux路径表示被查看的文件

2.20 ln命令创建软连接

在系统中创建软连接,可以将文件、文件夹链接到其他位置

类似windows系统中的快捷方式

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

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

实例:

  • ln -s /etc/yum.conf ~ /yum.conf 注意:~时home目录

2.21 su和exit命令

su命令就是用于账户切换的系统命令(Switch User)

语法: su [-] [用户名]

  • -符号是可选的,表示是否在切换用户后加载环境变量

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

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

  • 使用普通用户,切换到其他用户需要输入密码

  • 使用root用户,切换其他用户无需输入密码

2.22 sudo命令

使用sudo命令,为普通的命令授权,临时赋予root授权

语法 : sudo 其他命令

  • 在其他命令之前,带上sudo,即可为这一条命令临时赋予root权限
  • 需要为普通用户配置sudo认知,才能使用sudo

为普通用户配置sudo认证

  1. 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
  2. 在文件的最后添加: itchen ALL=(ALL) NOPASSWD: ALL
    • 其中最后的NOPASSWD:ALL表示sudo命令,无需输入密码
  3. 最后通过wq保存
  4. 切换会普通用户
  5. 执行的命令,均以root运行
  6. 注意:在ubuntu中好像自动给普通用户配置了sudo认证,在输入sudo su - root 时不需要输入密码!

2.23 systemctl 命令

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

作用:可以控制软件(服务)的启动、关闭、开机自启动

  • 系统内置服务均可被systemctl控制
  • 第三方软件,如果自动注册了可以被systemctl控制
  • 第三方软件,如果没有自动注册,可以手动注册

注意:ubuntu暂时用不了systemctl命令

2.24 date命令

date命令查看系统的时间

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

  • -d 按照给定的字符串显示日期,一般用于日期计算
  • 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
    • %Y 年
    • %y 年份后两位数字
    • %m 月份(01,12)
    • %d 日(01,31)
    • %H 小时(00,23)
    • %M 分钟(00,59)
    • %S 秒(00,60)
    • %s 自1970-01-01 00:00:00 UTC到现在的秒数

image-20230427160452965

ps:可以用双引号包括起来

3.用户权限

3.0 Linux系统的超级管理员(root用户)

如何切换用户?如何设置root用户?

3.1 su和exit命令

su命令就是用于账户切换的系统命令(Switch User)

语法: su [-] [用户名]

  • -符号是可选的,表示是否在切换用户后加载环境变量

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

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

  • 使用普通用户,切换到其他用户需要输入密码

  • 使用root用户,切换其他用户无需输入密码

3.2 sudo命令

使用sudo命令,为普通的命令授权,临时赋予root授权

语法 : sudo 其他命令

  • 在其他命令之前,带上sudo,即可为这一条命令临时赋予root权限
  • 需要为普通用户配置sudo认知,才能使用sudo

为普通用户配置sudo认证

  1. 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
  2. 在文件的最后添加: itchen ALL=(ALL) NOPASSWD: ALL
    • 其中最后的NOPASSWD:ALL表示sudo命令,无需输入密码
  3. 最后通过wq保存
  4. 切换会普通用户
  5. 执行的命令,均以root运行
  6. 注意:在ubuntu中好像自动给普通用户配置了sudo认证,在输入sudo su - root 时不需要输入密码!

3.3 创建root用户的密码

3.3.1 背景

在安装Ubuntu系统时并没有设置root的密码,登录的时候也没有使用root账户。
当我们输入su命令,切换到root用户时候,会提示认证失败!

3.3.2 创建root用户的密码

给root创建一个密码,输入:sudo passwd root
看准提示进行输入,root的密码最好和其他用户的密码不同,以增加其安全性!

3.4 用户组管理

用户组管理

以下命令需root用户执行

  • 创建用户组

    groupadd 用户组名

  • 删除用户组

    groupdel 用户组名

用户管理

以下命令需root用户执行

  • 创建用户

    useradd[-g -d] 用户名

  • 删除用户

    userdel [-r] 用户名

  • 查看用户所属组

    id[用户名]

  • 修改用户所属组

    usermod -aG

getent passwd 查看系统全部用户信息

getent group 查看系统全部组信息

3.5 权限控制信息

认知权限信息

image-20230426215105859

举例:drwxr-xr-x,表示

  • 这是一个文件夹,首字母d表示
  • 所属用户的权限师:rwx 就是有r有w有x
  • 所属用户组的权限是:r-x 有r无w有x
  • 其他用户的权限:r-x 有r无w有x

rwxrwxr-- : 三组rwx 分别表示 所有者、所有组、其他人 的权限。
r : 表示可读,
w : 表示可写 ,针对文件夹,可以在文件夹内:创建、删除、改名
x : 表示可执行 ,针对文件夹,表示可以更改工作目录到此文件夹,就是可以cd进入此文件夹

3.6 chmod命令 修改文件、文件夹的权限信息

使用chmod命令,修改文件、文件夹的权限信息

注意,只有文件、**文件夹的所属用户或root用户可以修改***

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

  • 选项: -R,对文件夹内的全部内容应用同样的操作
  • chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwxr-x--x 其中:u表示user所属用户权限,g表示group用户组权限,o表示other其他用户权限

权限的数字序号

image-20230427083759713

3.7 chown命令 修改文件、文件夹所属的用户和用户组

使用chown命令 修改文件、文件夹所属的用户和用户组

普通用户无法修改所属为其它用户或组,所有此命令只适用于root用户执行

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

  • 选项 ,-R,同chmod,对文件夹内全部内容应用相同规则
  • 选项,用户,修改所属用户
  • 选项,用户组,修改所属用户组
  • :用于分隔用户和用户组

实例:

  • chown root hello.txt 将hello.txt 所属用户修改为root

  • chown :root hello.txt 将hello.txt 所属用户组修改为root

  • chown root:itchen hello.txt 将hello.txt 所属用户修改为root,用户组修改为itchen

4.Linux文件

Linux系统中一切皆文件

image-20230424173044857

Linux文件是正斜杠(/)路径,这才是正确的路径,而计算机使用反斜杠(\),这其实是不对的

因为(\)有表示转义字符的意思

在用windows时我们在进行一些配置时,有时候会用(\\)或者(/)来写路径,而不是直接用(\)

5.文件目录

bin目录放一些二进制命令

6.FinalShell连接Linux

6.1在Linux终端中输入ifconfig获取IP地址

image-20230425104210004

inet 192.168.40.130 这一行的数字就是ip地址

6.2打开FinalShell新建连接,把主机名(IP),用户名,密码输入连接就行了

image-20230425104307937

7. vi\vim编辑器

7.1 什么是vi、vim编辑器?

  • vi\vim编辑器就命令行下的文本编辑器,用来编辑文件
  • vim是vi的升级版,一般用vim就行,包含vi所有内容

7.2 基础命令

  • vim 文件路径
  • vi 文件路径

7.3 三种工作模式

image-20230426083042459

  • 命令模式: 默认进入命令模式,通过键盘快捷键控制文件内容

  • 输入模式:在命令模式中按 i 进入输入模式,对文件内容进行编辑,按 esc 退回命令模式

  • 底线命令模式:在命令模式中按冒号(:)进入,可以对文件进行保存、关闭等操作,输入wq进行保存并退出(先保存再退出,w放前面)

8. 实用技巧

  • ctrl + c

    强制停止命令

    退出当前输入,重新输入

  • ctrl + d

    退出账户的登入

    退出某些特定程序的专属页面

    ps:不能用于退出vi/vim

    历史命令搜索

    输入history,查看历史输入过的命令

  • 可以通过: !命令前缀,自动执行上一次匹配前缀的命令

  • ctrl + r 搜索历史命令

  • ctrl + a|e 光标移动到命令开始或结束

  • ctrl + 左箭头|右箭头,左右跳单词

  • ctrl + l 或clear命令 清屏

9. 软件管理命令

9.1 CentOS系统

在CentOS系统中,使用yum命令联网管理软件安装

yum语法:yum [-y] [install |remove | research] 软件名称

9.2 Ubuntu系统

在Ubuntu系统中,使用apt命令联网安装软件

apt语法:apt [-y] [install |remove | research] 软件名称

9.3 systemctl 命令

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

作用:可以控制软件(服务)的启动、关闭、开机自启动

  • 系统内置服务均可被systemctl控制
  • 第三方软件,如果自动注册了可以被systemctl控制
  • 第三方软件,如果没有自动注册,可以手动注册

10.日期和时间

10.1 date命令查看系统的时间

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

  • -d 按照给定的字符串显示日期,一般用于日期计算
  • 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
    • %Y 年
    • %y 年份后两位数字
    • %m 月份(01,12)
    • %d 日(01,31)
    • %H 小时(00,23)
    • %M 分钟(00,59)
    • %S 秒(00,60)
    • %s 自1970-01-01 00:00:00 UTC到现在的秒数

image-20230427160452965

ps:可以用双引号包括起来

10.2 如何修改Linux时区

rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

10.3 ntp的作用

通过yum 安装ntp

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

11.IP地址、主机名

11.1 什么是IP地址?

每一台联网的电脑都会有一个地址,用于和其他计算机进行通讯

IP地址主要有2个版本,V4和V6版本

IPv4的地址格式是:a.b.c.d 其中abcd表示0~255的数字

可以通过命令:ifconfig 查看本机的ip地址,如无法使用ifconfig,可以安装:yum -y install net-tools

特殊IP地址

  • 127.0.0.1 这个ip指代本机
  • 0.0.0.0 特殊IP地址
    • 可以指代本机
    • 可以在端口绑定中用来确定绑定关系
    • 在一些ip地址限制中,表示所有ip的映射,如放行规则设置为0.0.0.0 ,表示允许任意ip访问

11.2 什么是主机名?

11.3 什么是域名解析?

请帮我设计一款博园园能用的主题,