Linux操作系统实战入门

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Linux操作系统实战入门

冬季实战营第二期:Linux操作系统实战入门 (aliyun.com)

1月24日 动手实战-Linux文本处理入门深入解析动手实操

  • 开始体验

image-20220124092735628

  • 创建资源

image-20220124092808735

文本编辑工具Vim

vim有三种操作模式,分别是命令模式(Command mode)、输入模式(Insert mode)和底线命令模式(Last line mode)。

三种模式切换快捷键:

模式 快捷键
命令模式 ESC
输入模式 i或a
底线命令模式 :
  • 命令模式

在命令模式中控制光标移动和输入命令,可对文本进行复制、粘贴、删除和查找等工作。

使用命令vim filename后进入编辑器视图后,默认模式就是命令模式,此时敲击键盘字母会被识别为一个命令,例如在键盘上连续敲击两次d,就会删除光标所在行。

以下是在命令模式中常用的快捷操作:

操作 快捷键
光标左移 h
光标右移 l(小写L)
光标上移 k
光标下移 j
光标移动到下一个单词 w
光标移动到上一个单词 b
移动游标到第n行 nG
移动游标到第一行 gg
移动游标到最后一行 G
快速回到上一次光标所在位置 Ctrl+o
删除当前字符 x
删除前一个字符 X
删除整行 dd
删除一个单词 dw或daw
删除至行尾 d$或D
删除至行首 d^
删除到文档末尾 dG
删除至文档首部 d1G
删除n行 ndd
删除n个连续字符 nx
将光标所在位置字母变成大写或小写 ~
复制游标所在的整行 yy(3yy表示复制3行)
粘贴至光标后(下) p
粘贴至光标前(上) P
剪切 dd
交换上下行 ddp
替换整行,即删除游标所在行并进入插入模式 cc
撤销一次或n次操作 u{n}
撤销当前行的所有修改 U
恢复撤销操作 Ctrl+r
整行将向右缩进 >>
整行将向左退回 <<
若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开 ZZ
  • 输入模式

在命令模式下按i或a键就进入了输入模式,在输入模式下,您可以正常的使用键盘按键对文本进行插入和删除等操作。

  • 底线命令模式

在命令模式下按:键就进入了底线命令模式,在底线命令模式中可以输入单个或多个字符的命令。

操作 命令
保存 :w
退出 :q
保存并退出 :wq(:wq!表示强制保存退出)
将文件另存为其他文件名 :w new_filename
显示行号 :set nu
取消行号 :set nonu
使本行内容居中 :ce
使本行文本靠右 :ri
使本行内容靠左 :le
向光标之下寻找一个名称为word的字符串 :/word
向光标之上寻找一个字符串名称为word的字符串 :?word
重复前一个搜寻的动作 :n
从第一行到最后一行寻找word1字符串,并将该字符串取代为word2 :1,$s/word1/word2/g或 :%s/word1/word2/g

使用示例

在本示例将使用vim在文本文件中写入一首唐诗。

vim

1、 新建一个文件并进入vim命令模式(因为涉及中文需要您自行点击右下角进行中英文切换)。

image-20220124095806173

2、按下i进入输入模式,输入《静夜思》的诗名。

image-20220124095941832

3、按下ECS键回到命令模式,并输入底线命令:ce,使诗名居中。

image-20220124100505678

4、按下o键换行并进入输入模式,输入第一行诗。

image-20220124100652912

5、按下ECS键回到命令模式,并输入底线命令:ce,使第一行诗居中。

image-20220124100808584

6、在命令模式中执行底线命令:wq离开vim。

image-20220124101104197

文本文件查看命令

image-20220124101124686

文本文件查看命令

cat

命令描述:cat命令用于查看内容较少的纯文本文件。

命令格式:cat [选项] [文件]。

命令参数说明:

参数 说明
-n或--number 显示行号
-b或--number-nonblank 显示行号,但是不对空白行进行编号
-s或--squeeze-blank 当遇到有连续两行以上的空白行,只显示一行的空白行

命令使用示例:

1、将一个自增序列写入test.txt文件中。并查看文件内容。

image-20220124101500692

2、将文件内容清空。并查看文件内容。

image-20220124101530244

more

命令描述:more命令从前向后分页显示文件内容。

常用操作命令:

操作 作用
Enter 向下n行,n需要定义,默认为1行
Ctrl+F或空格键(Space) 向下滚动一页
Ctrl+B 向上滚动一页
= 输出当前行的行号
!命令 调用Shell执行命令
q 退出more

命令使用示例:

从第20行开始分页查看系统日志文件/var/log/messages。

image-20220124105003303

less

命令描述:less命令可以对文件或其它输出进行分页显示,与moe命令相似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动。

命令格式:less [参数] 文件

命令参数说明:

参数 说明
-e 当文件显示结束后,自动离开
-m 显示类似more命令的百分比
-N 显示每行的行号
-s 显示连续空行为一行

命令常用操作:

快捷键 说明
/字符串 向下搜索字符串
?字符串 向上搜索字符串
n 重复前一个搜索
N 反向重复前一个搜索
b或pageup 向上翻一页
空格键或pagedown 向下翻一页
u 向前翻半页
d 向后翻半页
y 向前滚动一行
回车键 向后滚动一行
q 退出less命令

命令使用示例:

查看命令历史使用记录并通过less分页显示。

history | less

head

命令描述:head命令用于查看文件开头指定行数的内容。

命令格式:head [参数] [文件]

命令参数说明:

参数 说明
-n [行数] 显示开头指定行的文件内容,默认为10
-c [字符数] 显示开头指定个数的字符数
-q 不显示文件名字信息,适用于多个文件,多文件时默认会显示文件名

命令使用示例:

查看/etc/passwd文件的前5行内容。

image-20220124105351841

tail

命令描述:tail命令用于查看文档的后N行或持续刷新内容。

命令格式:tail [参数] [文件]

命令参数说明:

参数 说明
-f 显示文件最新追加的内容
-q 当有多个文件参数时,不输出各个文件名
-v 当有多个文件参数时,总是输出各个文件名
-c [字节数] 显示文件的尾部n个字节内容
-n [行数] 显示文件的尾部n行内容

命令使用示例:

查看/var/log/messages系统日志文件的最新10行,并保持实时刷新。

image-20220124105423471

ctrl+c键退出文本实时查看界面。

stat

命令描述:用来显示文件的详细信息,包括inode、atime、mtime、ctime等。

命令使用示例:

查看/etc/passwd文件的详细信息。

image-20220124105501314

wc

命令描述:wc命令用于统计指定文本的行数、字数、字节数。

命令格式:wc [参数] [文件]

命令参数说明:

参数 说明
-l 只显示行数
-w 只显示单词数
-c 只显示字节数

命令使用示例:

统计/etc/passwd文件的行数。

image-20220124105523458

file

命令描述: file命令用于辨识文件类型。

命令格式:file [参数] [文件]

命令参数说明:

参数 说明
-b 列出辨识结果时,不显示文件名称
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
-f [文件] 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
-L 直接显示符号连接所指向的文件类别

命令使用示例:

查看/var/log/messages文件的文件类型。

image-20220124105543169

diff

命令描述:diff命令用于比较文件的差异。

命令使用示例:

\1. 构造两个相似的文件

image-20220124105616404

image-20220124105637994

使用diff查看两个文件的差异

image-20220124105708156

对比结果中的3c3表示两个文件在第3行有不同,5,6d4表示2.log文件相比1.log文件在第4行处开始少了1.log文件的第5和第6行。

文本文件处理命令

文本文件处理命令

grep

命令描述:grep命令用于查找文件里符合条件的字符串。

grep全称是Global Regular Expression Print,表示全局正则表达式版本,它能使用正则表达式搜索文本,并把匹配的行打印出来。

在Shell脚本中,grep通过返回一个状态值来表示搜索的状态:

  • 0:匹配成功。
  • 1:匹配失败。
  • 2:搜索的文件不存在。

命令格式:grep [参数] [正则表达式] [文件]

命令常用参数说明:

参数 说明
-c或--count 计算符合样式的列数
-d recurse或-r 指定要查找的是目录而非文件
-e [范本样式] 指定字符串做为查找文件内容的样式
-E 或 --extended-regexp 将样式为延伸的正则表达式来使用
-F 或 --fixed-regexp 将样式视为固定字符串的列表
-G 或 --basic-regexp 将样式视为普通的表示法来使用
-i 或 --ignore-case 忽略字符大小写的差别
-n 或 --line-number 在显示符合样式的那一行之前,标示出该行的列数编号
-v 或 --revert-match 显示不包含匹配文本的所有行

命令使用示例:

  • 查看sshd服务配置文件中监听端口配置所在行编号。
ot@iZuf6alhzbs7zplaazxrhxZ ~]# grep -n Port /etc/ssh/ssh_config
41:#   Port 22
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 查询字符串在文本中出现的列数。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# grep -c localhost /etc/hosts
2
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 反向查找,不显示符合条件的行。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# ps -ef | grep sshd
root      1100     1  0 09:28 ?        00:00:00 /usr/sbin/sshd -D
root      1452  1100  0 09:29 ?        00:00:00 sshd: root@pts/0
root     11868  1454  0 10:58 pts/0    00:00:00 grep --color=auto sshd
[root@iZuf6alhzbs7zplaazxrhxZ ~]# ps -ef | grep -v grep | grep sshd
root      1100     1  0 09:28 ?        00:00:00 /usr/sbin/sshd -D
root      1452  1100  0 09:29 ?        00:00:00 sshd: root@pts/0
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 以递归的方式查找目录下含有关键字的文件。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# grep -r *.sh /etc
Binary file /etc/udev/hwdb.bin matches
/etc/NetworkManager/dispatcher.d/11-dhclient:    for f in $ETCDIR/dhclient.d/*.sh; do
/etc/bashrc:    for i in /etc/profile.d/*.sh; do
/etc/profile:for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 使用正则表达式匹配httpd配置文件中异常状态码响应的相关配置。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# grep 'ntp[0-9].aliyun.com' /etc/ntp.conf
restrict ntp1.aliyun.com nomodify notrap nopeer noquery
restrict ntp2.aliyun.com nomodify notrap nopeer noquery
restrict ntp3.aliyun.com nomodify notrap nopeer noquery
restrict ntp4.aliyun.com nomodify notrap nopeer noquery
restrict ntp5.aliyun.com nomodify notrap nopeer noquery
restrict ntp6.aliyun.com nomodify notrap nopeer noquery
server ntp1.aliyun.com iburst minpoll 4 maxpoll 10
server ntp2.aliyun.com iburst minpoll 4 maxpoll 10
server ntp3.aliyun.com iburst minpoll 4 maxpoll 10
server ntp4.aliyun.com iburst minpoll 4 maxpoll 10
server ntp5.aliyun.com iburst minpoll 4 maxpoll 10
server ntp6.aliyun.com iburst minpoll 4 maxpoll 10
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 

sed

命令描述:sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用。

\1. 处理时,把当前处理的行存储在临时缓冲区中,称为模式空间(pattern space)。
\2. 接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
\3. 接着处理下一行,这样不断重复,直到文件末尾。

注意:

  • sed命令不会修改原文件,例如删除命令只表示某些行不打印输出,而不是从原文件中删去。
  • 如果要改变源文件,需要使用-i选项。

命令格式:sed [参数] [动作] [文件]

参数说明:

参数 说明
-e [script] 执行多个script
-f [script文件] 执行指定script文件
-n 仅显示script处理后的结果
-i 输出到原文件,静默执行(修改原文件)

动作说明:

动作 说明
a 在行后面增加内容
c 替换行
d 删除行
i 在行前面插入
p 打印相关的行
s 替换内容

命令使用示例:

  • 删除第3行到最后一行内容。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# sed '3,$d' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
  • 在最后一行新增行。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# sed '$a admin:x:1000:1000:admin:/home/admin:/bin/bash' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
admin:x:1000:1000:admin:/home/admin:/bin/bash
  • 替换内容。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# sed 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted


[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 替换行。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# sed '1c abcdefg' /etc/passwd
abcdefg
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 

awk

命令描述:和 sed 命令类似,awk 命令也是逐行扫描文件(从第 1 行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。

命令格式:awk [参数] [脚本] [文件]

参数说明:

参数 说明
-F fs 指定以fs作为输入行的分隔符,awk 命令默认分隔符为空格或制表符
-f file 读取awk脚本
-v val=val 在执行处理过程之前,设置一个变量var,并给其设置初始值为val

内置变量:

变量 用途
FS 字段分隔符
$n 指定分隔的第n个字段,如$1、$3分别表示第1、第三列
$0 当前读入的整行文本内容
NF 记录当前处理行的字段个数(列数)
NR 记录当前已读入的行数
FNR 当前行在源文件中的行号

awk中还可以指定脚本命令的运行时机。默认情况下,awk会从输入中读取一行文本,然后针对该行的数据执行程序脚本,但有时可能需要在处理数据前运行一些脚本命令,这就需要使用BEGIN关键字,BEGIN会在awsk读取数据前强制执行该关键字后指定的脚本命令。

和BEGIN关键字相对应,END关键字允许我们指定一些脚本命令,awk会在读完数据后执行它们。

命令使用示例:

  • 查看本机IP地址。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# ifconfig eth0 |awk '/inet/{print $2}'
172.16.2.57
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 查看本机剩余磁盘容量。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# df -h |awk '/\/$/{print $4}'
36G
[root@iZuf6alhzbs7zplaazxrhxZ ~]#
  • 统计系统用户个数。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# awk -F: '$3<1000{x++} END{print x}' /etc/passwd
21
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 输出其中登录Shell不以nologin结尾(对第7个字段做!~反向匹配)的用户名、登录Shell信息。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# awk -F: '$7!~/nologin$/{print $1,$7}' /etc/passwd
root /bin/bash
sync /bin/sync
shutdown /sbin/shutdown
halt /sbin/halt
  • 输出/etc/passwd文件中前三行记录的用户名和用户uid。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# head -3 /etc/passwd | awk  'BEGIN{FS=":";print "name\tuid"}{print $1,"\t"$3}END{print "sum lines "NR}'
name    uid
root    0
bin     1
daemon  2
sum lines 3
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 查看tcp连接数。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LISTEN 1
ESTABLISHED 2
TIME_WAIT 1
[root@iZuf6alhzbs7zplaazxrhxZ ~]#
  • 关闭指定服务的所有的进程。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# ps -ef | grep httpd | awk {'print $2'} | xargs kill -9
kill: sending signal to 12171 failed: No such process
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 

cut

命令描述:cut命令主要用来切割字符串,可以对输入的数据进行切割然后输出。

命令格式:cut [参数] [文件]

参数说明:

参数 说明
-b 以字节为单位进行分割
-c 以字符为单位进行分割
-d 自定义分隔符,默认为制表符

命令使用示例:

  • 按字节进行切割。

img

  • 按字符进行切割。

img

  • 按指定字符进行切割。

img

tr

命令描述:tr命令用于对来自标准输入的字符进行替换、压缩和删除。

命令格式:tr [参数] [文本]

参数说明:

参数 说明
-c 反选指定字符
-d 删除指定字符
-s 将重复的字符缩减成一个字符
-t [第一字符集] [第二字符集] 删除第一字符集较第二字符集多出的字符,使两个字符集长度相等

命令使用示例:

  • 将输入字符由大写转换为小写。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 删除字符。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# echo "hello 123 world 456" | tr -d '0-9'
hello  world 
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 
  • 压缩字符。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# echo "thissss is      a text linnnnnnne." | tr -s ' sn'
this is a text line.
  • 产生随机密码。
[root@iZuf6alhzbs7zplaazxrhxZ ~]# cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c 13
EYHZ2wTtyC2VT
[root@iZuf6alhzbs7zplaazxrhxZ ~]# 

image-20220124111028317

image-20220124111106042

1月25日 动手实战-Linux系统管理入门深入解析动手实操

常用系统工作命令

echo

命令描述:echo命令用于在终端输出字符串或变量提取后的值。

命令格式:echo [字符串 | $变量]

命令用法示例:

  • 显示普通字符串
  • 显示变量

首先在shell环境中定义一个临时变量name。

使用echo命令将变量name的值显示到终端。

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# export name="Tom"
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# echo $name
Tom
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 
  • 显示结果定向至文件

以下命令会将文本This is a test text.输出重定向到文件test.txt中,如果文件已存在,将会覆盖文件内容,如果不存在则创建。其中>符号表示输出重定向。

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# echo "This is a test text." > test.txt

如果您希望将文本追加到文件内容最后,而不是覆盖它,请使用>>输出追加重定向符号。

  • 显示命令执行结果

以下命令将会在终端显示当前的工作路径。

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# echo `pwd`
/root

使用$(command)形式可以达到相同效果。

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# echo $(pwd)
/root

date

命令描述:date命令用于显示和设置系统的时间和日期。

命令格式:date [选项] [+格式]

其中,时间格式的部分控制字符解释如下:

字符 说明
%a 当地时间的星期名缩写(例如: 日,代表星期日)
%A 当地时间的星期名全称 (例如:星期日)
%b 当地时间的月名缩写 (例如:一,代表一月)
%B 当地时间的月名全称 (例如:一月)
%c 当地时间的日期和时间 (例如:2005年3月3日 星期四 23:05:25)
%C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
%d 按月计的日期(例如:01)
%D 按月计的日期;等于%m/%d/%y
%F 完整日期格式,等价于 %Y-%m-%d
%j 按年计的日期(001-366)
%p 按年计的日期(001-366)
%r 当地时间下的 12 小时时钟时间 (例如:11:11:04 下午)
%R 24 小时时间的时和分,等价于 %H:%M
%s 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
%T 时间,等于%H:%M:%S
%U 一年中的第几周,以周日为每星期第一天(00-53)
%x 当地时间下的日期描述 (例如:12/31/99)
%X 当地时间下的时间描述 (例如:23:13:48)
%w 一星期中的第几日(0-6),0 代表周一
%W 一年中的第几周,以周一为每星期第一天(00-53)

命令用法示例:

  • 按照默认格式查看当前系统时间
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# date
Tue Jan 25 22:29:13 CST 2022
  • 按照指定格式查看当前系统时间
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# date "+%Y-%m-%d %H:%M:%S"
2022-01-25 22:29:32
  • 查看今天是当年中的第几天
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# date "+%j"
025
  • 将系统的当前时间设置为2020年02月20日20点20分20秒
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# date -s "20200220 20:20:20"
Thu Feb 20 20:20:20 CST 2020
  • 校正系统时间,与网络时间同步

a. 安装ntp校时工具

yum -y install ntp

b. 用ntpdate从时间服务器更新时间

ntpdate time.nist.gov

image-20220125223208076

wget

命令描述:在终端中下载文件。

命令格式:wget [参数] 下载地址

参数说明:

参数 作用
-b 后台下载
-P 下载到指定目录
-t 最大重试次数
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载

命令使用示例:

下载一张图片到路径/root/static/img/中,-p参数默认值为当前路径,如果指定路径不存在会自动创建。

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# wget -P /root/static/img/ http://img.alicdn.com/tfs/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png
--2022-01-25 22:32:27--  http://img.alicdn.com/tfs/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png
Resolving img.alicdn.com (img.alicdn.com)... 101.37.183.186, 101.37.183.187, 240e:978:1403:0:3::3fb, ...
Connecting to img.alicdn.com (img.alicdn.com)|101.37.183.186|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5483908 (5.2M) [image/png]
Saving to: ‘/root/static/img/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png’

100%[============================================================================================>] 5,483,908   --.-K/s   in 0.1s    

2022-01-25 22:32:27 (47.0 MB/s) - ‘/root/static/img/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png’ saved [5483908/5483908]

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 

ps

命令描述:ps命令用于查看系统中的进程状态。

命令格式:ps [参数]。

命令参数说明:

参数 作用
-a 显示现行终端机下的所有程序,包括其他用户的程序
-u 以用户为主的格式来显示程序状况
-x 显示没有控制终端的进程,同时显示各个命令的具体路径
-e 列出程序时,显示每个程序所使用的环境变量
-f 显示当前所有的进程
-t 指定终端机编号,并列出属于该终端机的程序的状况

命令使用示例:

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# ps -ef | grep sshd
root      1098     1  0 22:25 ?        00:00:00 /usr/sbin/sshd -D
root      1338  1098  0 22:25 ?        00:00:00 sshd: root@pts/0
root      1806  1340  0 22:33 pts/0    00:00:00 grep --color=auto sshd

top

命令描述:top命令动态地监视进程活动与系统负载等信息。

命令使用示例:

top

image-20220125223411321

命令输出参数解释:

以上命令输出视图中分为两个区域,一个统计信息区,一个进程信息区。

  • 统计信息区

    • 第一行信息依次为:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
    • 第二行信息依次为:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
    • 第三行信息依次为:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
    • 第四行信息依次为:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
    • 第五行信息依次为:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、预加载内存量。
  • 进程信息区
列名 含义
PID 进程ID
USER 进程所有者的用户名
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb
RES 进程使用的、未被换出的物理内存大小,单位kb
SHR 共享内存大小,单位kb
S 进程状态D:不可中断的睡眠状态R:正在运行S:睡眠T:停止Z:僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名

按 q 键退出监控页面。

pidof

命令描述:pidof命令用于查询指定服务进程的PID值。

命令格式:pidof [服务名称]。

命令参数说明:

参数 说明
-s 仅返回一个进程号
-c 只显示运行在root目录下的进程,这个选项只对root用户有效
-o 忽略指定进程号的进程
-x 显示由脚本开启的进程

命令使用示例:

查询出crond服务下的所有进程ID。

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# pidof crond
997

kill

命令描述:kill命令用于终止指定PID的服务进程。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。

命令格式:kill [参数] [进程PID]。

命令使用示例:

删除pid为1247的进程。

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# kill -9 1247
-bash: kill: (1247) - No such process

killall

命令描述:killall命令用于终止指定名称的服务对应的全部进程。

命令格式:killall [进程名称]。

命令使用示例:

删除crond服务下的所有进程。

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# killall crond

系统状态检测命令

ifconfig

命令描述:ifconfig命令用于获取网卡配置与网络状态等信息。

命令使用示例:

  • 获取网卡配置与网络状态等信息。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.85.130  netmask 255.255.0.0  broadcast 172.16.255.255
        ether 00:16:3e:1c:c3:2f  txqueuelen 1000  (Ethernet)
        RX packets 71914  bytes 101569893 (96.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12954  bytes 1548528 (1.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 

命令输出说明:

  • 第一部分的第一行显示网卡状态信息。

    • eth0表示第一块网卡。
    • UP代表网卡开启状态。
    • RUNNING代表网卡的网线被接上。
    • MULTICAST表示支持组播。
  • 第二行显示网卡的网络信息。

    • inet(IP地址):172.16.132.195。
    • broadcast(广播地址):172.16.143.255。
    • netmask(掩码地址):255.255.240.0。
  • RX表示接收数据包的情况,TX表示发送数据包的情况。
  • lo表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统显示为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。

uname

命令描述:uname命令用于查看系统内核与系统版本等信息。

命令语法:uname -amnrsv[--version]

命令使用示例:

  • 显示系统信息。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# uname -a
Linux iZuf6cfxk8k2c6scbypr2yZ 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 
  • 显示当前系统的硬件架构。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# uname -i
x86_64
  • 显示操作系统发行编号。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# uname -r
3.10.0-1062.18.1.el7.x86_64
  • 显示操作系统名称。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# uname -s
Linux
  • 显示主机名称。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# uname -n
iZuf6cfxk8k2c6scbypr2yZ

uptime

命令描述:uptime 用于查看系统的负载信息。

命令使用示例:

  • 查看系统的负载信息。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# uptime
 22:39:51 up 14 min,  1 user,  load average: 0.00, 0.05, 0.05
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 

命令输出说明:

负载信息 命令输出值
当前服务器时间 14:20:27
当前服务器运行时长 2 min
当前用户数 2 users
当前负载情况 load average: 0.03, 0.04, 0.02(分别取1min,5min,15min的均值)

free

命令描述:free用于显示当前系统中内存的使用量信息。

命令语法:free -bkmotV

命令参数说明:

参数 说明
-b 以Byte为单位显示内存使用情况
-k 以KB为单位显示内存使用情况
-m 以MB为单位显示内存使用情况
-h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。

命令使用示例:

  • 显示当前系统中内存的使用量信息。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           990M        103M        280M        452K        607M        744M
Swap:            0B          0B          0B
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 

命令输出说明:

参数 说明
total 物理内存总数
used 已经使用的内存数
free 空间的内存数
share 多个进程共享的内存总额
buff/cache 应用使用内存数
available 可用的内存数
Swap 虚拟内存(阿里云ECS服务器默认不开启虚拟内存)

who

命令描述:who 命令显示关于当前在本地系统上的所有用户的信息。

命令使用示例:

  • 显示当前登录系统的用户
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# who
root     pts/0        2022-01-25 22:25 (118.31.243.99)
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 
  • 显示用户登录来源
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# who -l -H
NAME     LINE         TIME             IDLE          PID COMMENT
LOGIN    tty1         2022-01-25 22:25              1007 id=tty1
LOGIN    ttyS0        2022-01-25 22:25              1008 id=tyS0
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 
  • 只显示当前用户
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# who -m -H
NAME     LINE         TIME             COMMENT
root     pts/0        2022-01-25 22:25 (118.31.243.99)
  • 精简模式显示
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# who -q
root
# users=1

last

命令描述: last 命令用于显示用户最近登录信息。

命令使用示例:

  • 显示用户最近登录信息。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# last
root     pts/0        118.31.243.99    Tue Jan 25 22:25   still logged in   
root     pts/0        118.31.243.111   Tue Jan 25 22:25 - 22:25  (00:00)    
reboot   system boot  3.10.0-1062.18.1 Wed Jan 26 06:24 - 22:42  (-7:-42)   

wtmp begins Tue Nov 30 15:31:43 2021
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# 

由于这些信息都是以日志文件的形式保存在系统中,黑客可以很容易地对内容进行篡改,所以该命令输出的信息并不能作为服务器是否被入侵的依据。

history

命令描述:history命令用于显示历史执行过的命令。

bash默认记录1000条执行过的历史命令,被记录在~/.bash_history文件中。

命令使用示例:

  • 显示最新10条执行过的命令。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# history 10
   24  uname -s
   25  uname -n
   26  uptime
   27  free -h
   28  who
   29  who -l -H
   30  who -m -H
   31  who -q
   32  last
   33  history 10
  • 清除历史记录。
[root@iZuf6cfxk8k2c6scbypr2yZ ~]# history -c

1月26日 动手实战-Linux磁盘管理入门深入解析动手实操

image-20220126134346894

磁盘管理命令

df命令

df命令描述:该命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

df命令语法:

df [参数] [目录或文件名]

参数说明:

参数 说明
-a 列出所有的文件系统,包括系统特有的/proc等文件系统。
-k 以KBytes为单位,返回各文件系统容量。
-m 以MBytes为单位,返回各文件系统容量。
-h 以GBytes、MBytes、KBytes为单位,返回各文件系统容量。
-H 以M=1000K取代M=1024K的进位方式显示各文件系统容量。
-T 显示文件系统类型。
-i 显示inode信息。

df命令使用示例:

示例一:显示磁盘使用情况。

执行如下命令,显示磁盘使用情况。

[root@iZuf66sqqurhamk8gweattZ ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          496768       0    496768   0% /dev
tmpfs             507280       0    507280   0% /dev/shm
tmpfs             507280     456    506824   1% /run
tmpfs             507280       0    507280   0% /sys/fs/cgroup
/dev/vda1       41152812 1971352  37277752   6% /
tmpfs             101456       0    101456   0% /run/user/0

示例二:以inode模式来显示磁盘使用情况。

执行如下命令,以inode模式来显示磁盘使用情况。

[root@iZuf66sqqurhamk8gweattZ ~]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
devtmpfs        124192   327  123865    1% /dev
tmpfs           126820     2  126818    1% /dev/shm
tmpfs           126820   388  126432    1% /run
tmpfs           126820    16  126804    1% /sys/fs/cgroup
/dev/vda1      2621440 60246 2561194    3% /
tmpfs           126820     1  126819    1% /run/user/0

示例三:显示系统内的所有特殊文件格式、名称及磁盘使用情况。

执行如下命令,显示系统内的所有特殊文件格式、名称及磁盘使用情况。

[root@iZuf66sqqurhamk8gweattZ ~]# df -aT
Filesystem     Type       1K-blocks    Used Available Use% Mounted on
sysfs          sysfs              0       0         0    - /sys
proc           proc               0       0         0    - /proc
devtmpfs       devtmpfs      496768       0    496768   0% /dev
securityfs     securityfs         0       0         0    - /sys/kernel/security
tmpfs          tmpfs         507280       0    507280   0% /dev/shm
devpts         devpts             0       0         0    - /dev/pts
tmpfs          tmpfs         507280     456    506824   1% /run
tmpfs          tmpfs         507280       0    507280   0% /sys/fs/cgroup
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/systemd
pstore         pstore             0       0         0    - /sys/fs/pstore
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/devices
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/net_cls,net_prio
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/hugetlb
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/cpuset
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/freezer
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/memory
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/cpu,cpuacct
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/blkio
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/perf_event
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/pids
configfs       configfs           0       0         0    - /sys/kernel/config
/dev/vda1      ext4        41152812 1971388  37277716   6% /
systemd-1      autofs             0       0         0    - /proc/sys/fs/binfmt_misc
debugfs        debugfs            0       0         0    - /sys/kernel/debug
mqueue         mqueue             0       0         0    - /dev/mqueue
hugetlbfs      hugetlbfs          0       0         0    - /dev/hugepages
tmpfs          tmpfs         101456       0    101456   0% /run/user/0

示例四:以GBytes、MBytes、KBytes等格式显示各文件系统容量。

执行如下命令,以GBytes、MBytes、KBytes等格式显示各文件系统容量。

[root@iZuf66sqqurhamk8gweattZ ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        486M     0  486M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M  456K  495M   1% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda1        40G  1.9G   36G   6% /
tmpfs           100M     0  100M   0% /run/user/0

du命令

du命令描述:查看磁盘使用空间。du与df命令不同点在于,du命令用于查看文件和目录磁盘的使用空间。

du命令语法:

du [参数] [文件或目录名称]

参数说明:

参数 说明
-a 列出所有的文件与目录容量。
-h 以G、M、K为单位,返回容量。
-s 列出总量。
-S 列出不包括子目录下的总量。
-k 以KBytes为单位,返回容量。
-m 以MBytes为单位,返回容量。

du命令使用示例:

示例一:列出当前目录下的所有文件夹的容量。

执行如下命令,列出当前目录下的所有文件夹的容量。

[root@iZuf66sqqurhamk8gweattZ ~]# du
4       ./.ssh
8       ./.pip
44      .

示例二:列出当前目录下的所有文件夹和文件的容量。

执行如下命令,列出当前目录下的所有文件夹和文件的容量。

[root@iZuf66sqqurhamk8gweattZ ~]# du -a
0       ./.ssh/authorized_keys
4       ./.ssh
4       ./.pydistutils.cfg
4       ./.bash_logout
4       ./.tcshrc
4       ./.bash_profile
4       ./.bash_history
4       ./.bashrc
4       ./.pip/pip.conf
8       ./.pip
4       ./.cshrc
44      .

示例三:列出当前目录下的所有文件夹和文件的容量,并以G、M、K格式显示容量。

执行如下命令,列出当前目录下的所有文件夹和文件的容量。

[root@iZuf66sqqurhamk8gweattZ ~]# du -ah
0       ./.ssh/authorized_keys
4.0K    ./.ssh
4.0K    ./.pydistutils.cfg
4.0K    ./.bash_logout
4.0K    ./.tcshrc
4.0K    ./.bash_profile
4.0K    ./.bash_history
4.0K    ./.bashrc
4.0K    ./.pip/pip.conf
8.0K    ./.pip
4.0K    ./.cshrc
44K     .

示例四:列出根目录底下每个目录所占用的容量,并以MBytes单位显示容量。

执行如下命令,列出根目录底下每个目录所占用的容量,并以MBytes单位显示容量。

[root@iZuf66sqqurhamk8gweattZ ~]# du -sm /*
0       /bin
146     /boot
0       /dev
34      /etc
1       /home
0       /lib
0       /lib64
1       /lost+found
1       /media
1       /mnt
1       /opt
du: cannot access ‘/proc/1834/task/1834/fd/4’: No such file or directory
du: cannot access ‘/proc/1834/task/1834/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/1834/fd/4’: No such file or directory
du: cannot access ‘/proc/1834/fdinfo/4’: No such file or directory
0       /proc
1       /root
1       /run
0       /sbin
1       /srv
0       /sys
1       /tmp
1573    /usr
126     /var

fdisk命令

fdisk命令描述:该命令用于磁盘分区。

fdisk命令语法:fdisk [-l] 装置名称

参数说明:

参数 说明
-l 输出后面装置名称的所有的分区内容。若仅有 fdisk -l时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

fdisk命令使用示例:

示例一:列出系统所有装置的分区信息。

执行如下命令,列出系统所有装置的分区信息。

fdisk -l

示例二:列出系统中的根目录所在磁盘,并查阅该硬盘内的相关信息。

a. 执行如下命令,找出根目录所在磁盘名。

[root@iZuf66sqqurhamk8gweattZ ~]# df /
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       41152812 1971460  37277644   6% /

b. 执行如下命令,对磁盘/dev/vda进行分区操作。

[root@iZuf66sqqurhamk8gweattZ ~]# fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): 

注意:

对磁盘进行分区操作时,磁盘名不包含数字。

c. 执行如下命令,获取帮助。

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help)

执行如下命令,查看磁盘状态。

Command (m for help): p

Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0002b49c

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux

Command (m for help): 

d. 执行如下命令,不存储任何操作并离开。

Command (m for help): q

[root@iZuf66sqqurhamk8gweattZ ~]# 

image-20220126135607267

1月27日 动手实战-Linux文件与权限入门深入解析动手实操

文件目录管理命令

ls

命令描述: ls命令用于显示指定工作目录下的内容。

命令格式:ls [参数] [目录名]。

参数说明:

参数 说明
-a 显示所有文件及目录(包括隐藏文件)
-l 将文件的权限、拥有者、文件大小等详细信息列出(ll等同于ls -l)
-r 将文件反序列出(默认按英文字母正序)
-t 将文件按创建时间正序列出
-R 递归遍历目录下文件

命令使用示例:

查看当前目录下的所有文件(包括隐藏文件)。

[root@iZuf61blsdoksjgrr149fbZ ~]# ll -a
total 44
dr-xr-x---.  4 root root 4096 Jan 27 09:58 .
dr-xr-xr-x. 18 root root 4096 Jan 27 09:57 ..
-rw-------   1 root root   95 Jan 27 09:58 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
drwxr-xr-x   2 root root 4096 Apr 26  2020 .pip
-rw-r--r--   1 root root  206 Jan 27 09:57 .pydistutils.cfg
drwx------   2 root root 4096 Apr 26  2020 .ssh
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
[root@iZuf61blsdoksjgrr149fbZ ~]# 

pwd

命令描述:获取当前工作目录的绝对路径。

命令使用示例:

[root@iZuf61blsdoksjgrr149fbZ ~]# pwd
/root

cd

命令描述:cd命令用于切换工作目录。

命令使用示例:

[root@iZuf61blsdoksjgrr149fbZ ~]# cd /usr/local/etc/
[root@iZuf61blsdoksjgrr149fbZ etc]# pwd
/usr/local/etc
[root@iZuf61blsdoksjgrr149fbZ etc]# cd ../..
[root@iZuf61blsdoksjgrr149fbZ usr]# pwd
/usr
[root@iZuf61blsdoksjgrr149fbZ usr]# cd
[root@iZuf61blsdoksjgrr149fbZ ~]# pwd
/root
[root@iZuf61blsdoksjgrr149fbZ ~]# 

在路径表示中:

  • 一个半角句号(.)表示当前目录,例如路径./app/log等同于app/log。
  • 两个半角句号(..)表示上级目录,例如路径/usr/local/../src等同于/usr/src,其中local和src目录同级。

cd命令的默认参数为~,符号~表示当前用户的家目录,即在root用户登录时,命令cd、cd ~和cd /root执行效果相同。

touch

命令描述:touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

命令格式:touch [参数] [文件]。

参数说明:

参数 说明
-c 如果指定文件不存在,不会建立新文件
-r 使用参考文件的时间记录
-t 设置文件的时间记录

命令使用示例:

  • 创建两个空文件。
[root@iZuf61blsdoksjgrr149fbZ ~]# touch demo1.txt demo2.txt
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 27 10:04 demo1.txt
-rw-r--r-- 1 root root 0 Jan 27 10:04 demo2.txt
[root@iZuf61blsdoksjgrr149fbZ ~]# 
  • 修改demo1.txt的时间记录为当前系统时间。
[root@iZuf61blsdoksjgrr149fbZ ~]# touch demo1.txt 
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 27 10:05 demo1.txt
-rw-r--r-- 1 root root 0 Jan 27 10:04 demo2.txt
  • 更新demo2.txt的时间记录,使其和demo1.txt的时间记录相同。
[root@iZuf61blsdoksjgrr149fbZ ~]# touch -r demo1.txt demo2.txt 
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 27 10:05 demo1.txt
-rw-r--r-- 1 root root 0 Jan 27 10:05 demo2.txt

mkdir

命令描述:mkdir命令用于新建子目录。-p参数确保目录名称存在,不存在的就新建一个。

[root@iZuf61blsdoksjgrr149fbZ ~]# mkdir -p a/b/c/d

命令使用示例:

新建目录a/b/c/d,并使用tree命令查看创建后的目录结构。

[root@iZuf61blsdoksjgrr149fbZ ~]# tree
.
├── a
│   └── b
│       └── c
│           └── d
├── demo1.txt
└── demo2.txt

4 directories, 2 files
[root@iZuf61blsdoksjgrr149fbZ ~]# 

rm

命令描述:rm命令用于删除一个文件或者目录。

命令格式:rm [参数] [文件]。

参数说明:

参数 说明
-i 删除前逐一询问确认
-f 无需确认,直接删除
-r 删除目录下所有文件

命令使用示例:

无需确认直接删除文件。

[root@iZuf61blsdoksjgrr149fbZ ~]# rm -rf demo*
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 4
drwxr-xr-x 3 root root 4096 Jan 27 10:06 a
[root@iZuf61blsdoksjgrr149fbZ ~]# 

无需确认直接删除目录a及其目录下所有子目录和文件。

[root@iZuf61blsdoksjgrr149fbZ ~]# rm -rf a
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 0
[root@iZuf61blsdoksjgrr149fbZ ~]# 

cp

命令描述: cp命令主要用于复制文件或目录。

命令格式:cp [参数] [源文件] [目标文件]。

参数说明:

参数 说明
-d 复制时保留链接
-f 覆盖已经存在的目标文件而不给出提示
-i 覆盖前询问
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r 复制目录及目录内的所有项目

命令使用示例:

将目录c/d中的所有内容复制到目录a/b下。

[root@iZuf61blsdoksjgrr149fbZ ~]# mkdir -p a/b
[root@iZuf61blsdoksjgrr149fbZ ~]# mkdir -p c/b
[root@iZuf61blsdoksjgrr149fbZ ~]# tree
.
├── a
│   └── b
└── c
    └── b

4 directories, 0 files
[root@iZuf61blsdoksjgrr149fbZ ~]# cp -r c a/b/
[root@iZuf61blsdoksjgrr149fbZ ~]# tree
.
├── a
│   └── b
│       └── c
│           └── b
└── c
    └── b

6 directories, 0 files
[root@iZuf61blsdoksjgrr149fbZ ~]#

mv

命令描述: mv命令用来为文件或目录改名、或将文件或目录移入其它位置。

命令格式:mv [参数] [源文件] [目标文件]

参数说明:

参数 说明
-i 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f 如果目标文件已经存在,不会询问而直接覆盖

命令使用示例:

  • 将文件名a.txt改为b.txt。
[root@iZuf61blsdoksjgrr149fbZ ~]# touch a.txt
[root@iZuf61blsdoksjgrr149fbZ ~]# ls
a  a.txt  c
[root@iZuf61blsdoksjgrr149fbZ ~]# mv a.txt b.txt
[root@iZuf61blsdoksjgrr149fbZ ~]# ls
a  b.txt  c
  • 将c目录移动到a/b/c/d/下。
[root@iZuf61blsdoksjgrr149fbZ ~]# mv c a/b/c/d/
[root@iZuf61blsdoksjgrr149fbZ ~]# tree
.
├── a
│   └── b
│       └── c
│           ├── b
│           └── d
│               └── b
└── b.txt

6 directories, 1 file
[root@iZuf61blsdoksjgrr149fbZ ~]# 
  • 将当前目录内容全部移动到/tmp目录中。
[root@iZuf61blsdoksjgrr149fbZ ~]# mv ./* /tmp

rename

命令描述:rename命令用字符串替换的方式批量改变文件名。rename命令有C语言和Perl语言两个版本,这里介绍C语言版本的rename命令,不支持正则表达式。

命令使用示例:

  • 将当前目录下所有文件名中的字符串demo改为大写的字符串DEMO。
[root@iZuf61blsdoksjgrr149fbZ ~]# touch demo1.txt demo2.txt
[root@iZuf61blsdoksjgrr149fbZ ~]# ls
demo1.txt  demo2.txt
[root@iZuf61blsdoksjgrr149fbZ ~]# rename demo DEMO *
[root@iZuf61blsdoksjgrr149fbZ ~]# ls
DEMO1.txt  DEMO2.txt
  • 将当前目录下所有.txt文件后缀都改为text。
[root@iZuf61blsdoksjgrr149fbZ ~]# rename .txt .text *
[root@iZuf61blsdoksjgrr149fbZ ~]# ls
DEMO1.text  DEMO2.text
[root@iZuf61blsdoksjgrr149fbZ ~]#

文件权限

ls命令可以查看Linux系统上的文件、目录和设备的权限。

[root@iZuf61blsdoksjgrr149fbZ ~]# ls -l /boot/
total 140804
-rw-r--r--  1 root root   153187 Mar 18  2020 config-3.10.0-1062.18.1.el7.x86_64
-rw-r--r--. 1 root root   152976 Aug  8  2019 config-3.10.0-1062.el7.x86_64
drwxr-xr-x. 3 root root     4096 Apr 26  2020 efi
drwxr-xr-x. 2 root root     4096 Apr 26  2020 grub
drwx------. 5 root root     4096 Apr 26  2020 grub2
-rw-------. 1 root root 57931787 Apr 26  2020 initramfs-0-rescue-20200426154603174201708213343640.img
-rw-------  1 root root 18197454 Apr 26  2020 initramfs-3.10.0-1062.18.1.el7.x86_64.img
-rw-------  1 root root 10734218 Apr 26  2020 initramfs-3.10.0-1062.18.1.el7.x86_64kdump.img
-rw-------  1 root root 18198855 Apr 26  2020 initramfs-3.10.0-1062.el7.x86_64.img
-rw-------  1 root root 10732204 Apr 26  2020 initramfs-3.10.0-1062.el7.x86_64kdump.img
-rw-r--r--  1 root root   318991 Mar 18  2020 symvers-3.10.0-1062.18.1.el7.x86_64.gz
-rw-r--r--. 1 root root   318717 Aug  8  2019 symvers-3.10.0-1062.el7.x86_64.gz
-rw-------  1 root root  3600165 Mar 18  2020 System.map-3.10.0-1062.18.1.el7.x86_64
-rw-------. 1 root root  3594971 Aug  8  2019 System.map-3.10.0-1062.el7.x86_64
-rwxr-xr-x. 1 root root  6734016 Apr 26  2020 vmlinuz-0-rescue-20200426154603174201708213343640
-rwxr-xr-x  1 root root  6738112 Mar 18  2020 vmlinuz-3.10.0-1062.18.1.el7.x86_64
-rwxr-xr-x. 1 root root  6734016 Aug  8  2019 vmlinuz-3.10.0-1062.el7.x86_64

上述ls -l命令中显示的第一列就是文件权限信息,共11位字符,分5部分。

  • 第1位表示存档类型,d表示目录,-表示一般文件。
  • 第2~4位表示当前用户的权限(属主权限)。
  • 第5~7位表示同用户组的用户权限(属组权限)。
  • 第8~10位表示不同用户组的用户权限(其他用户权限)。
  • 第11位是一个半角句号.,表示SELinux安全标签。

上述ls -l命令中显示的第一列就是文件权限信息,共11位字符,分5部分。

  • 第1位表示存档类型,d表示目录,-表示一般文件。
  • 第2~4位表示当前用户的权限(属主权限)。
  • 第5~7位表示同用户组的用户权限(属组权限)。
  • 第8~10位表示不同用户组的用户权限(其他用户权限)。
  • 第11位是一个半角句号.,表示SELinux安全标签。

chmod命令

chmod命令用于修改文件权限mode,-R参数以递归方式对子目录和文件进行修改。

命令使用示例:

  1. 新建名为hello.sh的Shell脚本,该脚本将会输出Hello World。用ll命令可以看到新建的脚本没有执行权限,其权限用八进制表示为644。
[root@iZuf61blsdoksjgrr149fbZ ~]# echo "echo 'Hello World'" > hello.sh
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 4
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO1.text
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO2.text
-rw-r--r-- 1 root root 19 Jan 27 10:16 hello.sh
[root@iZuf61blsdoksjgrr149fbZ ~]# 
  1. 将hello.sh文件增加属主的执行权限。
[root@iZuf61blsdoksjgrr149fbZ ~]# chmod u+x hello.sh 
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 4
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO1.text
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO2.text
-rwxr--r-- 1 root root 19 Jan 27 10:16 hello.sh
[root@iZuf61blsdoksjgrr149fbZ ~]# 
  1. 将hello.sh文件撤销属主的执行权限。
[root@iZuf61blsdoksjgrr149fbZ ~]# chmod u-x hello.sh 
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 4
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO1.text
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO2.text
-rw-r--r-- 1 root root 19 Jan 27 10:16 hello.sh
[root@iZuf61blsdoksjgrr149fbZ ~]# 
  1. 将hello.sh文件权限修改为八进制表示的744权限。
[root@iZuf61blsdoksjgrr149fbZ ~]# chmod 744 hello.sh 
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 4
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO1.text
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO2.text
-rwxr--r-- 1 root root 19 Jan 27 10:16 hello.sh
[root@iZuf61blsdoksjgrr149fbZ ~]# 
  1. 使用bash命令解释器执行hello.sh脚本文件。
[root@iZuf61blsdoksjgrr149fbZ ~]# /bin/bash hello.sh 
Hello World
[root@iZuf61blsdoksjgrr149fbZ ~]# 

其中,u+x表示增加属主的执行权限,u表示属主,g表示属组,o表示其他,a表示所有用户。

chown命令

chown命令修改文件的属主和属组;-R参数以递归方式对子目录和文件进行修改;ls -l命令显示的第三列和第四列就是文件的属主和属组信息。

命令使用示例:

  1. 新建一个文本文件test.txt,用ll命令可以看到该文件的属主和属组是root。whoami命令可以查看当前Shell环境登录的用户名。

    [root@iZuf61blsdoksjgrr149fbZ ~]# whoami 
    root
    [root@iZuf61blsdoksjgrr149fbZ ~]# touch test.txt
    [root@iZuf61blsdoksjgrr149fbZ ~]# ll
    total 4
    -rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO1.text
    -rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO2.text
    -rwxr--r-- 1 root root 19 Jan 27 10:16 hello.sh
    -rw-r--r-- 1 root root  0 Jan 27 10:19 test.txt
    [root@iZuf61blsdoksjgrr149fbZ ~]# 
  2. 创建两个用户。

    [root@iZuf61blsdoksjgrr149fbZ ~]# adduser test
    [root@iZuf61blsdoksjgrr149fbZ ~]# passwd test
    Changing password for user test.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@iZuf61blsdoksjgrr149fbZ ~]# 
  3. 修改test.txt文件的属主用户为test。

    [root@iZuf61blsdoksjgrr149fbZ ~]# chown test test.txt 
    [root@iZuf61blsdoksjgrr149fbZ ~]# ll
    total 4
    -rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO1.text
    -rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO2.text
    -rwxr--r-- 1 root root 19 Jan 27 10:16 hello.sh
    -rw-r--r-- 1 test root  0 Jan 27 10:19 test.txt
    [root@iZuf61blsdoksjgrr149fbZ ~]# 
  4. 修改test.txt文件的属主和属组为root。

    [root@iZuf61blsdoksjgrr149fbZ ~]# chown root:root test.txt 
    [root@iZuf61blsdoksjgrr149fbZ ~]# ll
    total 4
    -rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO1.text
    -rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO2.text
    -rwxr--r-- 1 root root 19 Jan 27 10:16 hello.sh
    -rw-r--r-- 1 root root  0 Jan 27 10:19 test.txt
    [root@iZuf61blsdoksjgrr149fbZ ~]#

chgrp命令

chgrp命令用于修改文件的属组。

命令使用示例:

将test.txt文件的属组改为root。

[root@iZuf61blsdoksjgrr149fbZ ~]# chgrp root test.txt 
[root@iZuf61blsdoksjgrr149fbZ ~]# ll
total 4
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO1.text
-rw-r--r-- 1 root root  0 Jan 27 10:12 DEMO2.text
-rwxr--r-- 1 root root 19 Jan 27 10:16 hello.sh
-rw-r--r-- 1 root root  0 Jan 27 10:19 test.txt

image-20220127102602812

1月28日 动手实战-Linux文件管理入门深入解析动手实操

image-20220128221713339

磁盘管理命令

  1. cat命令。

cat命令描述:该命令用于连接文件并打印到标准输出设备上。

cat命令语法:

cat [参数] [文件名]

参数说明:

参数 说明
-n 由1开始对所有输出的行数进行编号。
-b 由1开始对所有输出的行数进行编号,对于空白行不编号。
-s 当遇到有连续两行以上的空白行,就替换为一行的空白行。
-E 在每行结束处显示$。
-T 将 TAB 字符显示为^I。

cat命令使用示例:

a. 执行如下命令,将一个自增序列写入test1.txt文件中。

b. 执行如下命令,查看文件test1.txt内容。

[root@iZuf686a5zkkp1wwl53xjqZ ~]# for i in $(seq 1 10); do echo $i >> test1.txt ; done
[root@iZuf686a5zkkp1wwl53xjqZ ~]# cat test1.txt
1
2
3
4
5
6
7
8
9
10
[root@iZuf686a5zkkp1wwl53xjqZ ~]#

c. 执行如下命令,将test1.txt的文件内容加上行号后输入到test2.txt文件。

d. 执行如下命令,查看文件test2.txt内容。

[root@iZuf686a5zkkp1wwl53xjqZ ~]# cat -n test1.txt > test2.txt
[root@iZuf686a5zkkp1wwl53xjqZ ~]# cat test2.txt
     1  1
     2  2
     3  3
     4  4
     5  5
     6  6
     7  7
     8  8
     9  9
    10  10

e. 执行如下命令,将test1.txt文件内容清空。

f. 执行如下命令,查看文件test1.txt内容。

返回结果如下所示,您可以看到test1.txt文件没有任何内容。

[root@iZuf686a5zkkp1wwl53xjqZ ~]# cat /dev/null > test1.txt
[root@iZuf686a5zkkp1wwl53xjqZ ~]# cat test1.txt
  1. cmp命令。

cmp命令描述:该命令用于比较两个文件是否有差异。当相互比较的两个文件完全一样时,该指令不会显示任何信息。否则会标示出第一个不同之处的字符和列数编号。当不指定任何文件名称,或文件名为"-",则cmp指令会从标准输入设备读取数据。

cmp命令语法:

cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]

参数说明:

参数 说明
-c 除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i <字符数目> 指定一个数目。
-l 标示出所有不一样的地方。
-s 不显示错误信息。
-v 显示版本信息。
--help 在线帮助。

cmp命令使用示例:

a. 执行如下命令,将一个自增序列1-5写入test1.txt文件中。

b. 执行如下命令,比较test1.txt文件和test2.txt文件是否相同。

返回结果如下所示,您可以看到test1.txt文件和test2.txt文件第一行就有不同之处。

[root@iZuf686a5zkkp1wwl53xjqZ ~]# for i in $(seq 1 5); do echo $i >> test1.txt ; done
[root@iZuf686a5zkkp1wwl53xjqZ ~]# cmp test1.txt test2.txt
test1.txt test2.txt differ: byte 1, line 1
[root@iZuf686a5zkkp1wwl53xjqZ ~]# 

\3. diff命令。

diff命令描述:该命令用于比较文件的差异。diff命令以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。

diff命令语法:

diff [参数] [文件或目录1] [文件或目录2]

参数说明:

参数 说明
-<行数> 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
-c 显示全部内文,并标出不同之处。
-u 以合并的方式来显示文件内容的不同。
-a diff预设只会逐行比较文本文件。
-b 不检查空格字符的不同。
-d 使用不同的演算法,以较小的单位来做比较。
-i 不检查大小写的不同。
-y 以并列的方式显示文件的异同之处。
-W<宽度> 在使用-y参数时,指定栏宽。

diff命令使用示例:

执行如下命令,比较test1.txt文件和test2.txt文件,以并排格式输出。

diff test1.txt test2.txt -y -W 50

返回结果如下所示,您可以看到test1.txt文件和test2.txt文件的不同之处。

[root@iZuf686a5zkkp1wwl53xjqZ ~]# diff test1.txt test2.txt -y -W 50
1                     |      1  1
2                     |      2  2
3                     |      3  3
4                     |      4  4
5                     |      5  5
                      >      6  6
                      >      7  7
                      >      8  8
                      >      9  9
                      >     10  10
[root@iZuf686a5zkkp1wwl53xjqZ ~]# 
  1. file命令。

file命令描述:该命令用于辨识文件类型。

file命令语法:

file [参数] [文件]

参数说明:

参数 说明
-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L 直接显示符号连接所指向的文件的类别。
-v 显示版本信息。
-z 解读压缩文件的内容。

file命令使用示例:

a. 执行如下命令,显示test1.txt文件类型。

返回结果如下所示,您可以看到test1.txt文件类型是ASCII text。

[root@iZuf686a5zkkp1wwl53xjqZ ~]# file test1.txt
test1.txt: ASCII text

b. 执行如下命令,显示test2.txt文件类型并不显示文件名称。

[root@iZuf686a5zkkp1wwl53xjqZ ~]# file -b test2.txt
ASCII text
  1. find命令。

find命令描述:该命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

find命令语法:

find [参数] [文件]

参数说明:

参数 说明
-mount 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件。
-amin n 在过去n分钟内被读取过文件。
-type c 文件类型是c的文件。
-cmin n 在过去n分钟内被修改过。
-name name 查找文件名称为name的文件。

find命令使用示例:

a. 执行如下命令,将当前目录及其子目录下所有文件后缀为.txt的文件列出来。

[root@iZuf686a5zkkp1wwl53xjqZ ~]# find . -name "*.txt"
./test1.txt
./test2.txt

b. 执行如下命令,查找系统中所有文件长度为0的普通文件,并列出它们的完整路径。

find / -type f -size 0 -exec ls -l {} \;

image-20220128222956925

目录
相关文章
|
7天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
29 1
|
1月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
49 0
Vanilla OS:下一代安全 Linux 发行版
|
8天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
9天前
|
搜索推荐 Linux
深入理解Linux操作系统的启动过程
本文旨在揭示Linux操作系统从开机到完全启动的神秘面纱,通过逐步解析BIOS、引导加载程序、内核初始化等关键步骤,帮助读者建立对Linux启动流程的清晰认识。我们将探讨如何自定义和优化这一过程,以实现更高效、更稳定的系统运行。
|
7天前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
|
8天前
|
缓存 监控 网络协议
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
|
10天前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
12天前
|
消息中间件 安全 Linux
深入探索Linux操作系统的内核机制
本文旨在为读者提供一个关于Linux操作系统内核机制的全面解析。通过探讨Linux内核的设计哲学、核心组件、以及其如何高效地管理硬件资源和系统操作,本文揭示了Linux之所以成为众多开发者和组织首选操作系统的原因。不同于常规摘要,此处我们不涉及具体代码或技术细节,而是从宏观的角度审视Linux内核的架构和功能,为对Linux感兴趣的读者提供一个高层次的理解框架。
|
13天前
|
人工智能 安全 Linux
Linux操作系统的演变与未来趋势###
本文深入探讨了Linux操作系统从诞生至今的发展历程,分析了其开源模式对技术创新和IT行业的影响,并展望了Linux在未来技术生态中的角色。通过历史回顾、现状分析和未来预测,本文旨在为读者提供一个关于Linux操作系统全面而深入的视角。 ###
|
14天前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
26 2