admin管理员组文章数量:1567533
文章目录
- 操作系统
- 1、桌面操作系统
- 2、服务器操作系统
- 3、嵌入式操作系统(Linux)
- 4、移动设备操作系统(iOS、Android(基于Linux))
- 一、虚拟机
- 二、Linux操作系统的发展史
- 三、常用Linux命令
- 1、查看目录内容
- ③ls: 查看当前文件夹下的内容
- ls通配符的使用:
- ④pwd:
- 2、切换目录:cd [目录名]
- 3、创建和删除操作
- (1)touch [文件名]
- (2)mkdir [目录名]
- (3)rm
- 4、拷贝和移动文件
- (1)`tree [目录名]`
- (2)`cp [选项] 源文件 目标文件`
- (3)`mv 源文件 目标文件`
- (4)dd
- 5、查看文件内容
- (1)查阅文件
- `cat 文件名`
- `more 文件名`
- `less 文件名`
- (2)`find`
- (3)`grep 搜索文本 文件名`
- (4)head
- (5)tail
- (6)tr
- (7)wc命令
- 6、其他
- (1)`echo 内容`
- (2)重定向`>`和`>>`
- (3)管道`|`
- (4)clear
- (5)date
- (6)wget
- (7)ps
- (8)top命令
- (9)pidof
- (10)kill、ctrl+c、ctrl+z、halt、shutdown、reboot、init
- (11)&
- (12)uname
- (13)uptime
- (14)free
- (15)who
- (16)vmstat
- (17)alias
- (18)sar
- 四、Linux终端命令格式
- 1、终端命令格式
- 2、查阅命令帮助信息(两种方式)
- (1) --help
- (2 man
- 3、中止终端程序的执行`ctrl c`
- 五、远程管理常用命令
- 1、关机 / 重启
- `shutdown 选项 时间`
- `reboot` 重启系统
- `poweroff` 关闭系统
- 2、查看或配置网卡信息
- (1)`ifconfig`
- (2)ping
- (3)tcpdump
- 3、远程登录和复制文件
- (1)ssh
- 域名
- 端口号
- SSH客户端的简单使用
- (2)scp
- shell
- python文件的另一种运行方式:Linux上的Shebang符号(即`#!`)
- 使用Shebang的步骤
- chmod 改变权限
- umask
- chown 改变所有者
- chgrp 改变所属组
- `#`注释信息
- shell解释器的内设变量——接收用户输入
- 测试语句
- if
- for
- while
- case
- MAC
**表示次方
1.01 ** 365=37.78343433288728
1.02 ** 365=1377.4082919660768
1.01 ** 3 * 0.99 ** 2=1.0097980101000001
#学习不要三天打鱼两天晒网。
操作系统
1、桌面操作系统
Windows用户群体大,安全性稳定性不太好;
macOS适合开发人员;
Linux应用软件少
2、服务器操作系统
Linux安全稳定免费,市场占有率高;
Windows Server付费,市场占有率低 服务器像个大箱子
3、嵌入式操作系统(Linux)
4、移动设备操作系统(iOS、Android(基于Linux))
没有安装操作系统的电脑称为裸机。如果想在裸机上运行所编写的程序,必须用机器语言(即0、1)书写程序。操作系统可以方便系统调用。
一、虚拟机
通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在Windows安装虚拟机,然后在虚拟机中安装新的操作系统。不会对现有系统造成破坏,能够在现有系统与虚拟镜像之间灵活切换。
二、Linux操作系统的发展史
Unix(1965年之前,一个比房间还大的主机最多只能连接30个终端。1971年Ken thompson写了Unix操作系统,1972年Dennis设计了C语言);
Minix(1979年限制了Unix开源);
Linux(1991年。内核版本(kernel,系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸机设备与应用程序间的抽象层。Linux内核版本又分为稳定版和开发版,两个版本相互关联)。目前Linux的发行版已经超过了100多个,而为人们所熟知的Ubuntu(乌班图)就是众多Linux发行版的其中之一。没有盘的概念,/表示根目录;/home表示系统默认的用户家目录(最重要,所有的操作都要在home里完成);/etc保存配置文件;/bin保存可在执行的二进制文件。Ubuntu中同一时间内激活的窗口只能有一个。
单用户操作系统:一台计算机在同一时间可以由单个用户同时使用。windows前身是单用户。
多用户操作系统:一台计算机在同一时间可以由多个用户同时使用。linux针对多用户。)
linux基础:让大家对Ubyntu的使用从陌生到灵活操作
python基础:涵盖python基础知识,让大家掌握基础的编程能力
python面向对象:介绍python的面向对象开发,为开发大型项目做好铺垫和准备。
项目实战:应用基础班学习过的知识,编程实战,完成第一个python项目
在职场中,大量的服务器维护工作都是在远程通过SSH客户端完成的,并没有图形界面,所有维护工作都需要通过命令完成。作为后端程序员,必须要掌握一些Linux常用 终端命令。常用的linux命令只有十多个。
不用死记硬背,用的多了自然就记住了。
不要尝试一次学会所有的命令,不常用的命令临时遇到临时百度就可以。
三、常用Linux命令
小技巧:
ctrl shift =(同时按)
放大终端窗口的字体显示
ctrl -(同时按)
缩小终端窗口的字体显示
- 执行Linux系统命令时,添加参数的目的是什么?
答:为了让Linux系统命令能够更贴合用户的实际需求进行工作。 - Linux系统命令、命令参数及命令对象之间,普遍应该使用什么来间隔?
答:应该使用一个或多个空格进行间隔。
1、查看目录内容
①自动补全
在敲出文件
/目录
/命令
的前几个字母后,按下Tab
键
如果输入的没有歧义,系统会自动补全。如果还存在其他
文件
/目录
/命令
,再按一下Tab
键,系统会提示 可能存在的命令。
②曾经使用过的命令
按
上
/下
光标键可以在曾经使用过的命令之间来回切换
如果想要退出选择,并且不想执行当前选中的命令,可以按ctrl c
Linux下文件和目录的特点
Linux文件 或 目录 名称 最长可以有
256
个字符
以.
开头的文件为隐藏文件,需要用-a
参数才能显示
.
代表当前目录。cd .仍为当前目录,不会切换目录
..
代表上一级目录。cd ..
会切换到上级目录
③ls: 查看当前文件夹下的内容
ls
命令是list的缩写,显示当前目录中的文件名字。- 缺省下ls用来
打印出当前目录的清单
。 - 如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。
- 缺省下ls用来
ls -a
:显示指定目录下所有子目录与文件,包括隐藏文件
ls -l
:以列表方式显示文件的详细信息。
文件夹显示为蓝色字体,第一列以
d
标识;
文件显示为白色字体,第一列以-
标识。
ls -lh
:ls -h
不能单独使用配合, -l
以人性化的方式显示文件大小。
ls -lha
:显示所有文件(包括隐藏文件)及大小
计算机中文件大小的标识方式
ls通配符的使用:
用于快速定位到指定文件
*
:代表 任意个数 个字符
找到以1开头的文件
ls 1*
找到以1结尾的文件ls *1*
?
:代表 任意一个 字符
假设文件夹中,有文件“111.txt”“121.txt”“11.txt”。
输入1?1.txt
只会输出111.txt、121.txt
。
输入1*1.txt
只会输出111.txt、121.txt、11.txt
。
[]
:标识可以匹配字符组中的任意一个
[abc]
:匹配a、b、c中的任意一个
[a-f]
:匹配从a到f范围内的任意一个字符
ls [12345]23.txt
可以找出文件123.txt、223.txt、323.txt、423.txt、523.txt
ls [12345]
与ls [1-5]
效果一样
一些题目
- 当前目录下有a和b两个文件,执行命令“
ls>c
”,请问文件c里面的内容是什么?abc
任何命令在执行时都会打开三个文件描述符:标准输入,标准输出,标准错误输出。
ls > c
将标准输出重定向到文件c,在ls命令执行时,先打开三个文件描述符,因此,先创建c文件,再执行ls的具体程序。 - Linux执行ls,会引起哪些系统调用(
read
、execve
、fork
)shell命令执行机制就是 fork+exec 执行命令
Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。
而ls会执行read
④pwd:
查看当前所在文件夹:第一个 / 表示“根目录”, 第二个 home/ 表示“家目录”,python表示当前所处位置:
2、切换目录:cd [目录名]
cd(change diretory)。Linux是区分大小写的。如果想跳转到Desktop目录,则:
可以看出,目前所处位置是:第一个 / 表示“根目录”, 第二个 /home 表示“家目录”,第三个 /python 表示文件夹, Desktop 表示当前所处位置。
命令 | 含义 |
---|---|
cd 或cd~ | 切换到当前用户的主目录(家目录)(/home/用户目录) |
cd. | 保持在当前目录不变 |
cd.. | 切换到上级目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
相对路径:在输入路径时,最前面不是/
或者~
,表示相对 当前目录 所在的目录位置
绝对路径:在输入路径时,最前面是/
或者~
,表示从 根目录/家目录 开始的具体目录位置
3、创建和删除操作
linux 创建文件的命令有(touch
、cat
、vi/vim
、>
)
(1)touch [文件名]
巧记方法:摸一摸(touch),软件就来了
创建文件 或 修改文件时间
如果文件 不存在 ,可以创建一个空白文件
如果文件 已经存在 ,可以修改文件的末次修改日期
创建文件:
(2)mkdir [目录名]
创建一个新目录(不能与当前目录中 已有的目录或文件 同名):
-p
:可以递归创建目录。如:mkdir -p a1/b1/c1/d1
在使用mkdir命令创建有嵌套关系的目录时,应该加上什么参数呢?
答:应该加上-p
递归迭代参数,从而自动化创建有嵌套关系的目录。
(3)rm
删除指定的文件名:rm [文件名]
如果删除 不存在的文件 ,就会报错:“没有那个文件或目录”
如果删除 目录,会报错:“是一个目录”
rm -f
:强制删除,忽略不存在的文件,无需提示
rm -r
:递归地删除目录下的内容, 删除文件夹 时必须加此参数
- 在使用rm命令删除文件或目录时,可使用哪个参数来避免二次确认呢?
答:可使用**-f**参数,这样即可无需二次确认。 - 批量删除当前目录下后缀名为.c的文件。如a.c、b.c。
rm *.c
、find . -name "*.c" -maxdepth 1 | xargs rm
。
4、拷贝和移动文件
(1)tree [目录名]
以 树状图 列出文件目录结构。
-d 只显示 目录,不显示 目录下的文件。
在UNIX系统中,目录结构采用(带链接树形目录结构
)。
(2)cp [选项] 源文件 目标文件
复制(copy)文件 或 目录 到 另一个 文件 或 目录。
文件file1复制成文件file2命令如下:
cp file1 file2
cp -f
:已经存在的目标文件会直接覆盖,不会提示。
cp -i
:覆盖文件前提示。
cp -r
:若 源文件 是 目录文件,将递归复制该目录下的 所有子目录和文件。 目标文件 必须为 目录名。
在Linux系统中,复制操作具体分为3种情况:
- 如果目标文件是目录,则会把源文件复制到该目录中;
- 如果目标文件也是普通文件,则会询问是否要覆盖它;
- 如果目标文件不存在,则执行正常的复制操作。
(3)mv 源文件 目标文件
移动(move)文件 或 目录 ,重命名 文件 或 目录。
如果 源文件 和 目标文件 是 同一个目录下的 文件 或 目录,则:
当 目标文件存在时,执行mv命令可以实现 源文件 替换 目标文件 的效果;
当 目标文件 不存在时,执行mv命令之后可以实现将 源文件 重命名 的效果。
mv -i
:覆盖文件前提示
(4)dd
dd命令 : 作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
参数:if 输入文件(或设备名称) of 输出文件(或设备名称)
将文件file1拷贝到文件file2中命令如下: dd if=file1 of=file2
5、查看文件内容
(1)查阅文件
linux 系统可以用来查阅全部文件的三种命令: cat 、 more 、 less
cat 文件名
concatenate。查看文件内容、创建文件、文件合并、追加文件内容 等功能。
会一次显示所有的内容,适合 查看内容较少 的文本文件。
巧记:小猫咪给人一种娇小、可爱的感觉。小猫咪不适合查看大文件。
cat -b
:对 非空 输出行编号。等价于nl
命令。
cat -n
:对输出的 所有 行 编号(1 2 3 …)
more
命令会在最下面使用百分比的形式
来提示您已经阅读了多少内容。
1 )一次显示整个文件: $ cat filename
2 )从键盘创建
一个文件: $ cat>
filename
3 )将几个文件合并
为一个文件: $ catfile1 file2 > file3
4 )把 f1.txt 复制到 f2.txt的命令:
-cat f1.txt > f2.txt
-cp f1.txt f2.txt
-cat < file1 >file2
-dd if=file1 of=file2
-cat file1 | cat >file2
5 )把文件 file1 和 file2 连在一起,然后输出到屏幕上:cat -n file1 file2
Linux下通过哪个命令查看中断:
cat /proc/interrupts
more 文件名
more 命令 :可以让屏幕在显示满一屏幕时,此时可按空格健
继续显示下一个画面,或按 Q键
停止显示。每次只显示一页内容,适合于 查看内容较多 的文本文件。
more命令是早期UNIX中的文本查看程序,只能用空格键向前翻页,或回车一行一行向前查看
空格键
:显示手册页的 下一屏
Enter键
:一次滚动手册页的 一行
b
:回滚一屏
f
:前滚一屏
q
:退出
/word
:搜索 word 字符串
less 文件名
less 命令 :可以分页显示文件
。less是more的升级版,名字来自“less is more”,less支持上下键卷动屏幕
,当结束浏览时,只要在 less 命令的提示符“ : ”下按 Q 键即可。
- 例题:若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用
less
命令。 - less相比于more,优点在于能向前浏览
(2)find
find查找文件
-
下列哪个命令能查找当前目录一个月(30天)以前大于 100M 的日志文件(.log)并删除(
find . -name "*.log" -mtime +30 -type f -size +100M | xargs rm -rf {};
)find 命令用于
查找文件
:
. 在当前目录查找
-name
指定文件名,*.log
表示后缀名为.log
,*
是通配符,表示匹配任意字符串
-mtime
指定修改时间(以天为单位),+xx
表示修改时间大于 xx 天
,-xx
表示修改时间小于 xx 天
-type
是指定文件类型,b
表示块设备文件,d
表示目录,c
表示字符设备文件,p
表示管道文件,l
表示符号链接文件,f
表示普通文件
-size
指定文件大小,+xx
表示文件大小大于 xx
,-xx
表示文件大小小于 xx
xargs
把前面的返回值作为参数
传递给其后面的命令,通常配合管道使用。 -
find . -newer file1 ! ( -newer file2 ) 该命令的意思是(
查找更改时间比文件 file1 新但比文件 file2 旧的文件
)-newer file
表示查找修改比 file 文件更新的文件,! 表示取反
(3)grep 搜索文本 文件名
搜索文本文件内容
-n
:显示匹配行及行号
-v
:显示不包含匹配文本的所有行(相当于求反)。-vn
显示行号。
-i
:忽略大小写。-in
显示行号。
^a
:行首,搜寻以 a 开头的行。
a$
:行尾,搜寻以 a 结束的行。
-n
、-v
这两个参数几乎能完成日后80%的工作需要。
-
Linux系统中在给定的一个或多个文件中
查找与设定条件相符字符串
的命令为?grep
。 -
在某特定文件夹内查找内容含有"abc"的文件,选出可以实现的?
grep "abc" *
-
使用grep命令对某个文件进行关键词搜索时,若想要进行文件内容反选,应使用什么参数?
答:可使用-v
参数来进行匹配内容的反向选择,即显示出不包含某个关键词的行。 -
在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?
grep -E ^a try_grep
grep:
-E:表示使用扩展的正则表达式
^:匹配正则表达式的开始行
$: 匹配正则表达式的结束行 -
Linux命令行下如何查找列出/usr/local这个目录以及子目录下所有包含字符mrtg的文件?
grep -Rn "mrtg" /usr/local
。- grep加
-R
或-r
表示递归查询子目录。 - 不加-n也可以。
-n
表示输出’mrtg’所在行。
- grep加
(4)head
用于查看纯文本文档的前N行,格式为head [选项] [文件]
。
只想查看文本中前20行的内容:
head -n 20 文件名
(5)tail
用于查看纯文本文档的后N行或持续刷新
内容。格式为tail [选项] [文件]
。
查看文本内容的最后20行:
tail -n 20 文件名
- 为了查看不断更新的日志文件,可以使用的指令是(
tail
) - tail用于查看档案的结尾,-f 参数是follow的意思,当文件增长时,输出后续添加的数据。
(6)tr
用于替换文本文件中的字符,格式为tr [原始字符] [目标字符]
。
可以先使用cat命令读取待处理的文本,然后通过管道符(详见第3章)把这些文本内容传递给tr命令进行替换操作即可:
cat 文件名 | tr [a-z] [A-Z]
:把文件中的小写字母替换成大写字母。
(7)wc命令
用于统计指定文本的行数、字数、字节数,格式为wc [参数]文本
。
巧记:上厕所有点无聊,那就统计一下文本的行数、字数、字节数吧!(是有多无聊😅)
6、其他
(1)echo 内容
会在终端中显示参数指定的文字,通常与 重定向 联合使用。
例如:
在终端中输入echo Yilia
输出:Yilia
例如:
在终端中输入echo Yilia > 文件名
;cat 文件名
输出:Yilia
请写出用echo命令把SHELL变量值输出到屏幕终端的命令。
答:echo $SHELL
。
(2)重定向>
和>>
Linux允许将命令执行结果 重定向 到一个 文件;
将本应显示在 终端上的内容 输出 / 追加 到 指定文件中。
>
:表示 输出,会覆盖文件原有的内容。如:echo "123" > test.txt
>>
:表示 追加,会将内容追加到已有文件的末尾。如:echo "123" >> text.txt
<
将文件重定向到命令:wc -l < 文件名
巧记:看重定向的方向,就看尖括号的尖尖在哪边。在左边<
就表示重定向到左边的参数,在右边>
就表示重定向d到右边的文件。
>!
输出重定向到一个文件或设备 强制覆盖原来的文件
例题:
- 在 RHEL5 系统中,小王希望将他执行 ls 命令的输出结果保存在当前目录下文件
output.ls
中,以供日后进行分析和使用,但要求不覆盖原文件的内容
,他应该使用的命令是(ls>>output.ls
)
(3)管道|
Linux允许将 一个命令的输出 通过 管道 作为 另一个命令的输入。可以理解为现实中的管道【英文名pipe】。这里|
的左右分为两端,左端 写 东西,右端 读 东西。
more
:分屏显示内容
例如:ls -lh | more
:可以将ls -lh
的输出用more
显示
grep
:在命令执行结果的基础上查询指定的文本
完全可以这样使用:
命令A|命令B|命令C
管道符就像任意门
,可以实现数据的穿梭,帮助我们提高工作效率。
(4)clear
清屏终端窗口
(5)date
显示
或 设置
系统时间。格式为:date [选项] 【+指定的格式】
- 查看当前系统时间
date
- 查看当前系统时间(按
年-月-日 时:分:秒
的格式)date "+%Y-%m-%d %H:%M:%S"
- 查看今天是当年中的第几天
date "+%j"
(6)wget
用于在终端中下载网络文件。格式为wget [参数] 下载地址
(7)ps
查看系统中的进程状态。格式为ps [参数]
在linux系统中,时刻运行着许多进程。常见的进程状态有五种:运行、中断、不可中断、僵死、停止。
- R(运行):进程正在运行或在运行队列中等待。
- S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
- D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
- Z(僵死):进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放。
- T(停止):进程收到停止信号后停止运行。
ps aux
查看进程状态:
注:在linux中,命令参数有
长格式
(如-- help
)和短格式
(如-h
)之分。
只有短格式与短格式可以合并。所以-a
、-u
、-x
可以合并为-aux
。
(8)top命令
用于动态监视进程活动与系统负载等信息。
top
命令是 Linux 下常用的性能分析工具
,能够实时显示系统中各个进程的资源占用状况,类似于资源管理器,默认5秒刷新一下进程列表
,显示活动进程方面的情况。
显示的前五行是系统的整体统计信息
第一行表示任务队列信息
第二三行表示进程和cpu的信息【本机cpu使用率,查看CPU占用】
第四五行表示内存信息
top
可以获取linux主机的负载相关指标【负载:负载指的是处于正在运行或者不可中断状态的进程的平均值,这两种状态都在使用CPU。而就绪状态,还没有用到CPU,和负载】
(9)pidof
查询某个指定服务进程的PID值。格式是pidof [参数] [服务名称]
。
每个进程的进程号码PID
是唯一的,可以通过PID来区分不同的进程。
(10)kill、ctrl+c、ctrl+z、halt、shutdown、reboot、init
终止前台用ctrl+c,后台kill
-
CTRL+C 关闭/杀死/终止 当前(
前台
)进程。强制中断程序的执行,回到shell。 -
CTRL+Z 暂停当前(
前台
)进程。将任务中断,但是此任务并没有结束,只是在后台中维持挂起
的状态。- vi一个文件时,如果要用shell执行别的操作,可不关闭vi,使用
Ctrl+z
,shell会将vi进程挂起,结束了操作之后,可以用fg命令继续使用vi。
- vi一个文件时,如果要用shell执行别的操作,可不关闭vi,使用
-
kill:杀死后台进程,无参数表示向进程输入关闭的指令。用于终止某个指定PID的服务进程。格式为
kill [参数] [进程PID]
- killall:用于终止某个指定名称的服务所对应的
全部
进程。格式为killall [参数] [进程名称]
- 复杂软件的服务程序通常会有 多个进程 协同为用户提供服务。可以使用
killall
命令批量结束某个服务程序带有的全部进程。 - 你尝试登出时收到一个错误消息,显示你还有任务未完成,你需要使用下面哪个命令?
kill PID-of-the-process
- 例:使用
kill 5529
命令,可以关闭PID为5529的服务进程。
- killall:用于终止某个指定名称的服务所对应的
-
halt 【关机】关闭系统(不重新启动),就是调用
shutdown -h
。halt执行时﹐不理会目前系统状态,执行硬件关机。杀死应用进程,执行sync系统调用﹐文件系统写操作完成后就会停止内核。- 要求在重新启动Linux系统,下面那个命令不可以:
#halt
- 要求在重新启动Linux系统,下面那个命令可以:
#shutdown -r now
、#reboot
、#init6
- 要求在重新启动Linux系统,下面那个命令不可以:
-
shut down 重启系统。 这个命令会通知系统内的各个进程,并通知关闭一些服务。shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的。
- shutdown -h now 立刻关机 常用
shutdown -h 20:25 指定关机的时间
shutdown -h +10 10分钟后关机
shutdown -r now 系统立刻重启
shutdown -r +30 ‘the system will reboot’ 显示题是信息给所有在线用户
shutdown -k now ‘system will reboot’ 仅仅发出要重新启动的信息,而不会关机或者重启
- shutdown -h now 立刻关机 常用
-
reboot:引发
主机重启
,删除所有进程,不平稳终止。 -
Ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
-
init: 用于切换系统的运行级别,切换的工作是立即完成的。
init 0 关机
init 3 命令行模式
Init5 含有图形界面
init 4重启
(11)&
如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执行命令时在末尾添加上一个&
符号,这样命令将进入系统后台
来执行。
(12)uname
查看系统内核与系统版本等信息。格式为uname [-a]
在使用uname命令时,一般会固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。
(13)uptime
uptime命令主要用于获取主机运行时间
和查询linux系统负载
等信息,显示开机时间。格式为uptime
[root@linuxprobe ~]# uptime
22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18
当前系统时间:
22:49:55
系统已运行时间:up 10 min
启动终端数量:2 users
平均负载值:load average:
系统在最近1分钟内的压力情况:
0.01
系统在最近5分钟内的压力情况:0.19
系统在最近15分钟内的压力情况:0.18
- 在Shell环境下,如何查看远程Linux系统运行了多少时间?
ssh user@被监控主机ip "uptime"
。 - 使用uptime命令查看系统负载时,对应的负载数值如果是0.91、0.56、0.32,那么最近15分钟内负载压力最大的是哪个时间段?
答:通过负载数值可以看出,最近1分钟内的负载压力是最大的。
(14)free
显示当前系统中内存的使用量(已使用、未使用、磁盘负载等)信息。格式为free [-h]
。
使用-h参数以更人性化的方式输出当前内存的实时使用量信息。
(15)who
查看当前登录主机的用户终端信息。格式为who [参数]
(16)vmstat
vmstat 命令: 报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息,查看cpu负载。
(17)alias
Linux 操作系统没有回收站,删除的文件无法恢复,网络管理员为了防止误删文件,需要的配置是(alias rm='rm-i'
)
alias命令用于设置指令的别名:
alias [别名]=[指令名称]
rm 设置一个别名rm -i
,-i
参数表示每次删除时交互式询问是否删除,删除前逐一询问确认。
=
左右两边不能有空格。rm='rm-i'
不能写成rm = 'rm-i'
。
(18)sar
sar
可以获取linux主机的负载相关指标
sar -u输出显示CPU信息。-u选项是sar的默认选项。该输出以百分比显示CPU的使用情况
四、Linux终端命令格式
1、终端命令格式
command [-options] [parameter]
说明:
command:命令名,相应功能的英文单词或单词的缩写
ls
pwd
clear[-options]:选项,可用来对命令进行控制,也可以省略
[parameter]:传给命令的参数,可以是零个、一个或者多个
touch 文件名称
cd 目录名称
mkdir 目录名称
rm 文件名称[] 代表可选,没有[]表示是必选的
直接使用 rm,无法直接删除目录;
如果加上选项 -r ,就可以删除目录了。
2、查阅命令帮助信息(两种方式)
命令行参数可以用长格式(完整的选项名称)【如:
--help
】,也可以用短格式(单个字母的缩写)【如-h
】。
(1) --help
command --help
说明:显示command命令的帮助信息
例:
(2 man
man command
说明:查阅command命令的使用手册
man是manual的缩写,是Linux提供的一个手册,包含了绝大部分的命令、函数的详细使用手册
使用man时的操作步骤:
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter键 | 一次滚定手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
例如:
在终端页面输入 man mkdir ,会跳转到手册页,显示如下:
输入 q ,就会退回到终端页面,如下:
3、中止终端程序的执行ctrl c
五、远程管理常用命令
1、关机 / 重启
shutdown 选项 时间
可以 安全关闭 或 重新启动系统
$ shutdown
:不指定选项和参数,默认表示 1分钟 之后 关闭电脑
$ shutdown -c
:取消 “关机” 操作
$ shutdown -r
:重新启动操作系统。远程维护服务器,最好不要关闭系统,而应该重新启动系统。
$ shutdown now
:立刻 关机
$ shutdown 9.00
:今天9.00 关机
$ shutdown +10
:再过10分钟关机
reboot
重启系统
涉及硬件资源管理权限的,只能使用root管理员来重启。
[root@linuxprobe ~]# reboot
poweroff
关闭系统
[root@linuxprobe ~]# poweroff
2、查看或配置网卡信息
(1)ifconfig
configure a network interface。
ifconfig
:查看 / 配置计算机当前的网卡(网络接口/网络设备)配置信息
if config | grep inet
:查看网卡对应的 IP地址
127.0.0.1
被称为 本地回环 / 回环地址,一般用来测试本机网卡是否正常。一台计算机有一个物理网卡和多个虚拟网卡。
使用ifconfig命令查看网络状态信息时,需要重点查看的 4项信息 分别是:网卡名称、IP地址、网卡物理地址以及RX/TX的收发流量数据大小。
网卡:是一个专门负责网络通讯的硬件设备。IP地址是设置在网卡上的地址信息。
IP地址:每台电脑都有IP地址,这是保证电脑之间正常通讯的重要设置。每台电脑的IP地址不能相同。
可以把 电脑 比作 电话,网卡 相当于 SIM卡, IP地址 相当于 电话号码。
(2)ping
ping ip地址
:检测到目标 ip地址 的连接是否正常。按ctrl c
暂停输出。
TCP/IP系统连通性测试,利用ICMP进行基本的请求的应答。
通过ping命令测试网络能否联通,检测两部主机之间的传输信道是否畅通,或远程主机是否正常。由于在Linux系统中ping命令不会自动终止,因此需要手动按下Ctrl-c键来强行结束进程。
ping 127.0.0.1
:127.0.0.1是回送地址,指本机。检测 本地网卡 工作是否正常。
ping
一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢。ping
取自声纳的声音,其工作原理与潜水艇的声纳相似,网络管理员之间也常将ping
用作动词——ping一下计算机x,看它是否开着。
检测本地网卡工作是否正常
ping 192.168.10.10
例题:
- linux防火墙iptabls拒绝所有客户端ping数据包的规则是(
iptables -A INPUT -s ! 127.0.0.1 -p icmp -j DROP
、iptables -A INPUT -s 0.0.0.0 -p icmp -j DROP
)。
(3)tcpdump
tcpdump是简单可靠网络监控的实用工具
- linux tcpdump监听网卡 eth0,对方主机IP为10.1.1.180,tcp端口为80的数据,相应命令为
tcpdump -i eth0 -nn 'tcp and port 80 and host 10.1.1.180'
tcpdump 没有-h选项
-i 网路接口名字,并且需要带上端口号
3、远程登录和复制文件
(1)ssh
ssh 用户名@ip
:secure shell。关机 / 重新启动。
SSH客户端 是一种使用Secure Shell (SSH)
协议连接到远程计算机的软件程序。
SSH
是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
利用
SSH协议
可以有效 防止远程管理过程中的信息泄露。
通过SSH协议
可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
SSH
的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度。
域名
由一串 用.
分隔 的名字组成,是 ip地址 的别名,方便用户记忆。例如www.baidu
。
端口号
通过 ip地址 找到网络上的 计算机。再通过 端口号 可以找到 计算机上运行的应用程序。SSH服务器 的默认端口号是22
,如果是默认端口号,在连接的时候,可以省略。如果没有指定的端口号就会报错。
常见服务端口号列表:
SSH客户端的简单使用
ssh [-p port] user@remote
user
是在远程机器上的用户名,如果不指定的话,默认是当前用户
remote
是远程机器的地址,可以是 IP、域名、别名
port
是 SSH Server监听的端口,如果不指定,默认为22
使用exit
退出当前用户的登录
SSH
终端命令只能在 Linux
或 NUIX
系统下直接使用。如果在 Windows
系统中,可以安装 Putty
或者 XShell
客户端软件(均是免费的软件,要从下方的官方渠道下载。因为其他渠道下载的很可能是已经被黑客修改过的)。
Putty:http://www.chiark.greenend.uk/~sgtatham/putty/latest.html
XShell:http://xshellcn
(2)scp
scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径
:secure copy。远程复制文件。
此命令的 地址格式 与SSH基本相同,只是-P
变成了大写的P。
如果远程SSH服务器的端口不是22,需要使用大写字母-P选项指定端口。
#把本地当前目录下的 01.py 文件复制到远程家目录下的 Desktop/01.py
#注意,:
后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
#把远程家目录下的Desktop/01.py 文件复制到本地当前目录下的01. py
scp -P port user@remote:Desktop/01.py 01.py
-r
若给出的 源文件 是 目标文件,则scp将递归复制 该目录下的 所有子目录和文件。
目标文件必须为一个 目录名。
#把当前目录下的demo文件夹复制到远程家目录下的Desktop
scp -r demo user@remote: Desktop
#把远程家目录下的Desktop复制到当前目录下的demo 文件夹
scp -r use r@remote:Desktop demo
【54开始…过一阵再听吧】
shell
Q:一个完整的Shell脚本应该哪些内容?
A:应该包括脚本声明
、注释信息
和可执行语句(即命令)
。
python文件的另一种运行方式:Linux上的Shebang符号(即#!
)
#!
这个符号叫做Shebang
或者Sha-bang
。Shebang
通常在Unix
系统脚本的 第一行开头 使用,指明 执行这个脚本文件 的解释程序。(告诉系统使用哪种Shell解释器来执行该脚本。)
使用Shebang的步骤
①使用which
查询python3
解释器所在的路径:
$ which python3
②修改要运行的主python文件,在第一行增加以下内容:
#! 路径(如:/usr/bin/python3)
③在终端中修改 主python文件 的文件权限,增加执行权限:
$ chmod +x card_main.py
就可以通过文件名直接启动程序了,而不再需要使用python3的解释器来加载和运行程序。
chmod命令是一个非常实用的命令,能够用来设置文件或目录的权限,格式为“chmod [参数]权限 文件或目录名称”。
chmod 改变权限
chmod(change mode of file)命令是控制用户对文件的(访问)权限
的命令,改变文件的的读写执行权限。
用二进制表示 rwx,r 代表可读,w 代表可写,x 代表可执行,- 表示没有权限。
如果可读
,权限二进制为 100,十进制是4
;
如果可写
,权限二进制为 010,十进制是2
;
如果可执行
,权限二进制为 001,十进制是1
;
文件类型和文件权限由10个字符组成:
第 1 位表示文件的类型;
第 2 - 4 位表示文件所有者对文件的权限;
第 5 - 7 位表示文件所有者所在组的用户对文件的权限;
第 8 - 10 位表示其他用户对文件的权限。
-
Linux 文件权限 -rwxr-xr-x 意思是是:
属主有读、写、执行权限,而属组用户和其他用户只有读、执行权限
。 -
权限为 765 的文件,正确的权限位标记是:
-rwxrw-r-x
题目中 权限十进制为 765,则:
所有者具有 7 = 4 + 2 + 1 的权限,即 rwx;
所在组具有 6 = 4 + 2 的权限,即 rw-;
其他人具有 5 = 4 + 1 的权限,即 r-x;
所以最终权限标识为 rwxrw-r-x。 -
在Linux 系统中,如果想要将某个文件的权限设置为组外用户成员只读,组内成员用户可读可写,文件拥有者可拥有全部权限,则该文件的权限需要设置的数字为(
764
) -
linux下,指定文件file1为所有用户可读,可写,可执行,执行命令:
chmod 777 file1,chown test file1
。修改file1的拥有者为test,拥有组为user,执行命令:chgrp user file1
。# 改变权限 chmod 777 filepath # 改变所有者 chown test filepath # 改变所属组 chgrp user filepath
chgrp(change group)命令用于变更文件或目录的所属群组;
-
为脚本程序指定
执行权限
命令的参数为chmod +x filename.sh
。【r读w写x执行】 -
Linux 下给文件 start.sh 设置权限为
自己可读可修改可执行
,组内用户为可读可执行不可修改
,其余用户没有任何权限
,那么设置该文件权限的命令为(chmod start.sh 760
) -
现在将/目录下的www文件权限改为只有主用户(所有者)有执行的权限的有
chmod 100 /www
、chmod u+x ,g-x,o-x /www
-
在unix系统下执行chmod(“/usr/test/sample”,0753)之后该文件sample的访问权限为
拥有者可读写执行,同组用户可读可执行,其他用户可写可执行
-
文件aaa的访问权限为rw-r–r–,现要增加所有用户的执行权限和同组用户的写权限,下列哪些命令是正确的?
chmod a+x,g+w aaa
、chmod 775 aaa
-
在 Linux 系统中,你看到一个文件的属主和属组都是 root,它的权限是 -rwxrwxr–,那么:
- root 用户具有读取、写、修改的权限
- 同组用户具有读取、写、修改的权限
- 其他用户具有读取的权限
-
在 Linux 中,将文件属性设置为所有者只读,其余无任何权限的命令为(假设文件名为 myfile)
chmod 400 myfile
-
文件目录data当前权限为rwx — —,只需要增加用户组可读可执行权限,但不允许写操作,具体方法为:
chmod +050 data
。 -
linux的系统调用是指
是用户进程调用内核功能的接口
umask
umask
指:目前用户在新建文件或目录时,权限默认值需要减去的权限
。
-
用户
创建文件
,默认没有可执行权限,即没有x
,因此默认权限是-rw-rw-rw-
,即666
。 -
用户
创建目录
,默认所有权限均开放,默认权限为-rwxrwxrwx
,即777
。
-
设 umask 为 002,则新建立的文件默认权限是什么(
rw-rw-r--
)umask
为002
,表示:user、group不被拿掉任何权限,而other被拿掉2
即写权限
。
因为用户创建文件
,默认没有可执行权限,即没有x
,因此默认权限是-rw-rw-rw-
,即666
。
使用umask之后,默认权限变为:-rw-rw-r--
。
chown 改变所有者
chown(change owner)命令用于设置文件所有者和文件关联组的命令。
变更文件夹以及下面所有文件的所有者
:chown [-R] [用户名称] [文件或目录]
。【-R,recursive表示递归操作】
chgrp 改变所属组
chgrp(change group)命令用于变更文件或目录的所属群组。
#
注释信息
shell解释器的内设变量——接收用户输入
$?
显示上一条命令执行后的返回值$0
当前Shell脚本程序的名称$#
总共有几个参数$*
所有位置的参数值$1、$2、$3……
分别对应着该脚本在执行时接收的第N个参数值$$
Shell本身的PID(ProcessID),即当前进程的PID。
在RHEL 7系统及众多的Linux系统中,最常使用的Shell终端是什么?
答:Bash(Bourne-Again SHell)解释器。
测试语句
条件表达式格式:[ 条件表达式 ]
(注意:条件表达式两边都应该有一个空格)
if
if
...
then
...
[elif]
...
[then]
...
[else]
...
fi
for
for 变量 in 列表:
do
...
done
while
while ...
do
...
done
case
case 变量 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认命令序列
esac
MAC
在Windows系统中看到的MAC地址,其格式类似于00-0c-29-27-c6-12,间隔符为减号(-
)。
但是在Linux系统中,MAC地址的间隔符则变成了冒号(:
)。
把IP地址
与主机网卡的MAC地址
绑定,就可以保证该主机一直获取到固定的IP地址。
版权声明:本文标题:Linux操作系统学习 | Linux常用命令 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726423750a1070152.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论