赞
踩
快捷键 | 用途 |
---|---|
ctrl+A | 把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。 |
ctrl+E | 把光标移动到命令行结尾。 |
ctrl+C | 强制终止当前的命令。 |
ctrl+L | 清屏,相当于clear命令。 |
ctrl+U | 删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便 |
ctrl+K | 删除或剪切光标之后的内容。 |
ctrl+Y | 粘贴ctrl+U或ctul+K剪切的内容。 |
ctrl+R | 在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。 |
ctrl+D | 结束输入或退出shell |
ctrl+Z | 暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。 |
ctrl+S | 暂停屏幕输出。 |
ctrl+Q | 恢复屏幕输出 |
ctrl+→ | 光标向右移动一个单词 |
ctrl+← | 光标向左移动一个单词 |
clear
reset
history
history N # 显示最近的n条命令
history -w fileName.txt # 将历史记录保存到文本fileName.txt中
--help
# 显示rm命令相关帮助
rm --help
exit
linux文件系统介绍
目录 | 作用 |
---|---|
/us | 应用程序存放目录,/usr/bin 存放应用程序 |
/usr/share | 存放共享数据 |
/usr/lib | 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件 |
/usr/local | 存放软件升级包 |
/usr/share/doc | 系统说明文件存放目录 |
/usr/share/man: 程序说明文件存放目录。 | |
/var | 放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message |
/var/spool/mail | 邮件存放的目录 |
/var/run | 程序或服务启动后,其PID存放在该目录下 |
/bin、 /usr/bin | 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。 |
/boot | 放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。 |
/dev | 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt |
/etc | 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d |
/home | 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu 表示用户 edu 的家目录 |
/lib、 /usr/lib、 /usr/local/lib | 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助 |
/lost+fount | 系统异常产生错误时,会将一些遗失的片段放置于此目录下 |
/mnt: /media | 光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载 |
/opt | 给主机额外安装软件所摆放的目录。 |
linux 文件颜色含义
文件颜色 | 含义 |
---|---|
蓝色 | 目录 |
绿色 | 可执行文件 |
红色 | 压缩文件 |
浅蓝色 | 链接文件 |
灰色 | 其他文件 |
创建文件
touch index.html # 创建index.html文件(文件内容为空)
mkdir newFolder # 创建newFolder文件夹
rm index.html # 删除index.html文件
rm -r newFolder # -r 表示递归删除文件夹中的内容
rm -rf newFolder # 强制删除,忽略提示信息
mv 源文件路径 新路径 # 将源文件移动/剪切到目标路径下
mv /home/ahua/index.html /home/ahua/ryan
# 将/home/ahua目录下的index.html文件移动到/home/ahua/ryan目录下
cp -r 源文件路径 新路径 # 将源文件复制到目标路径下
cp /home/ahua/index.html /home/ahua/ryan
# 将/home/ahua目录下的index.html文件复制到/home/ahua/ryan目录下
# -r 表示递归拷贝/home/ahua中所有内容(包括ahua文件夹)
scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令,方便多台服务器之间互传数据,需要知道对应服务器的用户名和密码
scp [-r] file_source file_target
scp -r /home/ryan test_node@192.168.1.1:/opt/copy/
# 将/home/ryan 目录以及目录下所有内容复制到用户名为test_node ip地址为192.168.1.1设备上的/opt/copy目录下
# -r 表示递归拷贝/home/ryan中所有内容(包括ryan文件夹)
# 高级用法
scp -r FileName test_node@192.168.1.1:`PWD`
scp -r FileName test_node@192.168.1.1:$PWD
# 将FileName文件复制到test_node服务器上的同名路径下
cat filename
# 在Terminal中显示filename文件的内容
cat -n filename
# 显示文件的全部内容,并附带行号
more filename
# 以分页方式显示文件内容,可以使用回车键翻页,输入"q"退出
less filename
# 以分页方式显示文件内容,可以使用空格键翻页,输入"q"退出
less和more的区别
head -n N filename
# 显示文件的前N行内容(例如,head -n 10 filename 显示文件的前10行)
查看文件尾部的内容,跟随文件的最新更改
tail [-n -f] filename
# filename 必填 表示跟踪的文件路径
# -f 选填 是否持续跟踪
# -n 选填 写几就表示查看尾部多少行,不写默认10行
tail -n 10 ahua.txt
# 显示ahua.txt文件的最后10行内容
echo命令可以用来在命令行输出指定内容
echo "hello ahua"
# hello ahua
echo `pwd`
# ``中包裹的内容将会被作为命令去执行,所以echo `pwd` 结果会返回当前路径
mv [选项] 原文件名 新文件名
mv oldname.txt newname.txt
# 将oldname.txt 重命名为newname.txt 目录也是如此
# 如果目标名称已存在,mv会覆盖它
mv -i oldname.txt newname.txt
# 当路径下有重名文件时-i选项可以交互式询问是否需要覆盖原文件
模式
vim、vi共有三种常用模式:命令模式、输入模式、底行模式
命令模式(Command mode)
用户启动vim时,首先进入的便是命令模式。命令模式可认为是vim的入口,此模式下敲击键盘的字符都会被当做命令,而非在文本中插入字符
# 方位移动 h:光标左移一格 j:光标下移一格 k:光标上移一格 l:光标右移一格 # 行内移动 0:光标移至行首 $:光标移至行尾 ^:光标移到当前行的第一个非空字符 g_:光标移到当前行的最后一个非空字符 b:光标到上一个字的开头 w:光标到下一个字的开头 e:光标移到下一个字的结尾 ge:光标移到上一个字的结尾 fa:移到下一个a出现的位置('F’与之相反) ta:移到下一个a出现位置的前一个位置(‘T’与之相反) # 行间移动 G:光标移至文末 gg:光标移至开头 Ngg或NG:光标移至N行开头 # 语义移动 (:光标移至上一句首 ):光标移至下一句首 {:光标移至段首 }:光标移至段尾 # 屏幕移动 H:将光标移到屏幕的最顶行 M:将光标移到屏幕中间 L:将光标移到屏幕最底行 Ctrl+b:向上翻页 Ctrl+f:向下翻页
y:复制(可与移动命令搭配使用,如yw可复制光标至词尾的内容)
yy:复制一行
Nyy:复制从光标处起的N行内容
yw:复制光标处至词尾的内容
yaw:复制光标所在单词
ya":yank around ",复制整个字符串包括引号
yi":yank inside ",复制引号之间的内容,不包括引号(类似还有yi(、yi[等)
p(小写):在光标后粘贴复制或剪切的内容
P(大写):在光标前粘贴复制或剪切的内容
x:删除光标所在字符(cut)
d:删除(可与移动命令搭配使用)
dd:删除光标所在行
D:从光标处删至行尾(与d0等同)
dw:删除光标至词尾的内容
daw:删除光标所在单词
u:撤销上次命令(undo)
Ctrl+r:恢复撤销的命令(redo)
/str:查找字符串str第一次出现的位置
n:当查找到指定内容后,继续查找下一个
N:查找上一个
*:向后查找当前光标所在单词
#:向前查找当前光标所在单词
fa:向后查找第一个a出现的位置
;重复上一次f查找命令
r:替换光标所在字符
R:此时将进入替换模式,每输入一个字符就会替换光标所在字符,并使光标后移一格,以便继续替换。
s:删除当前字符并插入
cw: 替换从光标所在位置到当前单词结尾的字符
caw:删除光标所在单词并插入
ci":删除“…”之间的内容并插入(类似还有ci(、ci[等)
.:重复上一次修改命令
".:跳转到上次修改所在行
q::查看历史命令
q/:查看搜索历史
插入模式(Insert mode)
此模式下可以正常地编辑文字,与平时使用习惯差别不大
底行模式(Last line mode)
此模式下可以执行保存、退出以及其他的一些功能,按下Shift+:即可进入底行模式
可视模式(visual)
命令模式下输入v即可进入可视模式,此时搭配移动的相关指令即可实现选中功能
可视块模式(visual block)
命令模式下ctrl+v即可进入可视块模式,此时搭配移动相关指令可实现垂直方向的文本选择
一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
标准输入文件(stdin): stdin的文件描述符为0,Unix程序默认从stdin读取数据。
标准输出文件(stdout): stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
标准错误文件(stderr): stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file
> # 将stdout的内容重定向到文件,如果文件已存在则覆盖 >> # 将stdout的内容重定向到文件,如果文件已存在则追加 2> # 将stderr的内容重定向到文件,如果文件已存在则覆盖 # 2 和 > 之间不可以有空格,2> 是一体的时候才表示错误输出 2>> # 将stderr的内容重定向到文件,如果文件已存在则追加 echo "Hello, World!" > output.txt # 覆盖文件 echo "Another line" >> output.txt # 追加到文件 command > file 2>&1 command >> file 2>&1 # 将 stdout 和 stderr 合并后重定向到 file command < file1 >file2 # command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
command > /dev/null 2>&1
# 屏蔽 stdout 和 stderr的输出
用于从标准输入(键盘)或其他输入流中读取用户的输入。它允许用户与脚本或命令行界面进行交互,从而使脚本更加灵活和用户友好。
read命令的基本作用是等待用户输入,并将输入的内容赋值给一个或多个变量。这使得脚本能够根据用户的实时输入采取不同的行为,增加了交互性和动态性。
1、基本命令格式
read命令格式为read [参数][变量名]
#! /bin/bash
read -p "input a number:" num
echo "number is:${num}"
执行结果
2、read变量名使用规则
3、read 参数说明
参数 | 说明 |
---|---|
-a | 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。 |
-p | 后跟 “提示信息”,等待read输入时,输出提示信息 |
-t | 后接秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间 |
-n | 后接数字:read命令只接受指定的字符数,就会执行 |
-s | 隐藏输入的数据,适用于机密信息的输入 |
-d | 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。 |
-e | 在输入的时候可以使用命令补全功能。 |
linux中对权限的划分主要分为两个级别
1、针对用户的权限控制
2、针对用户组的权限控制
文件的权限分为3种,读(r),写(w),执行(x),三个为一组,且均为 rwx 的三个参数的组合,如果没有对应权限就以 - 代替。
下面是Desktop文件夹的权限信息
drwxr-xr-x 2 ahua ahuagroup 4096 Mar 23 03:53 Desktop/
# d表示文件夹
# 第一个rwx 表示文件所属用户具有读写执行的权限
# 第二个r-x表示文件所属用户组的其他用户具有读和执行的权限
# 第三个r-x表示其他用户具有读和执行的权限
# 2 表示硬链接个数,类似于window中的快捷方式
# 4096表示文件大小
# Mar 23 03:53 表示最后一个的更改时间
# 所以这个结果表示ahua用户对Desktop文件夹有读写执行权限,ahuagroup这个用户组里面的用户对Desktop文件夹有读和执行权限,其他的的用户对Desktop文件夹有读和执行权限
第一个字符表示文件类型,linux下文件类型有
文件类型 | 释义 |
---|---|
d | 目录 |
- | 文件 |
l | 链接文档(link file) |
b | 装置文件里面的可供储存的接口设备(可随机存取装置) |
c | 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置) |
linux中拥有最大权限的用户是root,正常登录的都是普通用户,普通用户除了自身的home目录外其他路径下大部分都只有只读和执行权限
系统不仅可以包含不同的用户,还可以包含不同的用户组
创建用户组
groupadd 用户组名
删除用户组
groupdel 用户组名
创建用户
useradd [-g -d] 用户名
# -g 可选 指定用户的组,不指定会默认创建一个和用户同名的用户组
# -d 可选 指定用户HOME路径,不指定HOME路径默认在:/home/用户名
删除用户
userdel [-r] 用户名
# -r 可选 删除用户的HOME路径,不指定默认保留
查看用户所属组
id [用户名]
# 用户名表示要查看的用户,不指定默认查看当前用户所属的用户组
修改用户组
usedmod -aG 用户组 用户名
# 指定用户加入用户组
查看系统所有用户信息
getent passwd
# root:x:0:0:root:/root:/bin/bash
# 结果会展示7种信息,分别是
# 用户名:密码(不会明文展示所以用x代替):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)
查看系统所有用户组信息
getent group
# ahua:x:1000:
# 结果会展示3种信息,分别是
# 用户组名:组认证:用户组ID
su命令用于系统用户切换
su -用户名
# - 可选 有-表示在切换用户之后加载环境变量
# 用户名 可选 表示要切换到的用户,不填默认切换到root用户
# 使用root用户切换到任何用户都不需要密码,普通用户切换到其他用户,如root用户,需要输入密码
exit
# 回退到上一个用户
sudo 可以为普通命令赋权,临时以root用户身份执行,如通过sudo su
可以切换到root用户,而不需要输入密码
但并不是所有用户都可以使用sudo,普通用户使用sudo需要为其配置sudo认证
# 为普通用户配置sudo认证
# 1、切换到root用户
su -root
# 2、执行visudo(会打开/etc/sudoes)
visudo
# 3、给用户ahua添加sudo权限,同时不需要输入密码
ahua ALL= (ALL) NOPASSWD:ALL
更改文件权限
sudo chmod [-R] mode 路径(文件夹或文件)
# -R 可选 表示对目前目录下的所有文件和子目录以递归的方式逐个变更权限
# mode 必选用于设置该文件拥有的权限
sudo chmod u=rwx,g=rx,o=x index.html
# 将index.html文件权限设置为所属用户可以读写执行,所属用户组用户可以读和执行,其他用户可以执行
sudo chmod -R 751 index.html
# 八进制写法
# 将index.html文件权限设置为所属用户可以读写执行,所属用户组用户可以读和执行,其他用户可以执行
具体用户和权限信息可以看这里有详细介绍 https://www.runoob.com/linux/linux-comm-chmod.html
更改文件所有者和所属用户组
chown [-R] [用户]:[用户组] 文件路径
# -R 可选 是否对文件夹中所以文件执行该操作
# : 用户分隔用户和用户组
chown root:root /tmp/tmp1
# 把tmp1的所有者改为root,用户组改成
用于在指定目录下搜索文件,并返回满足条件的文件列表
find+[路径]+[参数] find /home/ahua -name index.txt # 在/home/ahua 目录下查找文件名为index.txt的文件 find /home -user root # 在/home目录下查找用户为root的文件 find /home -group nvidia # 在/home目录下查找用户组为nvidia的文件 find /home -user root -a -group nvidia # 在/home目录下查找用户组为nvidia用户为root的文件 find /home -name ’ahua’ -o -name ryan # 在home目录下查找名称为ahua或者名称为ryan的文件 find /home -not -name ahua # 在/home目录下查找名称不为ahua的文件 find /home -size 20k # 在/home目录下查找大小为20k的文件 find /home -type f # 在/home目录下查找所有普通文件 find /hmoe -perm 777 # 在home目录下查找文件权限为777的文件 find /ahua -type f -name "*.txt" -delete #删除home目录下所有后缀为.txt的普通文件 find / -name *xxx*.c # 模糊查找下这个文件 -name #文件名 -not #非,取反 -a #并且关系 -o #或者关系 -group #文件所有组 -user #文件所有人 -size #文件大小 b —— 块(512字节) c —— 字节 w —— 字(2字节) k —— 千字节 M —— 兆字节 G —— 吉字节 -type #文件类型 f #普通文件 d #目录 b #块设备 s #套接字 c #字符设备 l #链接 p #管道 -perm #文件权限 -perm 444 #查找文件权限 -perm -444 # -表示并且;查找文件权限中u位有r权限,并且g位有r权限,并且o位有r权限的文件 -perm /444 # /表示或者;查找文件权限中u位有r权限,或者g位有r权限,或者o位有r权限的文件 -perm /777 # 777=rwx rwx rwx 即9个条件中满足任意一个即可
which 命令用于定位可执行文件的位置。它会搜索系统的路径环境变量中是否存在指定的可执行文件,并返回该文件所在的完整路径。
which python # 在系统的路径环境变量中搜索python可执行文件,并返回其完整路径
which -a python # 如果系统中存在多个同名的可执行文件,which命令会返回第一个搜索到的文件路径。-a参数会返回所有匹配的可执行文件路径
用于查找二进制、源代码和帮助文档等文件,它会在特定的目录中进行搜索,并返回相应文件的位置
whereis python # 上述命令会在默认的二进制文件搜索路径中查找python,并返回该文件所在的位置
which
命令用于定位可执行文件,适合查找系统中某个特定命令的位置。命令简单易用,但只能定位可执行文件
whereis
命令用于查找二进制、源代码和帮助文档等文件,可用于查找特定文件类型所在的位置。命令功能更丰富,能够查找多种类型的文件,但搜索范围有限
find
命令用于在指定目录下搜索文件,适用于查找满足条件的文件。命令灵活强大,可以根据多种条件进行搜索,但速度较慢
grep命令可以通过关键字进行查找
grep [-n] 关键字 路径
-n 可选 显示结果中匹配的行号
关键字 必填 表示过滤的关键字,带有空格或者特殊符号需要用""
文件路径 必填 表示需要过滤的路径
wc命令可以统计文件的行数,单词数量等
wc [-c -m -l -w] 文件路径
-c 可选 统计bytes数量
-m 可选 统计字符数量
-l 可选 统计行数
-w 可选 统计单词数量
文件路径 必选 被统计的文件
管道符的作用是将左边命令的结果作为右边的输入
# 现在有个文件名为ahua.txt 内容如下
name:ryan
age:18
grep name ahua.txt
# name:ahua
cat ahua.txt |grep name
# name:ahua
# 将左边cat ahua.txt的结果作为grep的输入 相当于 grep name ahua.txt
# 管道符左边的命令没有任何限制 ls、cat、wc等都可以作为管道符的左边的输入
cat ahua.txt |grep wc -l
# 2
目前主流的压缩包格式主要有以下几种
zip:Windows、MacOS、Liinux常用
7zip:Windows常用
rar:Linux常用
tar:Linux、MacOS常用
gzip:Linux、MacOS常用
tar可以将Linux下多个文件或者文件夹打包成一个文件,并没有太大文件体积的变化,只是简单的封装,打包后的文件支持多种压缩格式
# 独立命令,tar命令时必须使用一个
-c: 压缩模式,用于创建压缩文件
-x:解压模式,用于解开压缩文件
-t:查看内容
-r:向tar包末尾追加文件
-u:更新原tar包中的文件
# 根据压缩或者解压等过程的需要使用
-z:使用gzip进行压缩或者解压,不使用就是普通的tar包
-j:通过 xz压缩或解压。
-Z:有compress属性的
-v:显示所有过程
-C:选择解压后的目的地
-O:将文件解开到标准输出
# 必选命令
-f: 这是最后一个参数,指定打包后的文件名
示例
tar -xvf FileName.tar # 解包
tar -cvf FileName.tar DirName # 将DirName打包成FileName.tar
tar -cvf fileName.tar *.txt # 将当前目录下所有.txt文件打包成fileName.tar文件
tar -rf fileName.tar file.txt # 向fileName.tar包中添加file.txt
tar -tf fileName.tar # 列出fileName包中的所有文件
tar -uf fileName.tar file.txt # 更新包中的file.txt文件
使用gzip算法将文件压缩到一个文件内,可以极大的减小压缩后的体积
gzip格式压缩
gzip -d FileName.gz # 压缩
gunzip FileName.gz # 解压
tar打包后压缩
tar -czvf FileName.tar.gz *.jpg # 将所有 .jpg 的文件打成一个 tar 包,并用 gzip 压缩,包名为 FileName.tar.gz
tar -zxvf FileName.tar.gz # 将上面产生的包解开
bz2格式压缩
bzip2 -d FileName.bz2 # 压缩
bunzip2 FileName.bz2 # 解压
tar打包后压缩
tar -cjvf FileName.tar.bz2 *.jpg # 将所有 .jpg 的文件打成一个 tar 包,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,包名为 FileName.tar.bz2
tar -jxvf FileName.tar.bz2 # 将上面产生的包解开
unzip FileName.zip # 解压缩
zip FileName.zip DirName # 将DirName压缩成FileName.zip
zip -r FolderName.zip FolderName # 将FolderNmae目录下所有文件打包压缩成FolderName.zip
rar a fileName *.jpg # 将所有 .jpg 的文件压缩成一个 rar 包,名为 all.rar .rar 扩展名将自动附加到包名后
rar x FileName.rar # 将 FileName.rar 中的所有文件解压出来
ip配置
上图表示该设备主网卡名字叫ens33,inet表示设备的ip地址;lo表示本地回环的网卡;
端口是设备与外界通讯的出入口,端口可以分为物理端口和虚拟端口
物理端口: 常见的有USB接口,RJ45网口,HDMI端口等
虚拟端口: 指计算机内部的端口,通常是不可见的,操作系统用来和外部交互使用
虽然计算机之间的通信是通过ip地址来进行识别的,但是计算机内可能运行了很多多程序,如果两个计算机之间的程序通信,除了需要需要IP地址来找到对方主机,还需要一个端口来识别具体的程序
Linux中共支持65536个端口,他们分为3类
公共端口: 1~1023,通常为系统内置程序使用,如ssh的22端口,https服务的443端口
注册端口: 1024~49151,一般随意使用,用来绑定一些程序和服务
动态端口: 49152~65535,通常不会和程序绑定,当程序访问外部网络时临时使用
netstat -ltunp -a:查看所有连接 -c:持续列出网络状态 -e:显示网络其他相关信息 -g:显示多重广播功能群组组员名单。 -i:显示网络界面信息表单 -l:显示监控中的服务器的SOCKET -n:直接打印连接的IP地址与端口信息 -p:显示正在使用SOCKET的程序识别码和程序名称 -r:显示路由信息 -s:显示网络工作信息统计表 -t:显示TCP传输协议的连线状况 -u:显示UDP传输协议的连线状况 -v:显示指令执行过程 -w:显示RAW传输协议的连线状况 -F:显示FIB -C:显示路由器配置的快取信息 -A:列出该网络类型连线中的相关地址 -N:显示网络硬件外围设备的符号连接名称 -M:显示伪装的网络连线
检查主机到指定的网络服务器是否联通
ping [-c num] ip/主机名
# -c 可选 后跟数字表示指定命令的执行次数,不选默认无限次数执行
ping www.baidu.com
# 虽然ping命令中写的是百度的域名但是实际ping的是ip地址
非交互式的文件下载工具,联网后可以在命令行中进行下载文件
wget [-b] url
# -b 可选 后台下载,不会在终端展示下载过程,会将下载日志记录到当前工作目录的wget-log文件中
# url 必选 下载链接
tail -f wget-log
# 查看下载进度
可以用来发送http网络请求,用于下载文件,获取信息等
通过curl向某个网站发送请求类似通过浏览器打开一个网页,都是发送请求,只不过浏览器会将收到的请求渲染成可视化的页面,而curl之后请求到源码,不进行展示
curl cip.cc
# 向cip.cc发起网络请求
# cip.cc网站会返回主机的ip地址
curl [-O] url
# -O 可选 用于下载文件,当url是下载链接是使用-O来保存文件
磁盘空间占用
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
df [参数] [目录或文件名]
df -h # 将系统内所有的文件系统容量结果以易读的容量格式显示出来
df / 找出系统中根目录所在磁盘和该硬盘内的相关信息
文件和目录的磁盘空间占用
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
du # 列出当前目录下的所有文件夹容量
磁盘分区、格式化
fdisk [-l] [装置名称]
# fdisk -l 表示把整个系统内能够搜寻到的装置的分区均列出来。
mkfs [-t 文件系统格式] 装置文件名
mkfs -t ext3 /dev/hdc6 # 将分区 /dev/hdc6格式化为 ext3 文件系统
磁盘挂载、卸除
mount /mnt/hdc6 /ahua # 将/ahua 挂载到 /mnt/hdc6 上面
umount /dev/hdc6
程序在运行中是被操作系统管理的,每个程序运行时操作系统会将其注册为一个进程,并为其分配一个独有的进程id(进程号)
服务管理
Linux中很多内置或者一些第三方软件均支持使用systemctl命令来进行启动、暂停或者开机自启的控制,被systemctl管理的软件一般被称为服务
# 1、启动服务
systemctl start 服务名
# 2、关闭服务
systemctl stop 服务名
# 3、查看服务状态
systemctl status 服务名
# 4、设置服务在系统启动时自动运行
systemctl enable 服务名
# 5、设置服务在系统启动时不会运行
systemctl disable 服务名
查看进程信息
ps
# -e选项 显示系统所有进程,不仅仅是当前终端会话的进程
# -f选项 使用全格式显示进程信息,包括父进程ID(PPID)、进程状态、CPU使用率(%CPU)、内存使用率(%MEM)等
# -l选项 显示长格式的进程信息,例如进程命令行、进程状态(S)、进程的会话ID(SID)等
# -u选项 显示与指定用户相关的进程信息,可以通过指定用户名来限制显示的进程列表。
# -p选项 显示指定进程ID的进程信息
# -o选项 自定义输出格式,自定义显示的列和排序方式
常用ps命令
命令 | 作用 |
---|---|
ps -p 1234 | 查看进程号为1234的进程信息 |
ps -u ahua | 查看用户ahua的所有进程信息 |
ps --sort=-%cpu | 按照cpu递减的顺序显示进程信息 |
ps -ef | 查看全格式的全部进程 |
ps -aux | 查看全部用户的进程 |
ps -ef --forest | 以树形结构显示进程和它们的父进程 |
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | 显示进程ID、父进程ID、命令行、内存使用率和CPU使用率,并按内存使用率降序排序 |
结果解释:
名称 | 含义 |
---|---|
UID | 表示进程的所有者用户,表示这些进程都是以root用户身份运行 |
PID | 用于唯一标识每个正在运行的进程 |
PPID | 表示进程的父进程 |
C | 进程的CPU占用率,(百分比) |
STIME | 这是进程的启动时间 |
TTY | 启动此进程的终端信息,?表示非终端启动 |
TIME | 进程的运行时间 |
CMD | 是进程的启动路径或者启动命令 |
关闭进程
kill 进程ip
# 会先向进程发送信号要求其关闭,具体关闭情况看进程的自身处理逻辑
kill -9 进程id
# 强制关闭进程
查看可执行程序依赖的动态库
ldd 可执行程序
E: Could not get lock /var/lib/apt/lists/lock. It is held by process 4452 (apt-get)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to lock directory /var/lib/apt/lists/
sudo rm /var/lib/apt/lists/lock
查看时间
date [+格式化字符串]
# 格式化字符串 可选 通过特定的字符串标记来展示日期
date +%Y-%m-%d-%H-%M-%S
# 2024-06-16-10-31-03
主要的格式化字符串标记有
字符串标记 | 含义 | 示例 |
---|---|---|
%Y | 年 | 2024 |
%y | 年份后两位数字 | 00~99 |
%m | 月份 | 01~12 |
%d | 日 | 01~31 |
%H | 小时 | 00~23 |
%M | 分钟 | 00~59 |
%S | 秒 | 00~59 |
%s | 自1970-01-01 00::00:00 UTC至今的秒数 | 1718559003 |
软连接类似windows中的快捷方式,在本体不变的情况下创建一个快捷方式,这个快捷方式指向原文件/原文件夹
ln -s target source
# 将路径/usr/local下的openssl链接到/usr/bin下
ln -s /usr/local/openssl /usr/bin
linux操作系统中的命令实际上就是一个个可执行程序,如cd命令的可执行程序就是/usr/bin/cd
定义:
环境变量是在操作系统运行的时候,记录一些关键信息用来辅助系统运行,
linux中通过env
指令可以查看当前系统中记录的环境变量,环境变量是KeyValue形结构
设置环境变量
1、临时生效
# export 变量名=变量值
export PATHNAME=ahua
# 获取变量值
echo $PATHNAME
# ahua
2、永久生效
# 1、在/etc/profile文件中添加变量【对所有用户生效(永久的)】
vim /etc/profile
# source profile 文件后生效
source /etc/profile
# 2、在用户目录下的~/.bashrc文件中增加变量【对单一用户生效(永久的)】
~/.bash_profile
# source .bashrc 文件后生效
source ~/.bashrc
自定义PATH
环境变量PATH中记录了系统执行命令的搜索路径,用户也可以自己增添
export PATH=$PATH:/home/ahua/ryan/test_my_env
# 定义一个环境变量名叫PATH,他的值是之前的PATH结果后面加上/home/ahua/ryan/test_my_env目录
top命令可以查看系统资源的CPU、内存等资源占用情况,间隔5s刷新一次,类似Windows的任务管理器
第一行:
内容 | 解释 |
---|---|
top | 命令名称 |
05:21:12 | 当前系统时间 |
up | 系统启动至今运行时间 |
1 user | 1个用户登录 |
load average | 1min内、5min内、15min内平均负载 |
第二行:
内容 | 解释 |
---|---|
Task | 当前系统中有282个进程 |
1 running | 有一个进程正在运行 |
281 sleeping | 有282个进程正在睡眠 |
0 stoped | 0个进程停止工作 |
0 zombie | 0个僵尸进程 |
第三行:
内容 | 解释 |
---|---|
%Cpu(s) | CPU使用量率 |
us | 用户进程cpu使用率 |
sys | 系统进程CPU使用率 |
ni | 高优先级进程占用时间比 |
id | CPU空闲率 |
wa | IO等待CPU占用率 |
hi | CPU硬件中断率 |
si | CPU软件中断率 |
st | 强制等待占用CPU率 |
第四、五行:
内容 | 解释 |
---|---|
Kib Mem | 物理内存 |
Total | 总量 |
free | 空闲 |
used | 使用 |
buffer/cache | buffer和cache占用 |
KibSwap | 虚拟内存(交换空间) |
内容 | 含义 |
---|---|
PID | 进程id |
USER | 所属用户 |
PR | 进程优先级 |
NI | 负值表示优先级高,正值表示优先级低 |
VIRT | 进程使用的虚拟内存,单位KB |
RES | 进程使用的物理内存,单位KB |
S | 进程状态(S休眠、R运行、Z僵尸状态、N负数优先级、I空闲状态) |
%CPU | 进程CPU占用率 |
%MEM | 进程内存占用率 |
TIME+ | 进程使用CPU时间总计,单位10ms |
top命令支持多个参数可选
参数 | 作用 | 示例 |
---|---|---|
-p | 只显示某个进程的信息 | top -p 39283 |
-d | 设置刷新时间,单位s | top -d 1 |
-c | 展示进程产生的完整命令(默认展示进程名) | top -c |
-n | 指定刷新次数,刷新指定次数后退出 | top -n 3 |
-b | 以非交互式运行,一般配合-n来将指定几次的top刷新结果重定向到文件中 | top -b -n 10> top.log |
-i | 不显示无用或者闲置的进程 | top -i |
-u | 展示指定用户启动的进程 | top -u root |
按键 | 作用 |
---|---|
h键 | 显示帮助页面 |
c键 | 展示进程产生的完整命令(默认展示进程名) |
f键 | 选择需要展示的项目,空格键切换选中/取消,q键退出 |
M键 | 根据内存使用大小排序 |
m键 | 切换进程显示内存信息 |
P键 | 根据CPU占用大小排序 |
T键 | 根据启动时长进行排序 |
E键 | 切换顶部内存显示单位 |
e键 | 切换进程信息内存显示单位 |
l键 | 切换平均负载和启动时间信息 |
i键 | 不显示闲置或者无用进程 |
t键 | 切换显示cpu状态信息 |
常见软件安装包类型
Windows:.exe
Mac:.pkg
Linux(CentOS):.rpm
Linux(Ubantu):.deb
1. cd 程序源码文件夹
2. sudo ./configure # sudo ./configure --prefix=/usr 配置安装目录
3. sudo make
4. sudo make install
2中的注释表示将该软件安装在 /usr 下面,其执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)
1. cd 程序源码目录
2. sudo make uninstall
1. 更新源安装包信息
sudo apt-get update
2. 升级软件包到最新版本
sudo apt-get upgrade
3. 安装、卸载、搜索软件
sudo apt-get [-y] install|remove|search [-purge] 软件名
# -y 可选 是否自动确认,选择后无需手动确认直接安装
# -purge 可选 是否删除该软件遗留在系统中的配置文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。