Linux操作系统学习 | Linux常用命令

文章目录

**表示次方
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 -(同时按)缩小终端窗口的字体显示

  1. 执行Linux系统命令时,添加参数的目的是什么?
    答:为了让Linux系统命令能够更贴合用户的实际需求进行工作。
  2. Linux系统命令、命令参数及命令对象之间,普遍应该使用什么来间隔?
    答:应该使用一个或多个空格进行间隔。

1、查看目录内容

①自动补全
在敲出文件/目录/命令的前几个字母后,按下Tab

如果输入的没有歧义,系统会自动补全。如果还存在其他文件/目录/命令,再按一下Tab键,系统会提示 可能存在的命令。

②曾经使用过的命令

/ 光标键可以在曾经使用过的命令之间来回切换
如果想要退出选择,并且不想执行当前选中的命令,可以按ctrl c

Linux下文件和目录的特点

Linux文件 或 目录 名称 最长可以有 256个字符
.开头的文件为隐藏文件,需要用-a参数才能显示
.代表当前目录。cd .仍为当前目录,不会切换目录
..代表上一级目录。cd ..会切换到上级目录

③ls: 查看当前文件夹下的内容

  • ls命令是list的缩写,显示当前目录中的文件名字。
    • 缺省下ls用来打印出当前目录的清单
    • 如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。

在这里插入图片描述
ls -a:显示指定目录下所有子目录与文件,包括隐藏文件
ls -l:以列表方式显示文件的详细信息。

文件夹显示为蓝色字体,第一列以d标识;
文件显示为白色字体,第一列以-标识。

ls -lhls -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]效果一样

一些题目

  1. 当前目录下有a和b两个文件,执行命令“ls>c”,请问文件c里面的内容是什么?abc

    任何命令在执行时都会打开三个文件描述符:标准输入,标准输出,标准错误输出。ls > c将标准输出重定向到文件c,在ls命令执行时,先打开三个文件描述符,因此,先创建c文件,再执行ls的具体程序。

  2. Linux执行ls,会引起哪些系统调用(readexecvefork

    shell命令执行机制就是 fork+exec 执行命令
    Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。
    而ls会执行read

④pwd:

查看当前所在文件夹:第一个 / 表示“根目录”, 第二个 home/ 表示“家目录”,python表示当前所处位置:
在这里插入图片描述

2、切换目录:cd [目录名]

cd(change diretory)。Linux是区分大小写的。如果想跳转到Desktop目录,则:
在这里插入图片描述
可以看出,目前所处位置是:第一个 / 表示“根目录”, 第二个 /home 表示“家目录”,第三个 /python 表示文件夹, Desktop 表示当前所处位置。

命令含义
cdcd~切换到当前用户的主目录(家目录)(/home/用户目录)
cd.保持在当前目录不变
cd..切换到上级目录
cd -可以在最近两次工作目录之间来回切换

相对路径:在输入路径时,最前面不是/或者~,表示相对 当前目录 所在的目录位置
绝对路径:在输入路径时,最前面是/或者~,表示从 根目录/家目录 开始的具体目录位置

3、创建和删除操作

linux 创建文件的命令有(touchcatvi/vim>

(1)touch [文件名]

巧记方法:摸一摸(touch),软件就来了

创建文件 或 修改文件时间

如果文件 不存在 ,可以创建一个空白文件
如果文件 已经存在 ,可以修改文件的末次修改日期

创建文件:
在这里插入图片描述

(2)mkdir [目录名]

创建一个新目录(不能与当前目录中 已有的目录或文件 同名):

在这里插入图片描述
-p:可以递归创建目录。如:mkdir -p a1/b1/c1/d1

在使用mkdir命令创建有嵌套关系的目录时,应该加上什么参数呢?
答:应该加上-p递归迭代参数,从而自动化创建有嵌套关系的目录。

(3)rm

删除指定的文件名:rm [文件名]
如果删除 不存在的文件 ,就会报错:“没有那个文件或目录”
如果删除 目录,会报错:“是一个目录”
在这里插入图片描述
rm -f:强制删除,忽略不存在的文件,无需提示
rm -r:递归地删除目录下的内容, 删除文件夹 时必须加此参数

  1. 在使用rm命令删除文件或目录时,可使用哪个参数来避免二次确认呢?
    答:可使用**-f**参数,这样即可无需二次确认。
  2. 批量删除当前目录下后缀名为.c的文件。如a.c、b.c。rm *.cfind . -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种情况:

  1. 如果目标文件是目录,则会把源文件复制到该目录中;
  2. 如果目标文件也是普通文件,则会询问是否要覆盖它;
  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 )将几个文件合并为一个文件: $ cat file1 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查找文件

  1. 下列哪个命令能查找当前目录一个月(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 把前面的返回值作为参数传递给其后面的命令,通常配合管道使用。

  2. find . -newer file1 ! ( -newer file2 ) 该命令的意思是(查找更改时间比文件 file1 新但比文件 file2 旧的文件

    -newer file 表示查找修改比 file 文件更新的文件,! 表示取反

(3)grep 搜索文本 文件名

搜索文本文件内容

-n:显示匹配行及行号
-v:显示不包含匹配文本的所有行(相当于求反)。-vn显示行号。
-i:忽略大小写。-in显示行号。
^a:行首,搜寻以 a 开头的行。
a$:行尾,搜寻以 a 结束的行。

-n-v这两个参数几乎能完成日后80%的工作需要。

  1. Linux系统中在给定的一个或多个文件中查找与设定条件相符字符串的命令为?grep

  2. 在某特定文件夹内查找内容含有"abc"的文件,选出可以实现的?grep "abc" *

  3. 使用grep命令对某个文件进行关键词搜索时,若想要进行文件内容反选,应使用什么参数?
    答:可使用-v参数来进行匹配内容的反向选择,即显示出不包含某个关键词的行。

  4. 在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?grep -E ^a try_grep

    grep:
    -E:表示使用扩展的正则表达式
    ^:匹配正则表达式的开始行
    $: 匹配正则表达式的结束行

  5. Linux命令行下如何查找列出/usr/local这个目录以及子目录下所有包含字符mrtg的文件?grep -Rn "mrtg" /usr/local

    • grep加-R-r表示递归查询子目录。
    • 不加-n也可以。-n表示输出’mrtg’所在行。

(4)head

用于查看纯文本文档的前N行,格式为head [选项] [文件]

只想查看文本中前20行的内容:head -n 20 文件名

(5)tail

用于查看纯文本文档的后N行或持续刷新内容。格式为tail [选项] [文件]

查看文本内容的最后20行:tail -n 20 文件名

  1. 为了查看不断更新的日志文件,可以使用的指令是(tail
  2. 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到右边的文件。

>! 输出重定向到一个文件或设备 强制覆盖原来的文件

例题:

  1. 在 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 [选项] 【+指定的格式】

  1. 查看当前系统时间
    date
    
  2. 查看当前系统时间(按年-月-日 时:分:秒的格式)
    date "+%Y-%m-%d %H:%M:%S"
    
  3. 查看今天是当年中的第几天
     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。
  • kill:杀死后台进程,无参数表示向进程输入关闭的指令。用于终止某个指定PID的服务进程。格式为kill [参数] [进程PID]

    • killall:用于终止某个指定名称的服务所对应的全部进程。格式为killall [参数] [进程名称]
    • 复杂软件的服务程序通常会有 多个进程 协同为用户提供服务。可以使用killall命令批量结束某个服务程序带有的全部进程。
    • 你尝试登出时收到一个错误消息,显示你还有任务未完成,你需要使用下面哪个命令?kill PID-of-the-process
    • 例:使用kill 5529命令,可以关闭PID为5529的服务进程。
  • halt 【关机】关闭系统(不重新启动),就是调用shutdown -h。halt执行时﹐不理会目前系统状态,执行硬件关机。杀死应用进程,执行sync系统调用﹐文件系统写操作完成后就会停止内核。

    • 要求在重新启动Linux系统,下面那个命令不可以:#halt
    • 要求在重新启动Linux系统,下面那个命令可以:#shutdown -r now#reboot#init6
  • 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’ 仅仅发出要重新启动的信息,而不会关机或者重启
  • 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

  1. 在Shell环境下,如何查看远程Linux系统运行了多少时间?ssh user@被监控主机ip "uptime"
  2. 使用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.1127.0.0.1是回送地址,指本机。检测 本地网卡 工作是否正常。
ping一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢。ping取自声纳的声音,其工作原理与潜水艇的声纳相似,网络管理员之间也常将ping用作动词——ping一下计算机x,看它是否开着。

检测本地网卡工作是否正常
在这里插入图片描述
在这里插入图片描述


ping 192.168.10.10
在这里插入图片描述

例题:

  1. linux防火墙iptabls拒绝所有客户端ping数据包的规则是(iptables -A INPUT -s ! 127.0.0.1 -p icmp -j DROPiptables -A INPUT -s 0.0.0.0 -p icmp -j DROP)。

(3)tcpdump

tcpdump是简单可靠网络监控的实用工具

  1. 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.cn

端口号

通过 ip地址 找到网络上的 计算机。再通过 端口号 可以找到 计算机上运行的应用程序SSH服务器 的默认端口号是22,如果是默认端口号,在连接的时候,可以省略。如果没有指定的端口号就会报错。
常见服务端口号列表:
在这里插入图片描述

SSH客户端的简单使用

ssh [-p port] user@remote

user是在远程机器上的用户名,如果不指定的话,默认是当前用户
remote是远程机器的地址,可以是 IP、域名、别名
port是 SSH Server监听的端口,如果不指定,默认为22

使用exit退出当前用户的登录
SSH 终端命令只能在 LinuxNUIX 系统下直接使用。如果在 Windows 系统中,可以安装 Putty 或者 XShell 客户端软件(均是免费的软件,要从下方的官方渠道下载。因为其他渠道下载的很可能是已经被黑客修改过的)。

Putty:http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
XShell:http://xshellcn.com

(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-bangShebang通常在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 位表示其他用户对文件的权限。

  1. Linux 文件权限 -rwxr-xr-x 意思是是:属主有读、写、执行权限,而属组用户和其他用户只有读、执行权限

  2. 权限为 765 的文件,正确的权限位标记是:-rwxrw-r-x

    题目中 权限十进制为 765,则:
    所有者具有 7 = 4 + 2 + 1 的权限,即 rwx;
    所在组具有 6 = 4 + 2 的权限,即 rw-;
    其他人具有 5 = 4 + 1 的权限,即 r-x;
    所以最终权限标识为 rwxrw-r-x。

  3. 在Linux 系统中,如果想要将某个文件的权限设置为组外用户成员只读,组内成员用户可读可写,文件拥有者可拥有全部权限,则该文件的权限需要设置的数字为(764

  4. 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)命令用于变更文件或目录的所属群组;

  5. 为脚本程序指定执行权限命令的参数为chmod +x filename.sh。【r读w写x执行】

  6. Linux 下给文件 start.sh 设置权限为自己可读可修改可执行组内用户为可读可执行不可修改其余用户没有任何权限,那么设置该文件权限的命令为(chmod start.sh 760

  7. 现在将/目录下的www文件权限改为只有主用户(所有者)有执行的权限的有chmod 100 /wwwchmod u+x ,g-x,o-x /www

  8. 在unix系统下执行chmod(“/usr/test/sample”,0753)之后该文件sample的访问权限为拥有者可读写执行,同组用户可读可执行,其他用户可写可执行

  9. 文件aaa的访问权限为rw-r–r–,现要增加所有用户的执行权限和同组用户的写权限,下列哪些命令是正确的?chmod a+x,g+w aaachmod 775 aaa

  10. 在 Linux 系统中,你看到一个文件的属主和属组都是 root,它的权限是 -rwxrwxr–,那么:

    • root 用户具有读取、写、修改的权限
    • 同组用户具有读取、写、修改的权限
    • 其他用户具有读取的权限
  11. 在 Linux 中,将文件属性设置为所有者只读,其余无任何权限的命令为(假设文件名为 myfile)chmod 400 myfile

  12. 文件目录data当前权限为rwx — —,只需要增加用户组可读可执行权限,但不允许写操作,具体方法为:chmod +050 data

  13. linux的系统调用是指是用户进程调用内核功能的接口

umask

umask指:目前用户在新建文件或目录时,权限默认值需要减去的权限

  • 用户创建文件,默认没有可执行权限,即没有x,因此默认权限是-rw-rw-rw-,即666

  • 用户创建目录,默认所有权限均开放,默认权限为-rwxrwxrwx,即777

  1. 设 umask 为 002,则新建立的文件默认权限是什么(rw-rw-r--

    umask002,表示: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地址。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值