史上最方便的Linux教程

本文详细介绍了Linux的基础操作,包括用户管理、文件权限、目录结构、文件操作、环境变量、压缩解压、磁盘管理和周期性任务Crontab等。还深入讲解了各种常用命令的使用,如ls、whoami、adduser、chmod、chown、tar、find、grep、sed、awk等,并探讨了进程管理、系统信息查看和软件安装。此外,还分享了一些面试中常问的命令知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux在线教程

💡表示提示 ⚡️表示扩展 🐟表示面试问过

介绍

蓝桥云课的linux课程,什么都不需要安装,微信扫 码登录后即可直接在线操作学习。不过教程有一些概念看不懂😅,建议看懂多少是多少吧,无需纠结。下面是我列举的一些重点。

课程内容

计算机系统分层

应用程序
操作系统:系统调用、内核
硬件

快捷键

ctrl + k 删除光标之后的所有字符 # 很好用
alt + backspace 删除前一个单词

查看命令详细信息

man 命令

查看命令基本信息

命令 --help

用户

查看在线用户

who

我是谁

who am i

创建用户

sudo adduser 用户名

💡会在/home目录下创建对应工作目录

登录(切换用户)和退出

su -l 用户名
exit

查看所属用户组

groups 用户名

查看用户组信息

cat /etc/group

💡文件每一行为组名:用户组密码:组id:组成员,组成员可为空,例如默认创建的用户会创建跟用户同名的组。

给用户赋予root权限:加入sudo组

sudo usermod -G sudo 用户名

删除用户

sudo deluser 用户名 --remove-home

💡–remove-home代表同时删除用户的工作目录

删除用户组

groupdel

文件权限

列出当前目录下的文件或目录。内容包括文件的类型、权限、大小、拥有者、所属组等

ls -l

💡参数: -a隐藏文件 -h文件大小带单位 -d 显示指定目录信息,默认是目录下的文件的信息

首先需要知道ll列出的每一行的代表什么

- rwx rwx rwx
分别代表文件类型(-代表文件,d代表目录,l代表软链接…)和
三种权限(拥有者、所属组、其它人)其中,rwx代表读、写、执行权限

⚡️一个目录同时具有读权限和执行权限 才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件

修改文件拥有者

sudo chown 用户名 文件名

修改文件权限

chmod 777 文件名

💡777代表rwx-rwx-rwx,每个rwx对应421,像6代表rw-,4代表r--

目录结构

树形结构:/ -> /boot/dev/var -> /run
~代表当前用户的home目录,即/home/username
.表示当前目录
..表示上一级目录
pwd获取当前路径

文件底层

硬盘最小单位是扇区,块由多个扇区构成,文件的数据存储在块(block)中,而文件的元信息则存放在inode中。

block: 存放文件的数据,一个文件可占用多个块,但一个块只能放一个文件
(因为数据是由 inode 指向的,如果有两个文件的数据存放在同一个块中,就会乱套了)
inode: 用于记录文件元信息,例如文件拥有者,创建时间。

查看文件的inode信息

stat 文件名 

💡每个inode都会对应一个文件

硬链接与软链接

  • 硬链接是指向索引节点inode的指针,它的文件和链接文件的索引节点号码相同
  • 软链接存放的是链接文件的路径,链接文件一旦删除,就无法访问了,因为找不到。(又称符号链接)

⚡️我们平时创建文件,该文件就会有一个硬链接,删除文件只是删除一个链接,只有链接都没有了,文件内容才被真正删除,ll的第二个字段就是链接数

查看文件的inode信息

stat file

文件操作

新建文件

touch 文件名

新建目录

mkdir 目录名
# -p创建多级目录
mkdir -p  /目录1/目录2/目录3

复制文件

cp  文件名  复制的位置

💡复制目录需要加上-r参数,如果复制的文件跟原来的文件名字和路径一样,则报错。

删除文件

rm 文件名

💡-f强制删除,忽略某些删除提示;-r删除目录

😅相信这个时候你就知道网上的说的删库跑路是什么命令了sudo rm -rf /*

文件移动或重命名

mv  文件名	移动位置或新文件名

💡移动多个文件用空格隔开,且移动的位置需要提前创建,rename是非内置命令

查看文件

cat 文件名

💡-n 代表是否显示行号,-A显示特殊字符(后面有案例)

分页查看:某些文件的内容很多,屏幕一页是显示不完的

more 文件名

💡回车向下滚动一行,空格下一页,h显示帮助,q退出

查看前几行或后几行

head/tail 文件名

💡-n 10可指定查看行数-f可以保持内容最新,例如查看日志时,tail -200f app.log 代表查看最新200行的日志,如果日志有更新,看到的也会更新,这个非常常用

less 文件名

类似more,但是更强大,支持搜索,用/内容正向搜索?内容反向搜索,按n代表搜索下一个,shift+n代表上一个。

查看文件类型

file 文件名

环境变量

声明、获取、删除普通变量

name="zone"
echo $name
unset name

查看环境变量

env

普通变量转为环境变量

export 变量名

💡shell关闭就失效,需要添加到/etc/profile配置文件才能持久

PATH变量

Shell执行某个命令是通过搜索PATH中的路径,从而找到要执行的命令

echo $PATH
# 添加自定义路径,从而实现像系统命令一样,无需使用绝对路径就能执行,因为shell会去PATH中搜索
PATH=$PATH:/yourpath
#删除自定义路径
tmp=$PATH
tmp=${tmp%:/yourpath}
echo $tmp
PATH=$tmp
# 但是这种方式一旦退出shell,PATH的设置就会失效
# 可以通过修改配置文件home/username/.zshrc(不同shell的配置文件不同)实现,每次启动shell都会执行该配置文件
echo "PATH=$PATH:/yourpath" >> .zshrc
# 修改配置文件之后需要关闭shell重启才有效,或者使用source
source .zshrc

指令搜索顺序

  1. 以绝对或相对路径来执行指令,例如 cat /p1/p2/p3/file;
  2. 由别名找到该指令来执行,例如ls;
  3. 由 Bash 内部的指令来执行,例如cd;
  4. 按 $PATH 变量指定的搜索路径的顺序找到第一个指令来执行。

命令划分

  • 内部命令:exit、cd、history
  • 外部命令:vi、ls

查看

which/type 命令

搜索文件

# 局限于某些文件类型
whereis 文件名     
# 查看某个命令或程序是否安装
which 命令
# 啥都可以找
find  查找目录 -name 文件名

压缩和解压

zip unzip

#压缩
zip  zip文件名 待压缩文件
#解压
unzip  zip文件名  -d 指定解压目录

💡-r表示递归打包,-q表示是否输出打包信息,-e表示加密
💡-d指定解压目录,不存在会自己创建

tar

# 压缩-c
tar -cf  tar文件 压缩目录
# 解压-x
tar  -xf  tar文件 -C 解压目录

💡 -f必须在.tar前面,-v用于显示压缩过程
💡-C指定解压目录,需要自己创建

-z参数实现gzip解压缩

tar -czf 压缩文件名.tar.gz 压缩目录
tar -xzf 压缩文件名.tar.gz  -C 解压目录

💡同理其它工具也可如此,像bzip2

磁盘管理

查看磁盘大小

df -h

查看目录大小

du -h /目录名或文件

💡-d 0 查看文件的层次深度,0代表第一层

执行周期性任务Crontab

# 开启后台进程执行任务
sudo cron -f &
# 为当前用户添加任务
crontab -e 
# 查看添加的任务
crontab -l 
# 删除任务
crontab -r

crontab添加任务的格式

* * * * * 定时任务(也就是要执行的命令)
星号分别代表分钟(0-59)、小时(0-23)、天(1-31)、月(1-12)、周(0-6)

每分钟创建一个文件
* * * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S)

rsyslog日志使用:用于记录任务执行情况

# 安装 启动 查看日志文件
sudo apt-get install -y  rsyslog
service rsyslog start
tail -f /var/log/syslog

多命令

顺序执行多个命令可一次性输入,通过分号分割,每个命令都会执行,无论是否执行成功;选择的执行命令,通过&&分割,只有前一个命令执行成功才会执行后一条;同理还有通过||分割,那一条先成功就执行那一条

命令的执行结果:成功则返回0,否则返回非0

获取上一次命令的返回值

echo $?

管道

😅想起了老师上课提到的linux的设计原则:KISS原则(keep it simple stupid)

是一种通信方式,用于进程间的通信

具体就是将前面进程的输出(stdout)作为下一个进程的输入(stdin)

cat file | grep 'xx' | sort | uniq | ...

常用文本处理命令

计算文件的行数、字符数、字节数

wc -l/-w/-c  file

💡默认不加选项三个都显示

按字典排序

sort file

⚡️-knum指定第num个字段作为排序,-n按数字排序,-r逆序,-t指定分隔符

连续去重:一般需要先排序,否则去重去不干净

uniq file 

⚡️-d只输出有重复的行,-c重复行计数

grep匹配

grep '基本正则' file
#grep 需要加上`-E`参数
grep -E '扩展正则' file

⚡️-n打印行号,-v取反,-i忽略大小写,-w以单词的形式匹配,

  1. 基本正则表达式
    *代表前面的字符有0个或多个重复
    ^和$分别代表行开头和行结尾
    匹配特殊字符需要转义,\* \.
    .代表任意字符,.*代表任意多个字符
    [^a]不包含该字母
    [0-9]数字 [a-z,A-Z] 字母

  2. 扩展正则表达式
    字母{2}表示该字母要匹配2次,也就是2个重复
    字母{2,}表示该字母至少要匹配2次

cut截取

#截取第5个、前5个、第5个到末尾、第2到第5个字符
cut /etc/passwd -c 5
cut /etc/passwd -c -5 
cut /etc/passwd -c 5-
cut /etc/passwd -c 2-5

💡-fnum指定第几个字段,多个用逗号分割,-d指定分隔符,-c选中某些字符

tr删除

# -d删除全部o、l
$ echo 'hello World' | tr -d 'ol'
# -s去重
$ echo 'hello' | tr -s 'l'
# 替换
echo '1007611'| tr 7 8

处理特殊字符

换行符Windows为 CR+LF(\r\n),Linux/UNIX 为 LF(\n)
使用cat -A文本查看不可见特殊字符
Linux 的 \n 表现出来就是一个$,而 Windows/dos 的表现为 ^M$

使用:linux文件和windos文件之间的转换
cat windos_file | tr -d '\r' > unix_file
cat unix_file | tr $ '\r' > windos_file

sed文本处理

sed  'pattern' file

💡
-n禁止匹配自动输出,与p配和能只输出匹配的数据
-i直接修改了文件(将输出结果覆盖文件),注意不能与-n或p一起使用,否则会出现文件只有匹配内容,或者存在重复的匹配数据。
pattern:
d删除,1,3d 表示删除1到3行
p打印,1,3p 表示打印1到3行
s替换,s/匹配/替换/g 代表替换每行中匹配,不加g则只替换一个
s/匹配/替换/num 代表替换第几个匹配,如果要输出,同样需要加p和-n

场景:配置文件内容替换

1、查看匹配情况
sed -n 's/db.connect.ip=127.0.0.1/db.connect.ip=192.168.1.1/gp'  application-dev.properties
2、直接替换
sed -i 's/db.connect.ip=127.0.0.1/db.connect.ip=192.168.1.1/g'  application-dev.properties

awk文本处理语言

awk '正则{行为}' file

💡-F指定分隔符,指定多个需要加中括号-F'[:;]'
-v用于传递参数,例如为某个文本添加一列当前日期数据,可以这样实现

etlDt = `date`
awk -v rowDt=$etlDt '{print $rowDt, $1}' fileName

内建变量:$0代表当前行,NR代表行号,$num代表第num个字段,OFS指定输出分隔符
行为:print

#打印用户名以s开头的用户,格式为用户名=工作目录
awk -F':' '$1~/^s/{print $1,$6}' OFS="="  /etc/passwd
#打印用户id和组id的和为前10的用户
awk -F':' '{print $3+$4,$1}' /etc/passwd | sort -nr | head -n10
# 查看 /etc/protocols 中的不可见字符,可以看到很多 ^I ,这其实就是 Tab 转义成可见字符的符号
cat -A /etc/protocols
# 使用 col -x 将 /etc/protocols 中的 Tab 转换为空格,然后再使用 cat 查看,你发现 ^I 不见了
cat /etc/protocols | col -x | cat -A

文件合并join paste

join 对比相同才合并,默认对比第一个字段

# 创建两个文件
echo 'zone hello' > f1
echo 'zone world' > f2
join f1 f2
# 结果:zone hello world

paste 只合并不对比

echo hello > f1
echo zone > f2
paste -d ':' f1 f2
paste -s f1 f2
# -d	指定合并的分隔符,默认为Tab
# -s	不合并到一行,每个文件为一行

重定向

改变输入输出方向

文件描述符	设备文件	  说明
0		/dev/stdin	标准输入
1		/dev/stdout	标准输出
2		/dev/stderr	标准错误

标准输入流重定向 <

# 将文件内容小写转大写
tr a-z A-Z  <  file 

标准输出重定向 >

echo "abc" > file  #覆盖
echo "abc" >> file  # 追加

错误信息输出重定向–需使用文件描述符

例如你ll查看一个不存在的目录或文件,终端会提示报错信息,如果想隐藏,使用标准错误重定向。

ll 不存在的文件 2> 文件名
ll 不存在的文件 2>> 文件名 #追加

合并标准输出和错误信息输出,本质就是将标准错误重定向到标准输出

# 2>&1能够让两者都输出到文件
ll 不存在或存在的文件 > 文件名 2>&1

⚡️对于重定向不需要保存到文件,可输出到/dev/null

实现重定向的同时也输出到屏幕

tee 文件名

exec实现一直重定向,也就是输入的命令啥的都会重定向到指定文件,而不是每个命令都需要使用>或>>

exec 1>文件名 
一系列命令...
exit

💡exec会使用一个进程代替当前进程,所以需要exit,重定向才消失(你也可以自己创建进程bash)

软件安装

# Ubuntu
sudo apt-get insatll   软件名
# -y  自动选择安装选项
# --reinstall  重新安装
sudo apt-get update  更新软件源
sudo apt-get remove 软件名
# --purge 同时删除配置文件
# 搜索安装的软件
sudo apt-cache search softname1 softname2...

💡centos用rpm,例如安装rpm包,rpm -ivh xxx.rpm

进程管理

进程分类

  1. 根据服务对象分类
    用户进程(执行非系统内核程序)和系统进程(执行系统内核程序)
  2. 按服务类型
    交互进程、批处理进程、守护进程
    守护进程是一直运行的一种进程,在系统启动时启动,在系统关闭时终止。例如cron进程,这个进程为 crontab 的守护进程,可以周期性的执行用户设定的某些任务。

系统调用

  • fork() 为当前进程创建子进程,就是把父进程的 PCB 等进程的数据结构信息直接复制过来,只是修改了 PID
  • exec() 作用是切换子进程中的执行程序也就是替换其从父进程复制过来的代码段与数据段

init进程
init 是用户进程的第一个进程也是所有用户进程的父进程或者祖先进程,pstree的根节点就是init进程

💡进程 0 是系统引导时创建的一个特殊进程,也称之为内核初始化,其最后一个动作就是调用 fork() 创建出一个子进程运行 /sbin/init 可执行文件,而该进程就是 PID=1 的进程 1,而进程 0 就转为交换进程(也被称为空闲进程),进程 1 (init 进程)是第一个用户态的进程,再由它不断调用 fork() 来创建系统里其他的进程,所以它是所有进程的父进程或者祖先进程。同时它是一个守护程序,直到计算机关机才会停止

孤儿进程

一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿进程将被 init 进程(进程号为 1)所收养和处理。

⚡️由于孤儿进程会被 init 进程收养,所以孤儿进程不会对系统造成危害。

僵尸进程

一个进程使用fork创建子进程,如果子进程退出exit()时,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符(PCB)仍然保存在系统中。这种进程称之为僵尸进程。

⚡️系统能用的进程号是有限的,如果产生大量僵尸进程,将因为没有可用的进程号而导致系统不能产生新的进程。

⚡️要消灭系统中大量的僵尸进程,只需要将其父进程杀死,此时僵尸进程就会变成孤儿进程,从而被 init 进程所收养处理。

文章:链接

进程树–显示进程之间的关系

pstree

罗列所有进程信息

ps aux

💡 第一列用户名、第二列进程号(PID)

简单罗列所有进程信息比aux简洁

ps -ef

连同显示进程关系(父子进程)

ps axjf

💡第三列表示父进程id(PPID)

实时查看系统信息🐟

top

如cpu的负载、cpu利用率、系统进程、内存的使用情况等

load average
三个数值分别对应 1、5、15 分钟内 cpu 的平均负载

教程具体解释

这是单个 CPU 单核的情况,而实际生活中我们需要将得到的这个值除以我们的总核数来看。

根据/proc/cpuinfo查看CPU的个数与核心数

#查看物理 CPU 的个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq |wc -l
#每个 cpu 的核心数
cat /proc/cpuinfo | grep "physical id" | grep "0" | wc -l

从上面不难看出load average的临界值是1,但一般达到0.7的时候就要开始注意了。
💡
-p pid 只监测指定线程
-H 查看线程
shfit + H 按内存排序
shfit + P 按CPU使用率排序(默认)

实际使用较多命令

1.lsof查看端口占用
贼好用lsof -i:8080
2.杀死进程(-9代表强制)
kill pid
2.查看某个应用的进程号
ps -ef|grep pid
3.根据进程号查看进程的启动目录
pwdx pid
3.netstat查看端口号
例如端口号被占用时:transport error 202: bind failed: 地址已在使用,可以使用该命令;lsof也可以,但是有时候服务器人家权限不一定给你使用该命令
netstat -npl | grep port
netstat -tuln | grep 5601
4.实时查看一些动态文件,如日志(会卡住客户端,类似top)
tail -f 文件名
可以在f前添加数字限制显示多少行。
5.直观查看进程号
jps -l
6.后台执行
nohup 运行jar > /dev/null 2>&1 &
7. cat或less用于查看文件,那么对于压缩文件怎么看,解压看?
其实只需要加上z就行,例如zcat,zless即可。

查看系统信息

版本

cat /etc/centos-release

cpu

# 罗列各个处理器
cat /proc/cpuinfo
# cpu信息
lscpu
# 物理核心数
physical id 的不同个数,可通过如下命令查看
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l 
# 逻辑核心数 
通过cpu cores可查看,可简单理解为有多个处理器就有多少个
cat /proc/cpuinfo | grep 'cpu cores'

未来更多原理阅读

https://zhuanlan.zhihu.com/p/140531888

目 录 一、Linux基础 5 1.什么是Linux? 5 2.什么是自由软件、GNU和GPL? 5 3.从技术上说,Linux有什么优点? 5 4.我需要学习Linux吗? 5 5.Linux会取代Windows吗? 6 6.Linux与WindowsNT谁更好? 6 7.Linux与UNIX有什么不同? 6 8.Linux能应用在哪些领域呢? 6 9.Linux作系统发展现状和未来如何? 6 10.Linux对软件业有什么影响呢? 6 11.我该如何学习Linux呢? 6 12.网上有哪些Linux资源? 7 13.RedHat Linux 6.5和Linux 2.4哪个版本高? 7 14.Linux的发行版有哪些? 7 15.RedHat Linux有哪些特点? 7 16.TurboLinux有哪些特点? 7 17.BluePoint、Xterm、RedFlag三种中文Linux谁好? 7 18.哪种版本Linux适合我? 7 19.如何得到Linux? 8 二、用户和用户组管理 8 ※一、Linux系统用户账号的管理 8 ※1、添加新的用户账号使用useradd命令,其语法如下: 8 ※2、删除帐号 8 ※3、修改帐号 8 ※4、用户口令的管理 9 ※二、Linux系统用户组的管理 9 ※1、增加一个新的用户组使用groupadd命令。其格式如下: 9 ※2、如果要删除一个已有的用户组,使用groupdel命令,其格式如下: 9 ※3、修改用户组的属性使用groupmod命令。其语法如下: 9 ※4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其它用户组的权限。用户可以在登录后,使用命令newgrp切换到其它用户组,这个命令的参数就是目的用户组。 10 ※三、与用户账号有关的系统文件 10 ※1、/etc/passwd文件是用户管理工作涉及的重要的一个文件。 10 ※2、/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。 11 ※3、用户组的所有信息都存放在/etc/group文件中。 11 四、赋予普通用户特殊权限 12 三、文件系统结构和基本文件处理 13 ※1.文件类型 13 ※2.文件系统结构 14 ※3.主目录和当前工作目录 14 ※4.路径、绝对路径和相对路径 15 ※5.查看当前目录pwd 15 ※6.浏览文件系统cd 15 ※7.创建和删除文件(touch和rm) 15 ※8.创建和删除目录(mkdir 和 rmdir) 16 ※9.查看目录内容和文件属性ls 17 ※10.确定文件类型file 18 ※11.文件的复制和移动(cp 和 mv) 18 ※12.查看文件内容cat、head、tail、more、less 19 ※13.统计文件大小wc 21 14./etc文件系统 22 15./dev文件系统 22 16./usr文件系统 23 17./var文件系统 23 18./proc文件系统 24 四、高级文件处理 24 ※1.文件比较diff 24 ※2.删除重复行uniq 25 3. 不唯一 26 4. 对特定域进行测试 26 ※5.文件排序sort 26 ※6.文件的查找find 30 ※1、使用name选项 31 ※2、用perm选项 31 ※3、忽略某个目录 31 ※4、使用user和nouser选项 31 ※5、使用group和nogroup选项 32 ※6、按照更改时间或访问时间等查找文件 32 ※7、查找比某个文件新或旧的文件 32 ※8、使用type选项 32 ※9、使用size选项 33 ※10、使用depth选项 33 ※11、使用混合查找方式查找文件 33 ※7.搜索文件内容grep 34 ※2. grep正则表达式元字符集(基本集) 34 ※8.cut and paste 35 ※9.文件合并jion 37 ※10.文件分割split 38 ※11.文件的压缩 38 ※1.gzip 、zcat命令 39 ※2.bzip2、bzcat 39 ※3.tar (打包文件或目录) 40 ※12.设备挂载mount 40 ※1.制作ISO文件 40 ※2.挂接移动硬盘 41 ※3.挂接U盘 42 五、文件安全与权限 42 ※1.文件安全策略 42 ※2.文件权限位 42 ※3.文件类型 43 ※4.改变权限chmod 43 ※4.1符号模式 43 ※4.2绝对模式 44 ※目录 44 ※5.chown和chgrp 44 ※6.umask 45 7.Set UID、Set GID、Sticky Bit 46 8.文件隐藏属性 47 9.lsattr(显示文件的隐藏属性) 48 10.SUID和SGID的详细解析 48 11.Linux病毒 49 六、Shell 50 1.内核与Shell 50 ※2.shell的功能 50 3.输入和输出 52 ※3.1 echo 52 ※3.2 read 54 ※3.3 cat 54 ※3.4 Tee 55 ※4.输入输出复位向、管道 55 5.变量 58 5.1.什么是shell变量 58 ※5.2.本地变量 58 ※5.3.环境变量 64 ※5.4.位置变量参数 67 ※七、Linux 进程管理 69 1、程序和进程 69 1.1 进程分类; 69 1.2 进程的属性; 69 1.3 父进程和子进程; 69 2、进程管理; 69 2.1 ps 监视进程工具; 69 2.2 pgrep 71 3、终止进程的工具 kill 、killall、pkill、xkill; 71 4、top 监视系统任务的工具; 73 5、进程的优先级:nice和renice; 73 八、脚本 77 ※1. Linux 脚本编写基础 77 ※1.1 开头 77 ※1.2 注释 77 ※1.3 变量 77 ※1.4 环境变量 77 ※2.条件判断 77 ※test 文件运算符 78 ※字符串比较运算符 80 ※整数比较运算符 81 ※布尔运算符 83 3.流程控制 86 ※3.1 if 86 ※3.2.case 87 ※3.3. selsect 88 ※3.4.loop 89 ※3.5. Here documents 90 ※3.6函数 90 ※4.命令行参数 91 九、shell 十三问 91 二、关于{}和() 91 ※七、 exec 跟 source 差在哪? 这次先让我们从 CU Shell 版的一个实例贴子来谈起吧:例中的提问是: 92 八、 ( ) 与 { } 差在哪? 95 ※九、 $(( )) 与 $( ) 还有${ } 差在哪? 97 ※十、 $@ 与 $* 差在哪? 101 ※十一、 && 与 || 差在哪? 103 ※Part-I: Wildcard 112 ※Part-II: Regular Expression 113 ※十、功能强大的编辑器——vi 117 1.vi的基本状态 117 2.vi的基本操作 117 3.离开vi及存文件 117 4.Command mode功能键列表 117 5.Last line mode下指令简介 118 ※十一、ifconfig 119 十二、write 命令 122 用途: 122 语法: 123 描述: 123 工作站 123 参数 123 标志 124 退出状态 124 示例 124 文件 125 十三、关于 Linux系统中关机命令详细解析 125 1.shutdown 125 2.halt----简单的关机命令 126 3.reboot 126 4.init 126 十四、软件安装 127 十五、Linux操作系统中备份恢复技术的详解 129 十六、GRUB使用说明 131
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值