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的名字

2.12 mv 移动文件或文件夹
语法 :mv 参数1 参数2
如果文件不存在,将会创造文件
2.13 su - root 切换到root用户
输入命令: su - root 并输入root密码,进入root账号登入
输入exit命令,返回普通用户
2.14 which 查找命令的所在的位置
例如:which cd

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认证
- 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
- 在文件的最后添加: itchen ALL=(ALL) NOPASSWD: ALL
- 其中最后的NOPASSWD:ALL表示sudo命令,无需输入密码
- 最后通过wq保存
- 切换会普通用户
- 执行的命令,均以root运行
- 注意:在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到现在的秒数

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认证
- 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
- 在文件的最后添加: itchen ALL=(ALL) NOPASSWD: ALL
- 其中最后的NOPASSWD:ALL表示sudo命令,无需输入密码
- 最后通过wq保存
- 切换会普通用户
- 执行的命令,均以root运行
- 注意:在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 权限控制信息
认知权限信息

举例: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其他用户权限
权限的数字序号

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系统中一切皆文件

Linux文件是正斜杠(/)路径,这才是正确的路径,而计算机使用反斜杠(\),这其实是不对的
因为(\)有表示转义字符的意思
在用windows时我们在进行一些配置时,有时候会用(\\)或者(/)来写路径,而不是直接用(\)
5.文件目录
bin目录放一些二进制命令
6.FinalShell连接Linux
6.1在Linux终端中输入ifconfig获取IP地址

inet 192.168.40.130 这一行的数字就是ip地址
6.2打开FinalShell新建连接,把主机名(IP),用户名,密码输入连接就行了

7. vi\vim编辑器
7.1 什么是vi、vim编辑器?
- vi\vim编辑器就命令行下的文本编辑器,用来编辑文件
- vim是vi的升级版,一般用vim就行,包含vi所有内容
7.2 基础命令
- vim 文件路径
- vi 文件路径
7.3 三种工作模式

-
命令模式: 默认进入命令模式,通过键盘快捷键控制文件内容
-
输入模式:在命令模式中按 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到现在的秒数

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 什么是域名解析?
请帮我设计一款博园园能用的主题,