2024年最全历经一个月拿下<Linux鸟哥的私房菜>(基础篇),2024年最新一起刷完了这份1307页的Linux运维面试宝典吧

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

软件安装RPM,SRPM与YUM

rpm安装

yum

更换安装源

玛丽亚数据库


图形化界面和命令行界面的切换

==================

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_14,color_FFFFFF,t_70,g_se,x_16

开启SSH服务

=======

sudo apt upgrade更新软件包

ip address查看ip地址

sudo apt-get install openssh-client(安装ssh客户端程序)

sudo apt-get install openssh-server(安装ssh服务端程序)

service ssh start(开启ssh服务)

service ssh stop(关闭ssh服务)

ps -e | grep ssh检查ssh服务是否开启

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_12,color_FFFFFF,t_70,g_se,x_16

可ping一下

若没开启执行此条/etc/init.d//ssh start

Linux常用命令

=========

操作系统常用命令

文件搜索命令:

find  在目录,磁盘,文件下找,系统资源使用大

-size   +n 大于

-n 小于

n 等于

-a  两个条件同时满足

-o  两个条件满足任意一个即可

find /etc-size +100 -a -size -200

在/etc下查找大于100小于200的文件

find /etc -name init --------在目录/etc中查找文件init(可使用通配符*init?)

-iname 不区分大小写

-type 根据文件类型查找

f 文件  d 目录  l软链接文件

find /etc -name init* -a -type d

-inum  根据i节点查找

-grop 根据所属组查找

-user x 查找所有者为x的文件

-cmin -5 查看5分钟内被修改的文件和目录(+5超过5分钟)

-amin  访问时间access

-cmin  文件属性change

-mmin 文件内容modify

-exec/-ok 命令 {} \ ;  对搜索结果执行操作(-ok会提示是否查看)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_17,color_FFFFFF,t_70,g_se,x_16

locate

在文件资料库中找,新创建的文件还没有存放在locate中可以updatedb更新资料库,除非创建在tmp临时目录等

-i 不区分大小写

which   可查看别名,路径

whereis  搜索命令所在目录及帮助文档路径

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_17,color_FFFFFF,t_70,g_se,x_16

grep 在文件内容中搜索(查找字符串)

-i 不区分大小写

-v 排除指定字符

范例:

grep -v ^# /etc/init

把/etc/init/下的#号行排除

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_9,color_FFFFFF,t_70,g_se,x_16

*:匹配其前面的字符任意次, 0,1,多次

.*:匹配任意长度的任意字符

\?:匹配其前面的字符0次或者1次,

\+:匹配其前面的字符1次或者多次,前面的字符至少出现1次

egrep = grep -E

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_16,color_FFFFFF,t_70,g_se,x_16

fgrep

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_9,color_FFFFFF,t_70,g_se,x_16

pgrep:用于搜索系统上正在运行的进程的名称并返回其相应进程ID的命令

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_14,color_FFFFFF,t_70,g_se,x_16

是真的很详细了!Linux中的Grep命令使用实例 - 云+社区 - 腾讯云 (tencent.com)")

帮助命令


man 命令

man 1 命令

1.命令文件

5.配置文件

man 配置文件 -----man services

在底行输入/n,查看字符n

whatis 命令 ----查看命令的简短信息

apropos  配置文件  —查看配置文件简短信息     如serviceswatermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_17,color_FFFFFF,t_70,g_se,x_16

touch --help

info

help  命令   —shell内置命令

用户管理命令

useradd 用户:添加用户

passwd  用户:设置用户密码

who / w:查看用户信息

压缩解压命令

gzip 文件:压缩(不保留源文件,只能压缩文件)

gunzip / gzip -d 压缩.gz格式文件:解压缩

tar

-x 解包

-c 创建一个打包文件

-f 指定文件名

-v显示详细信息

-z 创建打包的同时做一个压缩

解压缩: tar -zxvf  文件watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_17,color_FFFFFF,t_70,g_se,x_16

zip

unzip :解压缩

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_17,color_FFFFFF,t_70,g_se,x_16

bzip2 (适合压缩文件大的)

-k:产生压缩文件后保留源文件

bzip2 -k 文件

bunzip2 .bz2格式文件:解压缩

-k:产生压缩文件后保留源文件

tar -cjf     生成.tar.bz2 格式--------tar -xjf 解压缩.tar.bz2格式

解压安装

[root@bogon src]# cd /usr/local/src/[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

cd进入安装位置目录,wget 下载压缩包的网站

tar zxvf 压缩包

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_16,color_FFFFFF,t_70,g_se,x_16

网络命令

w:查看用户网络信息

write 用户:给用户发消息(Ctl+D结束)

wall 用户 信息内容:发广播信息

ping 选项 IP地址:测试网络连通(Ctl+c结束)

-c 指定ping通次数

ifconfig:查看网卡信息

mail [用户名]:查看发送电子邮件

last:列出目前与过去登入系统的用户信息

lastlog:检查某特定用户上次登录的时间

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_17,color_FFFFFF,t_70,g_se,x_16

traceroute 网络:显示数据表包到主机间的路径

netstat:显示网络相关信息

-t:tcp协议

-u:udp协议

-l:监听

-r:路由

-n:显示ip地址和端口号

挂载命令

mount

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_14,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_17,color_FFFFFF,t_70,g_se,x_16

图形化配置网络

setup:配置网络(需重启)

nmtui

关机重启命令

shutdown [选项]时间

-c:取消前一个关机命令

-h:关机

-r:重启

halt

poweroff

reboot:重启

init 0:切换执行等级(0关机1单用户…5图形界面6重启)

查看运行级别:runlevel

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_12,color_FFFFFF,t_70,g_se,x_16

sync: 数据同步写入磁盘(保存更新的数据在关机前改变写入)

vim

===

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_8,color_FFFFFF,t_70,g_se,x_16

整体 vim 的设置值一般是放置在 /etc/vimrc 这个文件,不过,不建议你修改他! 你 可以修改 ~/.vimrc 这个文件 (默认不存在,请你自行手动创建!)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_14,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_9,color_FFFFFF,t_70,g_se,x_16

:set nohlsearch "取消高亮度反白(高亮度搜寻):set backspace=2 "在编辑的时候可随时用退格键删除 (0、1的时候,只针对刚输入的字符有效):set autoindent "自动缩排:set noautoindent "取消自动缩排:set ruler "可显示最后一行的状态:set showmode "左下角那一行的状态:set nu "显示行号:set nonu "取消行号:set bg=dark "显示不同的底色色调:syntax on "进行语法检验,颜色显示:syntax off "关闭语法检验

配置vim

yum -y install vim*安装

vim /etc/vimrc打开文件,按G到文件末尾,

按o进入编辑模式,然后添加如下代码

set nu

set showmode

set ruler

set autoindent

syntax on

set smartindent

set shiftwidth=4

set tabstop=4

set expandtab

直接使用:

set hlsearch "高亮度反白set backspace=2 "可随时用倒退键删除 set autoindent "自动缩排set ruler "可显示最后一列的状态 set showmode "左下角那一列的状态set nu "可以在每一列的最前面显示行号啦! set bg=dark "显示不同的底色色调 syntax on "进行语法检验,颜色显示。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_13,color_FFFFFF,t_70,g_se,x_16

0 或功能键[Home]: 这是数字“ 0 ”:移动到这一列的最前面字符处

$ 或功能键[End] :移动到这一列的最后面字符处

H :光标移动到这个屏幕的最上方那一列的第一 个字符

G :移动到这个文件的最后一列

M: 光标移动到这个屏幕的中央那一列的第一个 字符

n :n 为数字。光标向下移动 n 列

/word: 向光标之下寻找一个名称为 word 的字串。例 如要在文件内搜寻 vbird 这个字串,就输入 /vbird 即可!n下一个

:n1,n2s/word1/word2/g :n1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1 这个字串,并将该字串取代为 word2 !举例来说,在 100 到 200 列之间搜寻 vbird 并取代为 VBIRD 则:“:100,200s/vbird/VBIRD/g”。

:1,$s/word1/word2/g :从第一列到最后一列寻找 word1 字串,并将 该字串取代为 word2 !

:1,$s/word1/word2/gc: 从第一列到最后一列寻找 word1 字串,并将 该字串取代为 word2 !且在取代前显示提示 字符给使用者确认 (confirm) 是否需要取 代!

x, X :在一列字当中,x 为向后删除一个字符 (相 当于 [del] 按键), X 为向前删除一个字符 (相当于 [backspace] 亦即是倒退键)

. :重复前一个动作

:w [filename]: 将编辑的数据储存成另一个文件(类似另存新文件)

:r [filename]:导入文件名内容

[Ctrl]+v: 区块选择,可以用长方形的方式选择数据

vim 1.sh mult.c(多文件编辑)

:n:编辑下一个文件

:N:编辑上一个文件

:files: 列出目前这个 vim 的打开的所有文件

多窗口功能

:sp [filename] :打开一个新窗口,如果有加 filename, 表示在新窗口打开一个新文件,否 则表示两个窗口为同一个文件内容(同步显示)。

[ctrl]+w+ j [ctrl]+w+↓ :按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按 下 j (或向下方向键),则光标可移动到下方的窗口。

[ctrl]+w+ k [ctrl]+w+↑: 同上,不过光标移动到上面的窗口。 [ctrl]+w+ q 其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利 用 [ctrl]+w+↓ 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+w+q 啊!

vim的挑字补全功能

[ctrl]+x -> [ctrl]+n :通过目前正在编辑的这个“文件的内容文字”作为关键字,予以补齐

[ctrl]+x -> [ctrl]+f: 以当前目录内的“文件名”作为关键字,予以补齐

[ctrl]+x -> [ctrl]+o: 以扩展名作为语法补充,以 vim 内置的关键字,予以补齐

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_15,color_FFFFFF,t_70,g_se,x_16

BASH

====

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_14,color_FFFFFF,t_70,g_se,x_16

变量

echo

[dmtsai@study ~]$ echo $PATH  == echo ${PATH} /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin

[dmtsai@study ~]$ name=VBird\'s\ name <==OK 的啦!

# 利用反斜线 (\) 跳脱特殊字符,例如单引号与空白键,这也是 OK 的啦!

$的用法:当作快捷键,更改变量的别名来或者快捷操作查

cd /lib/modules/$(uname -r)/kernel>>  cd: /lib/modules/3.10.0-1160.el7.x86_64/krenel

若该变量为扩增变量内容时,则可用 “$变量名称” 或 变量累加内容,如下所示:“ P A T H = " {变量} 累加内容,如下所示: “PATH=" 变量累加内容,如下所示:PATH="PATH":/home/bin”或“PATH=${PATH}:/home/bin”

范例:我要在 PATH 这个变量当中“累加”:/home/dmtsai/bin 这个目录(下面三种都可以)

[dmtsai@study ~]$ PATH=$PATH:/home/dmtsai/bin

[dmtsai@study ~]$ PATH=“$PATH”:/home/dmtsai/bin

[dmtsai@study ~]$ PATH=${PATH}:/home/dmtsai/bin

export: 自订变量转成环境变量

若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量: “export PATH”

范例:如何让我刚刚设置的 name=VBird 可以用在下个 shell 的程序?

[dmtsai@study ~]$ name=VBird

[dmtsai@study ~]$ bash <==进入到所谓的子程序

[dmtsai@study ~]$ echo $name <==子程序:再次的 echo 一下; <==嘿嘿!并没有刚刚设置的内容喔!

[dmtsai@study ~]$ exit <==子程序:离开这个子程序

[dmtsai@study ~]$ export name

[dmtsai@study ~]$ bash <==进入到所谓的子程序

[dmtsai@study ~]$ echo KaTeX parse error: Undefined control sequence: \[ at position 39: … <==看吧!出现设置值了! \̲[̲dmtsai@study ~\… exit <==子程序:离开这个子程序

env:列出环境变量(environment)

set:查看所有变量(包括自订变量)

?:(关于上个执行指令的回传值)

范例:[dmtsai@study ~]$ echo $SHELL

/bin/bash <==可顺利显示!没有错误!

[dmtsai@study ~]$ echo $?

0 <==因为没问题,所以回传值为 0

[dmtsai@study ~]$ 12name=VBird

bash: 12name=VBird: command not found… <==发生错误了!bash回报有问题

[dmtsai@study ~]$ echo $?

127 <==因为有问题,回传错误代码(非为0) # 错误代码回传值依据软件而有不同,我们可以利用这个代码来搜寻错误的原因喔!

[dmtsai@study ~]$ echo $?

0

# 咦!怎么又变成正确了?这是因为 “?” 只与“上一个执行指令”有关, # 所以,我们上一个指令是执行“ echo $? ”,当然没有错误,所以是 0 没错!

read:读取来自键盘输入的变量watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_15,color_FFFFFF,t_70,g_se,x_16

declare/typeset:宣告变量的类型

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_15,color_FFFFFF,t_70,g_se,x_16

history:历史命令

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_15,color_FFFFFF,t_70,g_se,x_16

[dmtsai@study ~]$ !66 <==执行第 66 笔指令

[dmtsai@study ~]$ !! <==执行上一个指令(相当于↑)

[dmtsai@study ~]$ !al <==执行最近以 al 为开头的指令

防止别人查看你的历史记录可history -w 把记录写到文件.bash_history里,再history -c 清除记录,强迫更新记录档

终端机的环境设置:stty,set

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_15,color_FFFFFF,t_70,g_se,x_16

intr : 送出一个 interrupt (中断) 的讯号给目前正在 run 的程序 (就是终止啰!);

quit : 送出一个 quit 的讯号给目前正在 run 的程序;

erase : 向后删除字符, kill : 删除在目前命令行上的所有文字;

eof : End of file 的意思,代表“结束输入”。

start : 在某个程序停止后,重新启动他的 output

stop : 停止目前屏幕的输出;

susp : 送出一个 terminal stop 的讯号给正在 run 的程序。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_16,color_FFFFFF,t_70,g_se,x_16

万用字符与特殊符号

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_14,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_13,color_FFFFFF,t_70,g_se,x_16

数据流重导向

1> :以覆盖的方法将“正确的数据”输出到指定的文件或设备上;

1>>:以累加的方法将“正确的数据”输出到指定的文件或设备上;

2> :以覆盖的方法将“错误的数据”输出到指定的文件或设备上;

2>>:以累加的方法将“错误的数据”输出到指定的文件或设备上;

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_11,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_11,color_FFFFFF,t_70,g_se,x_16

Linux账号管理与ACL权限设置

=================

用户组


有效用户组和初始用户组

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_14,color_FFFFFF,t_70,g_se,x_16

我想要让 dmtsai 这个使用者,加入 vbird1, vbird2, vbird3 这三个群组,且不影响 dmtsai 原本已经支持的次要群组时,该如何动作?

usermod -a -G vbird1,vbird2,vbird3 dmtsai

groups:查看用户组

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_6,color_FFFFFF,t_70,g_se,x_16

newgrp:有效用户组的切换

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_11,color_FFFFFF,t_70,g_se,x_16

exit :注意,记得退出newgrp的环境

chown 目录:改变目录用户者(加-R可把目录下的文件也改变)

chgrp 目录:改变用户组 -R,同上

账号管理

useradd 选项 用户名

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_16,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_18,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_16,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

系统账号的UID都是小于1000,默认不会建立家目录

要让 test 变成 root 的权限,那么就将 /etc/passwd 里面, test 的 UID 与 GID 字段变成 0 即可

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_15,color_FFFFFF,t_70,g_se,x_16

实例1


# useradd –d /home/sam -m sam

此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。

实例2


# useradd -s /bin/sh -g group –G adm,root gem

此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

passwd

修改用户密码格式为【sudo passwd 用户名】

使用useradd建立账号默认账号是锁定的,直接passwd修改账号密码就好了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

要帮一般账号修改密码需以【passwd账号】格式,使用【passwd】表示修改自己的密码

与root不同的是,密码的规范非常严格,只有出现【Retype】密码才被接受,并看到【successfuly】才算修改密码成功

为方便系统管理,可用【–stdin】

举例来说,帮vbired2修改密码成为abc543cc

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

这个动作会直接更新使用者的密码而不用再次的手动输入!好处是方便处理,缺点是这个密 码会保留在指令中, 未来若系统被攻破,人家可以在 /root/.bash_history 找到这个密码呢! 所以这个动作通常仅用在 shell script 的大量创建使用者帐号当中!

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

让某个账号暂时无法使用密码登录主机,办法就是让它的密码变成不合法(shadow第二字段长度变掉)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_18,color_FFFFFF,t_70,g_se,x_16

将 /etc/passwd 的 shell 字段写成 /sbin/nologin ,即可让该帐号暂时无法登陆主机; 将 /etc/shadow 内的密码字段,增加一个 * 号在最前面,这样该帐号亦无法登陆! 将 /etc/shadow 的第八个字段关于帐号取消日期的那个,设置小于目前日期的数字, 那么他就无法登陆系统了!

chage【使用者在第一次登陆时, 强制她们一定要更改密码后才能够使用系统资源】

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

usermod

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16


# usermod -s /bin/ksh -d /home/z –g developer sam

此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

userdel

userdel -r username:连同使用者的家目录也一起删除

如果想要完整的将某个帐号完整的移除,最好可以在下达 userdel -r username 之前, 先以“ find / -user username ”查出整个系统内属于 username 的文件,然后再加以删除吧!

如果该帐号只是【暂时不启用】的话,那么将 /etc/shadow 里头帐号失效日期 (第八字段) 设置为 0 就可以让该帐号无法使用,但是所有跟该帐号相关的数据都会留下来

用户功能

id username:查看账号信息

finger[-s-m] username:列出用户相关属性

chfn[-fopeh][账号名]:修改用户finger的数据(/etc/passwd的第五个栏位)

chsh[-ls]:-s修改shell,-l列出系统上可用shell

新增与删除用户

groupadd[-g GID][-r]用户组名称(增)

groupmod[-g GID][-n]用户组(改)

groupdel用户组(删)

linux磁盘管理

Linux 磁盘管理常用三个命令为 df、du 和 fdisk。

  • df(英文全称:disk full):列出文件系统的整体磁盘使用量

  • du(英文全称:disk used):检查磁盘空间使用量

  • fdisk:用于磁盘分区

df

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

语法:

df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

  • -k :以 KBytes 的容量显示各文件系统;

  • -m :以 MBytes 的容量显示各文件系统;

  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

  • -H :以 M=1000K 取代 M=1024K 的进位方式;

  • -T :显示文件系统类型, 连同该分区 的文件系统名称 (例如 ext3) 也列出;

  • -i :不用硬盘容量,而以 inode 的数量来显示

du

Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍 Linux du 命令。

语法:

du [-ahskm] 文件或目录名称

选项与参数:

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

  • -h :以人们较易读的容量格式 (G/M) 显示;

  • -s :列出总量而已,而不列出每个各别的目录占用容量;

  • -S :不包括子目录下的总计,与 -s 有点差别。

  • -k :以 KBytes 列出容量显示;

  • -m :以 MBytes 列出容量显示;

磁盘挂载与卸除

Linux 的磁盘挂载使用 命令,卸载使用 命令。mountumount

磁盘挂载语法:

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点

实例 1

用默认的方式,将刚刚创建的 /dev/hdc6 挂载到 /mnt/hdc6 上面!

[root@www ~]# mkdir /mnt/hdc6 [root@www ~]# mount /dev/hdc6 /mnt/hdc6 [root@www ~]# df Filesystem 1K-blocks Used Available Use% Mounted on …中间省略… /dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6

磁盘卸载命令 语法:umount

umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;

  • -n :不升级 /etc/mtab 情况下卸除。

卸载/dev/hdc6

[root@www ~]# umount /dev/hdc6

ACL的使用

setfacl;设置某个目录/文件的ACL规范

getfacl:获取某个目录/文件的ACL设置选项

用户身份切换

su -c:仅执行一次root命令

sudo

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

visudo与/etc/sudoers(ALL代表任何身份,主机和命令)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_19,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

1. “使用者帐号”:系统的哪个帐号可以使用 sudo 这个指令的意思;

2. “登陆者的来源主机名称”:当这个帐号由哪部主机连线到本 Linux 主机,意思是这个帐号 可能是由哪一部网络主机连线过来的, 这个设置值可以指定用户端计算机(信任的来源 的意思)。默认值 root 可来自任何一部网络主机 3. “(可切换的身份)”:这个帐号可以切换成什么身份来下达后续的指令,默认 root 可以 切换成任何人; 4. “可下达的指令”:可用该身份下达什么指令?这个指令请务必使用绝对路径撰写。 默认 root 可以切换任何身份且进行任何指令之意。

利用 wheel 群组以及免密码的功能处理 visudo

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_16,color_FFFFFF,t_70,g_se,x_16

重点是那个 NOPASSWD 啦!该关键字是免除密码输入的意思喔!

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

通过别名创建 visudo:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

sudo 搭配 su 的使用方式:

创建一个 ADMINS 帐号别名

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

接下来,上述的 pro1, pro2, pro3, myuser1 这四个人,只要输入“ sudo su - ”并且输入“自己的 密码”后, 立刻变成 root 的身份。“这些你加入的使用者,全部都是你能够信任的用户!

PAM

Linux主机上的用户信息传递

查询使用者: w, who, last, lastlog

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

另外,如果您想要知道每个帐号的最近登陆的时间,则可以使用 lastlog 这个指令

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_11,color_FFFFFF,t_70,g_se,x_16

使用者对谈: write, mesg, wall

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

如果 vbird1 这个人不想要接受任何讯息,直接下达这个动作

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_10,color_FFFFFF,t_70,g_se,x_16

想重新启用 mesg y

查看目前musg状态就mesg

mail

sudo apt-get install mailutils:安装mail

“ mail -s “邮件标题” username@localhost

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

可以先用 vi 将信件内容编好, 然后再以 mail -s “nice tomeet you” vbird1 < filename 来将文件内容传输即可。

例题:

请将你的主文件夹下的环境变量文件 (~/.bashrc) 寄给自己!

答:mail -s “bashrc file content” dmtsai < ~/.bashrc

例题:通过管线命令直接将 ls -al ~ 的内容传给 root 自己!

答:ls-al ~ | mail -s “myfile” root

Centos大量创建账号


#!/bin/bash 

# This shell script will create amount of linux login accounts for you. 

# 1\. check the "accountadd.txt" file exist? you must create that file manually. 

# one account name one line in the "accountadd.txt" file. 

# 2\. use openssl to create users password.

# 3\. User must change his password in his first login. 

# 4\. more options check the following url: 

# 0410accountmanager.html#manual_amount 

# 2015/07/22 VBird export PATH=/bin:/sbin:/usr/bin:/usr/sbin 

# 0\. userinput usergroup="" 

# if your account need secondary group, add here. pwmech="openssl" 

# "openssl" or "account" is needed. homeperm="no" 

# if "yes" then I will modify home dir permission to 711 

# 1\. check the accountadd.txt file action="${1}" 

# "create" is useradd and "delete" is userdel. 

if [ ! -f accountadd.txt ]; 

then 

echo "There is no accountadd.txt file, stop here." 

exit 1 

fi [ "${usergroup}" != "" ] && groupadd -r ${usergroup} 

rm -f outputpw.txt usernames=$(cat accountadd.txt) 

for username in ${usernames} 

do 

case ${action} in "create") [ "${usergroup}" != "" ] && usegrp=" -G ${usergroup} " || usegrp="" useradd ${usegrp} ${username} # 新增帐号 

[ "${pwmech}" == "openssl" ] && usepw=$(openssl rand -base64 6) || usepw=${username} echo ${usepw} | passwd --stdin ${username} # 创建密码 

chage -d 0 ${username} # 强制登陆修改密码 

[ "${homeperm}" == "yes" ] && chmod 711 /home/${username} 

echo "username=${username}, password=${usepw}" >> outputpw.txt ;; "delete") 

echo "deleting ${username}" userdel -r ${username} ;; *) 

echo "Usage: $0 [create|delete]" ;; esac done

重点回顾

Linux 操作系统上面,关于帐号与群组,其实记录的是 UID/GID 的数字而已;

使用者的帐号/群组与 UID/GID 的对应,参考 /etc/passwd 及 /etc/group 两个文件 /etc/passwd 文件结构以冒号隔开,共分为七个字段,分别是“帐号名称、密码、UID、 GID、全名、主文件夹、shell” UID 只有 0 与非为 0 两种,非为 0 则为一般帐号。

一般帐号又分为系统帐号 (1~999) 及可登陆者帐号 (大于 1000) 帐号的密码已经移动到 /etc/shadow 文件中,该文件权限为仅有 root 可以更动。该文件 分为九个字段,内容为“ 帐号名称、加密密码、密码更动日期、密码最小可变动日期、密 码最大需变动日期、密码过期前警告日数、密码失效天数、 帐号失效日、保留未使用” 使用者可以支持多个群组,其中在新建文件时会影响新文件群组者,为有效群组。

而写 入 /etc/passwd 的第四个字段者, 称为初始群组。

与使用者创建、更改参数、删除有关的指令为:useradd, usermod, userdel等,密码创建 则为 passwd; 与群组创建、修改、删除有关的指令为:groupadd, groupmod, groupdel 等;

群组的观察与有效群组的切换分别为:groups 及 newgrp 指令;

useradd 指令作用参考的文件有: /etc/default/useradd, /etc/login.defs, /etc/skel/ 等等 观察使用者详细的密码参数,可以使用“ chage -l 帐号 ”来处理;

使用者自行修改参数的指令有: chsh, chfn 等,观察指令则有: id, finger 等 ACL 的功能需要文件系统有支持,CentOS 7 默认的 XFS 确实有支持 ACL 功能! ACL 可进行单一个人或群组的权限管理,但 ACL 的启动需要有文件系统的支持;

ACL 的设置可使用 setfacl ,查阅则使用 getfacl ;

身份切换可使用 su ,亦可使用 sudo ,但使用 sudo 者,必须先以 visudo 设置可使用的 指令;

PAM 模块可进行某些程序的验证程序!与 PAM 模块有关的配置文件位于 /etc/pam.d/ 及 /etc/security/ 系统上面帐号登陆情况的查询,可使用 w, who, last, lastlog 等; 线上与使用者交谈可使用 write, wall,离线状态下可使用 mail 传送邮件!

磁盘配额高级文件系统

软件磁盘阵列

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

硬件磁盘阵列的设备文件名为/dev/sd[a-p],使用SCSI模块

软件磁盘阵列使用的设备文件是系统的设备文件/dev/md0./dev/md1等

逻辑卷管理器

LVM>VG>LV>PE

计划任务

at:仅执行一次的计划任务

任务计划会被记录到/var/spool/at中

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

at 默认只能是root,可以利用文件(相反)

/etc/allow:写在这个文件中的用户才能使用at

/etc/at.deny:如果/etc/allow不存在就查这个文件,写在这个at.deny中的用户则不能使用 at

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

atq:查询at任务

atrm (jobnumber):删除jobnumber

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_19,color_FFFFFF,t_70,g_se,x_16

batch:系统有空时才执行后台任务

uptime:查看负载

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

crontab:循环执行的计划任务

与at的配置一样在/cron中

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

例题:假若你的女朋友生日是 5 月 2 日,你想要在 5 月 1 日的 23:59 发一封信给他,这封信 的内容已经写在 /home/dmtsai/lover.txt 内了,该如何进行?

答:直接下达 crontab -e 之后,编辑成为: > 59 23 1 5 * mail kiki < /home/dmtsai/lover.txt 那样的话,每年 kiki 都会收到你的这封信喔!(当然啰,信的内容就要每年变一变啦!)

例题:假如每五分钟需要执行 /home/dmtsai/test.sh 一次,又该如何?

答:同样使用 crontab-e 进入编辑: > */5 * * * * /home/dmtsai/test.sh

例题:假如你每星期六都与朋友有约,那么想要每个星期五下午 4:30 告诉你朋友星期六的约 会不要忘记,则:答:还是使用 crontab -e 啊! > 30 16 * * 5 mail friend@his.server.name < /home/dmtsai/friend.txt

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

系统的配置文件: /etc/crontab, /etc/cron.d/*

重启crond服务: systemctl restart crond

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

如果你想要自己开发新的软件,该软件要拥有自己的 crontab 定时指令时,就可以将“分、 时、日、月、周、身份、指令”的配置文件放置到 /etc/cron.d/ 目录下! 在此目录下的文件 是“crontab 的配置文件脚本”。

个人化的行为使用“ crontab -e

系统维护管理使用“ vim /etc/crontab

自己开发软件使用“ vim /etc/cron.d/newfile

可唤醒停机期间的工作任务:anacron

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_19,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

天数:anacron 执行当下与时间戳记 (/var/spool/anacron/ 内的时间纪录档) 相差的天 数,若超过此天数,就准备开始执行,若没有超过此天数,则不予执行后续的指令。 延迟时间:若确定超过天数导致要执行调度工作了,那么请延迟执行的时间,因为担心 立即启动会有其他资源冲突的问题吧! 工作名称定义:这个没啥意义,就只是会在 /var/log/cron 里头记载该项任务的名称这 样!通常与后续的目录资源名称相同即可。 实际要进行的指令串:有没有跟 0hourly 很像啊!没错!相同的作法啊!通过 run-parts 来处理的!

但如果是放置在 /etc/cron.weekly/ 目录下,那么 该工作就会定期,几乎一定会在一周内执行一次~如果你关机超过一周,那么一开机后的数 个小时内,该工作就会主动的被执行喔

进程管理与SELinus初探


任务管理

[ctrl]+c 来终止

直接将指令丢到后台中“执行”的 &

将 /etc/ 整个备份成为 /tmp/etc.tar.gz 且不想要等待,那么可以这样做:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_20,color_FFFFFF,t_70,g_se,x_16

将“目前”的工作丢到后台中“暂停”:[ctrl]-z

暂时将vim丢到后台中等待

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_18,color_FFFFFF,t_70,g_se,x_16

+ 代表最近一个被丢进背景的工作

观察目前的后台工作状态: jobs

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44Gj5L2O6Kq_5Lmf5piv5LiA56eN5ae_5oWLwro=,size_18,color_FFFFFF,t_70,g_se,x_16

其实 + 代表最近被放到背景的工作号码, - 代表最近最后第二个被放置到背景中的工作号 码。 而超过最后第三个以后的工作,就不会有 +/- 符号存在了

将背景工作拿到前台来处理:fg

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "Linux鸟哥私房"是一本经典的Linux操作系统入门教程,被誉为"圣经级"的教材之一。该书作者鸟哥(即曾祥东)是一名资深的Linux技术专家,且具有丰富的教学经验,因此该书的教程非常通俗易懂,且深入浅出。 最新版的电子书相比于早期版本,更新了更多实用的技巧和最新的操作系统的知识。书中涵盖了Linux系统的基本概念、安装、配置、网络等方面的内容,同时也涵盖了Linux下Apache、MySQL、PHP等Web开发相关的环境的配置。 此外,"Linux鸟哥私房"还提供了很多实例教程和操作指南,帮助读者快速掌握Linux系统的使用方法,同时还提供了一些常见问题的解决方法。 总的来说,如果你是初学者并打算深入学习Linux系统,那么"Linux鸟哥私房"是必备的一本书。同时,最新版的电子书为读者提供了更多实用技巧和操作知识,让你更快地掌握Linux系统的使用方法。 ### 回答2: Linux鸟哥私房最新版电子书是一本非常受欢迎的Linux系统入门书籍,由国内知名Linux专家鸟哥编写。这本书内容全面、丰富,介绍了Linux操作系统的方方面面,从概念、安装、文件系统、网络配置到系统管理、Shell编程等都有详细的讲解。 最新版电子书不仅涵盖了目前主流的Linux发行版,还对容器、虚拟化、云计算等技术有了较多新增的内容,与时俱进。该电子书主要面向初学者,但同时也适合有一定Linux操作经验的技术人员参考。鸟哥以文字和图片相结合的方式,让读者更加容易理解和掌握Linux知识。 此外,电子书的编排和排版都十分清晰、简洁明了,让读者更易于阅读和使用。不仅如此,鸟哥私房最新版电子书还提供了各种实战案例,让读者能够更快地学会如何在实际工作中应用Linux技术。 总之,Linux鸟哥私房最新版电子书是一本非常实用的Linux操作系统入门书籍,是学习Linux必备的参考资料之一。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值