Linux全笔记(尚硅谷视频)

article/2025/5/10 14:44:54

Linux是什么

  1. 是一个操作系统(OS)

李纳斯·托瓦兹

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

比较WindowsLinux
界面界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和操作方法也几乎一致。
驱动程序驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。
使用使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。图形界面使用简单,容易入门。文字界面,需要学习才能掌握。
学习系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。
软件每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。大部分软件都可以自由获取,同样功能的软件选择较少

安装

创建一个虚拟机

image-20230201195700654

image-20230201200750110

image-20230201200814600

image-20230201201017930

image-20230201201424659

image-20230201201459641

然后就是点击下一步就好

image-20230201201629123

image-20230201202003714

打开系统

image-20230201210752511

image-20230202093005309

目录用途

  • /bin: 是Binary的缩写,这个目录存放着最经常使用的命令。
  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  • /lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /etc:所有的系统管理所需要的配置文件和子目录my.conf。
  • /usr/local:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
  • /boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
  • /srv:service的缩写,该目录存放一些服务启动之后需要提供的数据。
  • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。
  • /tmp:这个目录是用来存放一些临时文件的。
  • /dev:类似windows的设备管理器,把所有的硬件用文件的形式存储。
  • /media:linux系统会自动识别一些设备,例如U盘光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
  • /opt:这是给主机额外安装软件所摆放的目录,如安装ORACLE数据库就可放到该目录下。默认为空。
  • /usr/local:这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序。
  • /var:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。
  • /selinux:SELinux是一种安全子系统,它能控制程序只能访问特定文件。

总结

  1. Linux的目录中有且只有一个根目录。
  2. Linux的各个目录存放的内容是规划好,不用乱放文件。
  3. Linux是以文件的形式管理我们的设备,因此linux系统,一切皆为文件。
  4. Linux的各个文件目录下存放什么内容,必须有一个认识。

VIM编辑器

VI是Unix系统和类Unix系统中最通用的文本编辑器。

image-20220815123840409

三种模式

正常模式:vim xxx进去之后看到的页面就是正常模式,不能直接编辑文本,主要操作是:**删除、复制、粘贴,**在正常模式下使用u是撤回操作

编辑模式:在一般模式下使用i、a或b,进入编辑模式,主要操作:编辑文本

命令模式:在一般模式下使用**:或者/,然后进行命令操作,:wq、:q:退出、:ql、:w:保存**

退出编辑模式、命令模式,回到正常模式:ESC

退出VI/VIM编辑器:****:q

切换输入法:super(windows)+空格

:set nu :显示行号

:set nonu:去除行号显示

正常模式

  • 用户刚刚启动 vi/vim,便进入了正常模式。

    此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

    以下是常用的几个命令:

    • i 切换到输入模式,以输入字符。
    • x 删除当前光标所在处的字符。
    • : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

插入/编辑模式

  • 在命令模式下按下i就进入了输入模式。

    在输入模式中,可以使用以下按键:

    • 字符按键以及Shift组合,输入字符
    • ENTER,回车键,换行
    • BACK SPACE,退格键,删除光标前一个字符
    • DEL,删除键,删除光标后一个字符
    • 方向键,在文本中移动光标
    • HOME/END,移动光标到行首/行尾
    • Page Up/Page Down,上/下翻页
    • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
    • ESC,退出输入模式,切换到命令模式

命令行模式

  • 在命令模式下按下:(英文冒号)就进入了底线命令模式。

    底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

    在底线命令模式中,基本的命令有(已经省略了冒号):

    • q 退出程序
    • w 保存文件

    按ESC键可随时退出底线命令模式。

3.2vim模式转换.jpg

总结Vim 的常见指令

  1. yy:复制光标当前一行
  2. 5yy:拷贝当前5行
  3. p:箭头移动到目的行粘贴
  4. u:撤销上一步
  5. dd:删除当前行
  6. 5dd:删除当前行向下的5行
  7. x:剪切一个字母,相当于del
  8. X:剪切一个字母,相当于退格键
  9. yw:复制一个词
  10. dw:删除一个词
  11. 在文件中查找某个单词:命令行输入 /(查找内容),按n查找下一个
  12. 设置文件行号:set nu,取消文件行号:set nonu
  13. 编辑文件,正常模式下使用快捷键到达文档最末行:G,最首行:gg
  14. 编辑文件,光标移动到某行:shift+g
    • 显示行号:set nu
    • 输入行号这个数
    • 输入shift+g
  15. w:向前移动一个单词(光标停在单词首部)
  16. b:向后移动一个单词 2b 向后移动2个单词

插入命令

指令说明
i在当前位置生前插入
I在当前行首插入
a在当前位置后插入
A在当前行尾插入
o在当前行之后插入一行
O在当前行之前插入一行

游标移动

指令说明
gg移动到文件头。 = [[
G(shift + g)移动到文件尾。 = ]]
行數 → G移動到第 n 行
冒号+行号,回车比如跳到240行就是 :240回车
h左移一个字符
l右移一个字符,这个命令很少用,一般用w代替。
k上移一个字符
j下移一个字符
w向前移动一个单词(光标停在单词首部)
b向后移动一个单词 2b 向后移动2个单词
e同w,只不过是光标停在单词尾部
ge同b,光标停在单词尾部。
^移动到本行第一个非空白字符上。
0移动到本行第一个字符上
HOME移动到本行第一个字符。同0健。
$移动到行尾 3$ 移动到下面3行的行尾
f(find)fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。
F同f,反向查找

撤销和重做

指令说明
u撤销(Undo)
U撤销对整行的操作
Ctrl + r重做(Redo),即撤销的撤销。

删除命令

指令说明
x删除当前字符
3x删除当前光标开始向后三个字符
X删除当前字符的前一个字符。X=dh
dl删除当前字符, dl=x
dh删除前一个字符
dd删除当前行
dj删除上一行
dk删除下一行
10d删除当前行开始的10行。
D删除当前字符至行尾。D=d$
d$删除当前字符之后的所有字符(本行)
kdgg删除当前行之前所有行(不包括当前行)
jdG(jd shift + g)删除当前行之后所有行(不包括当前行)
:1,10d删除1-10行
:11,$d删除11行及以后所有的行
:1,$d删除所有行
J(shift + j)删除两行之间的空行,实际上是合并两行。

拷贝,剪贴和粘贴

指令说明
yy拷贝当前行
nyy拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。
p在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。
shift+p在当前行前粘贴
:1,10 co 20将1-10行插入到第20行之后。
:1,$ co $将整个文件复制一份并添加到文件尾部。
ddp交换当前行和其下一行
xp交换当前字符和其后一个字符
ndd剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴
:1,10d将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。
:1, 10 m 20将第1-10行移动到第20行之后。

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制

退出命令

指令说明
:wq保存并退出
ZZ保存并退出
:q!强制退出并忽略所有更改
:e!放弃所有修改,并打开原来文件。
:q未修改直接退出

网络配置

Bridged(桥接模式)

桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关DNS需要与主机网卡一致。其网络结构如下图所示:image-20230202195749540

点击“网络适配器”,选择“桥接模式”,然后“确定”

在进入系统之前,我们先确认一下主机的ip地址、网关、DNS等信息。

image-20230202200707143

然后,进入系统编辑网卡配置文件,在终端输入命令vim /etc/sysconfig/network-scripts/ifcfg-eth0

image-20230202200716244

编辑完成,保存退出,然后重启虚拟机网卡,使用ping命令ping外网ip,测试能否联网。

NAT(地址转换模式)

虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换,虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。

image-20230202201030196

Host-Only(仅主机模式)

虚拟机只与主机共享一个专用网络,与外部网络无法通信。

image-20230202201437528

重启网络服务:service network restart

修改 IP 地址后可能会遇到的问题

(1)物理机能 ping 通虚拟机,但是虚拟机 ping 不通物理机,一般都是因为物理机的 防火墙问题,把防火墙关闭就行

(2)虚拟机能 Ping 通物理机,但是虚拟机 Ping 不通外网,一般都是因为 DNS 的设置有 问题

(3)虚拟机 Ping www.baidu.com显示域名未知等信息,一般查看 GATEWAY 和 DNS 设 置是否正确

(4)如果以上全部设置完还是不行,需要关闭 NetworkManager 服务

  • systemctl stop NetworkManager 关闭
  • systemctl disable NetworkManager 禁用

(5)如果检查发现 systemctl status network 有问题 需要检查 ifcfg-ens160

配置主机名

修改主机名称

hostname (功能描述:查看当前服务器的主机名称)

如果感觉此主机名不合适,我们可以进行修改。通过编辑vim /etc/hostname 文文件

修改完成后重启生效。

如果想立即生效可以通过hostnamectl set-hostname dselegent-study【要修改的主机名】这个命令,然后重启终端就可以看到效果了

修改 hosts 映射文件

1)修改 linux 的主机映射文件(hosts 文件) 后续在 hadoop 阶段,虚拟机会比较多,配置时通常会采用主机名的方式配置, 比较简单方便。 不用刻意记 ip 地址。vim /etc/host

添加如下内容

192.168.2.100 ds100
192.168.2.101 ds101
192.168.2.102 ds102
192.168.2.103 ds103
192.168.2.104 ds104
192.168.2.105 ds105

重启设备,重启后,查看主机名,已经修改成功

2)修改 windows 的主机映射文件(hosts 文件)

进入 C:\Windows\System32\drivers\etc 路径

打开 hosts 文件并添加如下内容

192.168.2.100 ds100
192.168.2.101 ds101
192.168.2.102 ds102
192.168.2.103 ds103
192.168.2.104 ds104
192.168.2.105 ds105

先将该文件只读关闭,然后写入内容保存,最后恢复到只读状态

这时可以在windows通过ping ds100来测试是否连通虚拟机

远程登录

通常在工作过程中,公司中使用的真实服务器或者是云服务器,都不允许除运维人员之 外的员工直接接触,因此就需要通过远程登录的方式来操作。所以,远程登录工具就是必不 可缺的,目前,比较主流的有 Xshell,SSH Secure Shell,SecureCRT,FinalShell 等,同学们 可以根据自己的习惯自行选择,以下以 Xshell5 为例。

系统管理

计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。

启动之后一只存在、常驻内存的进程,一般被称作“服务”(service)。

实操篇

帮助命令

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

TAB补全

现在,在终端里,输入ca,然后快速按2次<TAB>键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[root@localhost ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      
ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

常用快捷键

常用快捷键功能
ctrl + c停止进程
ctrl + l清屏,等同于clear;彻底清屏是: reset
tab提示(更重要的是可以防止敲错)
上下键查找执行过的命令

文件目录类

pwd显示当前工作目录的绝对路径

pwd: print working directory 打印工作目录

基础语法: pwd (显示当前工作目录的绝对路径)

ls 列出目录的内容

ls: list 列出目录内容

1)基本语法

ls [选项] [文件或目录]

  1. 选项说明
选项功能
-a全部的文件,连同隐藏文档(开头为.的文件) 一起
-l长数据串列出,包含文件的属性与权限等等数据(常用)等价于“ll”
-lh文件大小比较好看

3)显示说明

每行列出的信息依次是:文件类型与权限 链接户 文件属性 文件大小用byte来标识 建立或最近修改的时间 名字

cd 切换目录

cd Change Directory 切换目录

参数功能
cd 绝对路径切换路径
cd 相对路径切换路径
cd ~ 或 cd回到自己的家目录
cd -回到上一次所在目录
cd …回到当前目录的上一级目录
cd -P跳转到实际物理路径,而非快捷方式路径

mkdir创建一个新的目录

# 创建目录 mkdir a

# 一次创建多级

mkdir a a/b a/b/c

mkdir -p a/b/c

rmdir删除一个空的目录

# 删除目录 rmdir a

# 删除多级目录

rmdir a/b/c

创建空文件

1) 基本语法

touch 文件名称

cp复制文件或目录

image-20230203165011400

rm 删除文件或目录

rm [选项] deleteFile 递归删除目录中所有内从

选项功能
-r递归删除目录中所有内容
-f强制执行删除操作,而不提示用于进行确认
-v显示指令的详细执行过程

mv 移动文件或目录或重命名

mv oldNameFile newNameFile 重命名

mv /tmp/moveFile /targerFolder 移动文件

cat 查看文件内容

cat [选项] 要查看的文件

cat -n 文件名 显示所有行的行号,包括空行

more 文件内容分屏查看器

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置若干快捷键

操作功能说
空白键(space)代表向下翻一页
Enter代表向下翻一行
q立刻离开 more
ctrl + F向下滚动一屏
ctrl + B返回上一屏
=输出当前行的行号
:f输出文件名和当前行行号

less 分屏显示文件内容 (查看大文件)

less指令永爱分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

less 文件名
1
操作功能说明
空白键向下翻动一页
pagedown向下翻动一页
pageup向上翻动一页
/字符串向下搜寻【字符串】的功能:n:向下查找 N:向上查找
?字符串向上搜寻【字符串】的功能:n 向上查找 N 向下查找
q离开less这个程序

echo

echo 输出内容到控制台

echo 【选项】【输出内容】

-e: 支持反斜线控制的字符转换

控制字符作业
\输出\本身
\n换行符
\t制表符,也就是Tab键

查看系统环境变量

echo $ + Tab键

head 显示文件头部内容

head用于显示文件的开头部门内容,默认情况下 head指令显示文件的前10行内容。

1)基本语法

head 文件名 查看文件头10行内容

head -n 5 文件 查看文件头5行内容

tail 输出文件尾部

tail -n 5 文件名

tail -f 文件

  • 按Ctrl + S 可以暂停监听
  • 按Ctrl + Q 可以继续监听

查看文件索引

ls -i web.log

输出重定向和 >> 追加

  • ls -l > a.txt (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
  • ls -al >> aa.txt (功能描述:列表的内容追加到文件 aa.txt 的末尾)
  • cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
  • echo “内容” >> 文件

ln 软连接

软连接(link)也称为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了连接其他文件的路径

创建软连接

[root@lys logs]# ln -s web.log web
[root@lys logs]# ll
total 7988
-rw-r--r-- 1 root root  115498 May 13 11:04 gateway.log
lrwxrwxrwx 1 root root       7 May 16 00:36 web -> web.log # 软连接的前缀为l
-rw-r--r-- 1 root root 8048944 May 16 00:36 web.log
123456

直接进入软连接对应的地址

cd -P 软连接 
1

删除软连接: rm -rf 软连接名,而不是rm -rf 软连接名/

!!! 如果使用rm -rf 软连接/ 删除,会把软连接对应的真实目录下内容删掉

硬连接 (相当于)

ln 文件名 链接名

history 查看已经执行过历史命令

# 查看历史命令
history
# 情况历史命令
history -c

时间日期类

  1. 基本语法

date [option] + [format]

date -s 日期时间 设置日期时间

date + “日期时间格式” 指定显示时使用的日期

date显示当前时间

  • date
  • date + %Y
  • date + %m
  • date + %d
  • date “+%Y-%m-%d %H:%m:%S”
  • date +%Y-%m-%d %H:%m:%S
  • date +%s 查看时间戳
  • date -d “-1 hours ago” 一个小时后的时间

设置系统当前时间

date -s "2022-06-19 20:52:22"
1

同步时间

ntpdate -u ntp1.aliyun.com

cal查看日历

cal [选项] 不加选项,显示本月日历

  • cal -3 查看3个月的时间
  • cal -m 周一放在第一天
  • cal 2022 查看2022年日历
  • cal 查看本年度日历

用户管理命令

# useradd 用户名 添加新用户
useradd lys
# 可以在home目录看到创建的用户文件夹
cd /home
# 创建时修改主文件夹名称
useradd -d /home/dave david
# 设置密码
passwd lys# 查看用户信息,可以验证是否存在
id lys
uid=1005(lys) gid=1005(lys) groups=1005(lys)# 查看系统用户
less /etc/passwd# 切换用户 su: switch user
su lys
# 在lys用户退出可回到root用户
exit# 查看当前用户
who am i# 删除用户
userdel lys
# 删除用户以及文件夹
userdel -r lys# sudo设置普通用户具有root权限
vim /etc/sudoers
# 添加
lys     ALL=(ALL)       ALL
# 使用超级管理员权限
sudo lys
# 将用户添加入某个组
usermod -g 组名 用户名

用户组管理命令

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规则有所不同,

如Linux下的用户属于与它同名的用户组,这个用户在和创建用户时同时创建。

用户组的管理设计用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新

# 新增组
groupadd 组名# 修改组名
groupmod -n 新组名 旧组名# 删除用户组
groupdel 组名

文件权限类

文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll 或者ls -l来显示一个文件的属性以及文件所属的用户和组

  1. 从左到有的10个字符标识

image-20220517231040047

(1)0首位表示类型

在Linux中第一个字符代表这个文件是目录、文件或链接文件

-  - 代表文件
-  d 代表目录
- l  链接文档 (link file)

(2) 第1-3位确定属主(该文件的所有者)拥有该文件的权限。User

(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限。Group

(4) 第7-9位确定其他用户拥有该文件的权限 Other

  1. rwx作用文件和目录的不同解释

    作用到文件:

    【r】: 代表可读(read) 可以读取,查看

    【w】:代表可写(write) 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件

    【x】:代表可执行(execute) 可以被系统执行

    作用到目录:

    【r】: 代表可读(read) 可以读取,ls查看目录内容

    【w】:代表可写(write) 可以修改,目录内创建+删除+重命名目录

    【x】:代表可执行(execute) 可以进入该目录

image-20220517232953855

(1)如果查看到是文件:链接数指的是硬链接个数。

(2)如果查看的是文件夹:链接数指的是子文件夹个数。

chmod 改变权限

示例

# 增加执行权限
chmod +x nginx.conf# chmod [u|g|o|a] +-= {rwx} 文件或目录
chmod u+x nginx.conf
chmod u-x nginx.conf
chmod u=x nginx.conf
chmod a+x nginx.conf
chmod a=rwx nginx.conf# r=4 w=2 x=1
# 直接用数字修改权限
chmod 777 nginx.conf# 修改整个文件夹的所有这,所属组,其他用户都具有可读可写可执行权限
chmod -R 777 nginx.conf

chown 改变所有者

chown 改变所有者

chown [选项] [最终用户] [文件或目录]

chown lys a.txt
# 获取递归改变文件所有者和所有组
chown -R lys dir

charp 改变所有组

chgrp [最终用户组] [文件或目录]

chgrp root a.txt

搜索查找类

find 查找文件或目录

find 指令将从指定目录向下递归地遍历其各个子目录

find [搜索范围] [选项]

选项功能
-name 查询方式按照指定文件名查找模式查找文件
-user 用户名查找属于指定用户名所有文件
-size 文件大小按照指定文件大小查找文件,单位为 b-块 (512字节) c- 字节 w-字 2字节 k - 千字节 M -兆字节 G-吉字节
# 按名称查找
find -name nginx.conf# 按路径加名称查找
find /root -name nginx.conf# 按照后缀查找
find -name ".cfg"# 按用户查找
find -user lys# 按大小查找 +大于 -小于
find -size +1M
find -size +1M

locate 快速定位文件路径

local指令利用事先简历的系统中所有文件名称及路径的locate数据库事先快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时时刻。

locate 搜索文件

由于locate指令基于数据库进行查询,所以第一此运行前,必须使用updatedb指令创建locate数据库

updatedb
locate nginx.conf
# 查看指令所在位置 
which ls
whereis locate

grep过滤查找及"|"管道符

管道符,|,表示将前一个命令的处理结果输出传递给后面的命令处理

grep 选项 查找内容 源文件

  • -n 显示匹配行及行号
# 显示location在nginx.conf的哪几行
grep -n location nginx.conf 
# 查找某文件在该目录的第一个
ls | grep -n test

wc 查看单词数量

wc nginx.conf
136  302 3022 nginx.conf
行数  单词数量 字节数

压缩和压缩类

gzip/gunip 压缩

gzip 文件

gunzip 文件.gz (解压缩文件命令)

  • 只能压缩文件不能压缩目录
  • 不保留原来的文件
  • 同时多个文件会产生多个压缩包

示例

gzip nginx.conf
gunzip nginx.conf
gzip nginx.conf nginx.conf2

zip/unzip压缩

zip压缩命令在window/linux都通用,可以压缩目录且保留源文件

zip [选项] XXX.zip 压缩文件和目录命令

unzip [选项] XXX.zip 解压缩文件

  • zip -r 压缩目录
  • unzip -d 指定解压后文件的存放目录
# 将logs压缩成logs.zip
zip -r logs.zip logs/# 解压logs.zip
unzip -d ./tmp logs.zip 

tar打包

tar [选项] XXX.tar.gz 打包目录,压缩后的文件格式 .tar.gz

选项功能
-c产生.tar打包文件
-v显示详细信息
-f执行压缩后的文件名
-z打包同时压缩
-x解压.tar文件
-C解压到指定目录
# 压缩单个文件
tar -zcvf nginx.tar.gz nginx.conf
# 压缩多个文件
tar -zcvf nginx.tar.gz nginx.conf nginx.conf2
# 解压文件
mkdir tmp
tar -zxvf nginx.tar.gz -C tmp/

磁盘查看和分区类

du 查看文件和目录占用的磁盘空间

du: disk usage 磁盘占用情况

du 目录/文件 显示目录下每个子目录的磁盘使用情况

选项功能
-h以人们较易预读的G,M、k等格式自行显示
-a不进查看子目录大小,还要包括文件
-c显示所有的文件和子目录大小后,显示总和
-s只显示总和
-max-depth=n指定统计子目录的深度为第nc层

tree 工具

示例

查看当前用户主目录占用的磁盘空间大小

du -sh # 查看当前路径文件大小
# 子查看一级子目录
du --max-depth=1 -ah

df查看磁盘空间使用情况

df: disk free 空余磁盘

df 选项 列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况

df -h 以人们较阅读的格式自行显示

lsblk 查看设备挂载情况

  • lsblk
  • lsblk -f 查看详细的设备故障情况,显示文件系统信息

mount/umount 挂载/卸载

对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。

Linux中每个分区都是用来组成整个文件系统的一部门,它在用一种叫挂载的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个文件将它的存储空间在这个目录获得,

mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)

umount 设备文件名或挂载点 (功能描述:卸载设备)

参数功能
-t vfstype指定文件系统的类型,通常不必指定。mount会自动选择类型。常用类型有:光盘或光盘镜像 DOS Windows9x fat32文件系统:vfat Windows NT ntfs 文件系统: ntfs Mount Windows 文件网络共享:smbfs UNIX(LINUX)文件共享:nfs
-o options主要用来描述设备或档案的挂接方式。常用的参数有: loop 用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备 iocharset: 指定访问系统所用字符集
device要挂接的设备
dir设备在系统上的挂载点

设置开机自启动

vi /etc/fstab

image-20220522152433537

fdisk分区

fdisk -l 查看磁盘分区详情

fdisk 硬盘设备名 (显示所有硬盘的分区列表)

(1)Linux 分区

Device:分区序列

Boot:引导

Start:从X磁柱开始

End:到Y磁柱结束

Blocks:容量

Id:分区类型ID

System:分区类型

(2)分区操作按键说明

m:显示命令列表

p:显示当前磁盘分区

n:新增分区

w:写入分区信息并退出

q:不保存分区信息直接退出

进程管理类

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用着一定的系统资源

ps 查看当前系统进程状态

ps: process status 进程状态

  • ps aux | grep XXX 查看系统中带XXX的进程
  • ps -ef | grep XXX 可以查看子父今后进程之间的关系
选项功能
a列出带有终端的所有用户的进程
x列出当前用户的所有今后进程,包括没有终端的进程
u面向用户友好的显示风格
-e列出所有进程
-u列出某个用户关联的所有进程
-f显示完整格式的进程列表
ls /usr/lib/systemd/system
# 带d.service的为守护进程
ls /usr/lib/systemd/system | grep d.service
ps aux | less
ps -ef | less

1. ps aux显示信息说明

USER:该进程是由哪个用户产生的

PID: 进程的ID号

%CPU: 该进程占用CPU资源的百分比,占用越高,进程越耗费资源;

%MEM: 该进程占用物理内存的百分比,占用越高,进程越耗费资源;

VSZ: 该进程占用虚拟内存的大小,单位KB;

RSS: 该进程占用实际物理内存的大小,单位KB;

TTY: 该进程是哪个终端中运行的。对于CentOS来说,tty1是图形化终端,tty2-tty5是本地的字符界面终端。pts/0-255代表虚拟终端。

STAT: 进程状态。常见的状态有:

R:运行状态 S:睡眠状态 T: 暂停状态 Z:僵尸状态 s:包含子进程 l: 多线程 +:前台显示 <:高优先级 N:低优先级

START: 该进程的启动时间

TIME:该进程占用CPU的运算时间,注意不是系统时间

COMMAND:产生此进程的命令名

2. ps -ef 显示信息说明

UID: 用户ID

PID: 进程ID

PPID: 父进程ID

C: CPU用于计算执行优先级的因子。数字越大,表明进程是CPU密集型运算,执行优先级会降低;数字越小,表明进程是I/O密级型运算,执行优先级会提高

STIME:进程启动的时间

TIY:完成的终端名称

TIME: CPU时间

CMD: 启动进程所用的命令和参数

如果是想查看进程CPU占用率和内存占用率,可以使用aux

如果想查看进程的父进程ID可以使用ef;

kill 终止进程

kill [选项] 进程号 通过进程号杀死进程

killall 进程名称 通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用

选项功能
-9表示强迫进程立即停止

kill -l 查看各个号码代表的意思

pstree 查看进程树

pstree [选项]

选项功能
-p显示进程PID
-u显示进程的所属用户
  • pstree
  • pstree -p
  • pstree -u

top实施监控系统进程状态

top [选项]

选项功能
-d 秒数指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行
-i使top不显示任何闲置或者僵死进程。
-p通过指定进程ID来仅仅监控某个进程的状态
操作功能
P以CPU使用率排序,默认就是此项
M以内存的使用率排序
N以PID排序
q退出top
u根据指定用户进行过滤
k直接杀死

netstat 显示网络状态和端口占用信息

  • netstat -anp | grep 进程号 查看该进程网络信息
  • netstat -nlp | grep 端口号 查看网络端口号占用情况
  • netstat -atnp 查看连接
选项功能
-a显示所有正在监听(listen)和未监听的套接字(socket)
-n拒绝显示别名,能显示数字的全部转化为数字
-l仅列出在监听的服务状态
-p表示显示哪个进程在调用

crontab 系统定时任务

crontab服务管理

重启cornd服务管理

systemctl restart crond

选项说明

选项功能
-e编辑crontab定时任务
-l查询crontab任务
-r删除当前用户所有的crontab任务

进入编辑界面

crontab -e
# 小例子 每分钟往hello文件追加一个"hello world"
*/1 * * * * echo "hello world" >> /root/hello
项目含义范围
第1个“*"一个小时当中的第几分钟0-59
第2个“*"一天当中的第几个小时0-23
第3个“*"一个月当中的第几天1-31
第4个“*"一年当中的第几月1-12
第5个“*"一周当中的星期几0-7 (0和7都代表星期日)

符号说明

特殊符号含义
*代表任何时间,比如第一个“*”就代表一小时中每分钟都执行一次的意思
代表不连续的时间。比如“0 8,12,16 * * *” 就代表在每天的8点0分,,12点0分,16点0分都执行一次命令
-代表连续的时间访问。比如“0 5 * * 1-6" 代表在周一到周六的凌晨5点0分执行命令
*/n代表每隔多久执行一次,比如”*/10 * * * *" 命令,代表每隔10分钟就执行一边命令

示例

45 22 * * *每天22点45分执行命令
0 17 * * 1每周1的17点0分执行命令
0 5 1,15 * *每月1号 15号的凌晨5点0分执行命令
40 4 * * 1-5 命令每周一到周五 4点40分执行命令
*/10 4 * * *每天的凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1 命令每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同事出现,因为他们定义的都是天。非常容易让管理员混乱

软件包管理

RPM

RPM概述

RPM(RedHat Package Manager),RedHat软件包管理工具,类似于windows里面的setup.exe,是Linux这系列操作系统的打包安装工具,它虽然是RedHat的标志,但理念是通用的。

RPM包的名称格式

Apache-1.3.23-11.i386.rpm

“apache” 软件名称

“1.3.23-11”软件的版本号,主版本和此版本

“i386”是软件所运行的硬件平台,Intel 32位处理器的统称

“rpm”文件扩展名,代表RPM包

RPM查询命令 (rpm -qa)

rpm -qa 查询所安装的所有rpm软件包

由于软件包比较多,一般都会才去过滤 rpm -qa | grep 名称

查询具体信息

rpm -qi unzip-6.0-24.el7_9.x86_64

RPM 卸载命令 (rpm -e)

rpm -e 名称 卸载软件包

rpm -e --nodeps 名称 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作

卸载firefox

rpm -e firefox

安装命令 (rpm -ivh)

rpm -ivh 包全名

选项功能
-iinstall 安装
-v–verbose 显示详细信息
-h–hase,进度条
–nodeps安装前不检查依赖

安装firefox

rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm

仓库配置

YUM概述

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次 安装所有依赖的软件包,无须繁琐地一次一次下载,安装。

YUM的常用命令

yum [选项] [参数]

选项功能
-y对所有提问都回答“yes"
参数功能
install安装rpm 软件包
update更新rpm软件包
check-update检查是否有可用的更新rpm软件包
remove删除指定的rpm软件包
list显示软件包信息
clean清楚yum过期的缓存
deplist显示yum软件包的所有依赖关系

yum方式安装firefox

yum list | grep firefox
# 卸载老版本
yum remove firefox
yum -y install firefox

修改网络YUM源 (默认会自己搜索最近的)

默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络 YUM 源为国内镜像的网站,比如网易 163,aliyun 等

(1)安装 wget, wget 用来从指定的 URL 下载文件

yum install wget

(2)在/etc/yum.repos.d/目录下,备份默认的 repos 文件

cp CentOS-Base.repo CentOS-Base .repo.backup

(3)下载网易 163 或者是 aliyun 的 repos 文件,任选其一

wget http://mirrors.aliyun.com/repo/Centos-7.repo # 阿里云
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo # 网易

(4)使用下载好的 repos 文件替换默认的 repos 文件 例如:用 CentOS7-Base-163.repo 替换 CentOS-Base.repo

mv CentOS7-Base-163.repo CentOS-Base.repo

(5)清理旧缓存数据,缓存新数据

yum clean all
yum makecache

yum makecache 就是把服务器的包信息下载到本地电脑缓存起来

(6)测试

yum list | grep firefox
yum -y install firefox

http://chatgpt.dhexx.cn/article/TrQPQxUq.shtml

相关文章

软件开发介绍-尚硅谷视频学习随记

目录 软件开发相关概念 Java相关介绍 环境配置 常用dos命令 常用快捷键 软件开发相关概念 1.软件&#xff1a;一系列按照特定顺序组织的计算机数据和指令集合&#xff0c;进而构成的一种工具。分为系统软件&#xff08;操作系统&#xff09;和应用软件。 应用程序算法数据…

NodeJs(尚硅谷视频学习笔记)

内容来自尚硅谷Nodejs学习课件以及自己添加 课前预热&#xff1a;CMD基本知识 1.命令行窗口&#xff08;小黑屏&#xff09;、CMD窗口、终端、shell - 开始菜单 --> 运行 --> CMD --> 回车 - Win R --> CMD --> 回车 - 常用的指令dir 列出当前目录下的所…

前端项目-尚品会-来自b站尚硅谷视频

目录 前言gulishop-client---vue2项目目录分页器 前言 重温Vue&#xff0c;打开之前的项目文件夹&#xff0c;陌生又熟悉… 3月份左右看的项目视频&#xff0c;现在已经忘得差不多了…甚至记不清自己是看的哪个视频…刚刚才想起来自己并没有看Vue的视频教程&#xff0c;当初直…

Linux的使用_尚硅谷视频学习笔记

到达底部 文章目录 Linux的使用参考 第 1 章 Linux 开山篇1.1 本套 Linux 课程的内容介绍1.2 Linux 的学习方向1.3 Linux 的应用领域1.3.1个人桌面应用领域1.3.2服务器应用领域1.3.3嵌入式应用领域 1.4 学习 Linux 的阶段&#xff08;高手进阶过程&#xff09;1.5 Linux 的学习…

【javaScript】学完js基础,顺便把js高级语法学了(尚硅谷视频学习笔记)

文章目录 【1】基本总结深入一、什么是数据1、数据类型基本&#xff08;值&#xff09;类型对象&#xff08;引用&#xff09;类型 2、判断相关问题 二、什么是内存1、什么是数据2、什么是内存&#xff1f;3、什么是变量4、内存、数据、变量三者之间的关系相关问题1、问题&…

Mybatis-plus (教程来自尚硅谷视频)

1.什么是Mybatis-plus? 官网地址&#xff1a;MyBatis-Plus 1.1MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 Mybatis-plus的愿景成为Mybatis的最好拍档&a…

JavaSE(尚硅谷视频学习笔记)

文章目录 Java基础编程Java语言概述Java语言简述1.基础图解2.常识3.计算机语言的发展迭代4.Java语言版本迭代概述5. Java语言应用的领域6.Java语言的特点 开发环境的搭建1. JDK、JRE、JVM的关系2. JDK的下载安装 注释与API文档1. 注释Comment2. Java API 文档3. 良好的编程风格…

尚硅谷Java入门视频教程(一)编程入门

冯诺依曼体系结构&#xff1a;中央处理器(CPU)(寄存器、算术逻辑单元、控制单元)、内存(主存)、存储设备(内存、硬盘)、输入输出设(外设、显示器)、通信设备(网卡等)。通过总线连接&#xff0c;传输数据。 中央处理器&#xff1a;(Central Processing Unit CPU)&#xff1a;获…

尚硅谷Java入门视频教程第五章——面向对象编程(中)

尚硅谷Java入门视频教程第五章——面向对象编程&#xff08;中&#xff09; 第5章&#xff1a;面向对象编程(中)5.1 面向对象特征之二&#xff1a;继承性5.2 方法的重写&#xff08;override/overwrite&#xff09;5.3 四种访问权限修饰符5.4 关键字&#xff1a;super5.5 子类对…

“为了对电脑进行保护,已经阻止此应用。”

环境&#xff1a;Win10专业版 解决方法&#xff1a;

win10运行安装软件程序提示“为了对电脑进行保护,已经阻止此应用” 有效解决方法记录

问题&#xff1a; 解决&#xff1a; 在程序文件上&#xff0c;按住【shift】键&#xff0c;同时点击鼠标右键→【复制为路径】&#xff0c;打开C:\Windows\System32&#xff0c;找到cmd.exe&#xff0c;右键→【以管理员身份运行】&#xff0c;在打开的界面将路径粘贴&#xff…

【windows】Windows10为了对电脑进行保护,已经阻止此应用解决方案

winr打开运行输入“gpedit.msc”,打开“本地组策略编辑器”&#xff0c;依次点开&#xff1a; 1.计算机配置 2.Windows设置 3.安全设置 4.本地策略 5.安全选项 在右边框内找到并双击“用户账户控制&#xff1a;以管理员批准模式运行所有管理员” 在打开的对话框中选择“…

为了对电脑进行保护,已经阻止此应用 解决办法

上面就是问题&#xff0c;这个是我在安装百度硬盘搜索的时候出现的&#xff0c;不知道啥原因。在网上找了一堆的解决方法都没有成功&#xff0c;比如修改本地策略&#xff0c;修改安全级别等等。最后发现一个人的方法有效分享给大家&#xff1a; 1.用管理员身份执行cmd 2.复制该…

Win10提示“为了对电脑进行保护,已经阻止此应用”如何解决

Win10提示“为了对电脑进行保护,已经阻止此应用”如何解决 从Win7系统升级到Win10正式版系统后&#xff0c;发现其他目录的一些程序都无法打开&#xff0c;且提示“为了对电脑进行保护&#xff0c;已经阻止此应用”&#xff0c;这是怎么回事呢&#xff1f;其实&#xff0c;该问…

Win10家庭版安装软件时提示“为了对电脑进行保护,已经阻止此应用”

如果你遇到了这个问题 你也是Win10家庭版&#xff0c;则下面的方法拯救不了你&#xff1a; 第一步&#xff1a; 恢复组策略 在桌面新建文本文档&#xff0c;粘贴代码&#xff1a; echo off pushd “%~dp0” dir /b C:\Windows\servicing\Packages\Microsoft-Windows-Group…

为了保护您的计算机,windows已经关闭了此程序,电脑Win7升级Win10系统后运行程序提示为了对电脑进行保护已经阻止此应用的解决方法...

随着我国互联网技术不断的进步,计算机网络的发展也逐渐趋向成熟。计算机网络发展为人民群众生活带来了很大的益处,使得人们的生活更便捷与信息化。下面是学习啦小编为大家整理的关于电脑Win7升级Win10系统后运行程序提示为了对电脑进行保护已经阻止此应用的解决方法&#xff0c…

2021-01-29-Windows10系统专业版-右键计算机管理,弹出警告框:为了对电脑进行保护,已阻止此应用。 管理员已阻止你运行此应用。有关详细信息,请与管理员联系。完美解决方案

1、按windows按钮&#xff0c;输入cmd&#xff0c;有一个以管理员身份运行的命令&#xff0c;点击打开 1.1、如果找不到&#xff0c;可以试试这个路径&#xff1a;C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools&#xff0c;里面…

你的账户配置为阻止使用计算机,Win10提示“为了对电脑进行保护,已经阻止此应用”如何解决-系统城...

从Win7系统升级到Win10正式版系统后&#xff0c;发现其他目录的一些程序都无法打开&#xff0c;且提示“为了对电脑进行保护&#xff0c;已经阻止此应用”&#xff0c;这是怎么回事呢&#xff1f;其实&#xff0c;该问题是由于系统所登录的账号管理权限不足导致的。下面&#x…

你的账户配置为阻止使用计算机,win10运行程序提示“为了对电脑进行保护,已经阻止此应用”怎么办...

升级win10系统之后&#xff0c;有用户在安装软件程序时提示“为了对电脑进行保护&#xff0c;已经阻止此应用”&#xff0c;“管理员已阻止你运行此应用。发布者&#xff1a;不受信任”&#xff0c;这是怎么回事呢&#xff1f;其实这是win10系统的帐户安全控制机制&#xff0c;…

win10运行程序提示“为了对电脑进行保护,已经阻止此应用” 解决方法

升级win10系统之后&#xff0c;有用户在安装软件程序时提示“为了对电脑进行保护&#xff0c;已经阻止此应用”&#xff0c;“管理员已阻止你运行此应用。发布者&#xff1a;不受信任”&#xff0c;这是怎么回事呢&#xff1f;其实这是win10系统的帐户安全控制机制&#xff0c;…