基本概念

概述

计算机有硬件和软件组成,操作系统就是硬件上面的第一层软件,它是硬件和其它软件沟通的桥梁。

Unix

1965 年,MIT、Bell(贝尔实验室)和GE(美国通用电气公司)合作准备搞个超级操作系统,取了个霸气的名字:Multics (Multiplexed Information and Computing System),多路复用信息和计算机系统。能让多个人可以同时干很多事,也叫多用户多任务操作系统。

1969 年,Multics 项目进展缓慢,被迫停止,参与项目的两个人 Ken Thompson(肯·汤普森)和 Dennis Ritchie(丹尼斯·里奇) 也闲了下来。他们都是贝尔实验室的人。没活干了,就打游戏。他们俩找了一台破电脑(PDP-7)准备玩以前开发的一个游戏(travel space:遨游太空),为了能在PDP-7 计算机上运行他的游戏,于是在1969 年夏天Ken Thompson(肯·汤普森)趁他夫人回家乡加利福尼亚渡假期间,在一个月内开发出了UNIX 操作系统的原型,UNIX于是就在1970年正式问世了,这就是Unix元年。自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来,当时使用的是BCPL 语言(基本组合编程语言),后经Dennis Ritchie 于1973 年用移植性很强的C语言进行了改写。

UNIX 的出现是由人 Ken Thompson(肯·汤普森)和 Dennis Ritchie(丹尼斯·里奇)在贝尔实验室工作期间开发出来的,自然版权属于贝尔实验室所有。一开始贝尔实验室并没有重视这个系统,导致这个系统的源代码在程序员之间不断分发导致美国很多机构、组织和高校都有非常多的人在使用这个UNIX,这就为UNIX的发展带来的高速的发展,但是随着UNIX发展的越来越好,这时候贝尔实验室就开始了商业运作了,他们决定要收回版权。但是从原来的免费获取使用变成后面的高价版权费用,很多人甚至是公司是接受不了的,所以这个商业运作进展缓慢,后面不得已就变成了,贝尔实验室收回版权,但是针对一些有合作的高校和机构,收取廉价或者是几乎免费的版权费用。

于是在20世纪70年代后期,与教育机构和外部商业组织共享了Unix,从而导致了许多不同版本Unix的诞生。其中最突出的是由加州大学伯克利分校的计算机系统研究小组构建的教育版本(BSD)。当然BSD又是另一段传奇故事了。

GUN

1983年9月,Richard Stallman宣布引入GNU计划(GNU代表的是GNU,不是Unix)。1985年,理查德(Richard)建立了自由软件基金会(FSF),这是一个非营利性组织,旨在促进软件开发的自由。GNU项目创建了许多重要的产品,如GNU Compiler Collection (gcc)、GNU Debugger、GNU Emacs text editor (Emacs)、GNU build automator (make)等,还有今天使用最广泛的:GNU通用公共许可证(GPL)。GNU项目取得了许多伟大的成就,创造了许多与Unix相似的工具。然而,GNU仍然缺少一个重要的组成部分:内核(用于处理与硬件设备(CPU、RAM、设备等)的控制和通信的部分)。

GNU项目的目标是创建一个自由的、类unix的操作系统,在这个系统中,人们人们可以自由地复制,开发,修改和分发软件,并且不受限制。

Minix

Minix诞生于1987年,由Andrew S. Tanenbaum(安德鲁·斯图尔特·塔能鲍姆,谭邦宁)教授编写,用作教学的微内核架构的类Unix系统。当时Unix系统由于AT&T的使用许可问题,Unix不能被大学使用,谭邦宁教授为了让学生能看到操作系统的运行机理,自己重新写了一个操作系统,就叫它Minix。

Linux

Linux内核最初只是由芬兰人Linus Torvalds(林纳斯·托瓦兹)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

目前市面上较知名的发行版有:Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain()、Fedora、 、OpenSUSE

下载地址

网易镜像:http://mirrors.163.com/

搜狐镜像:http://mirrors.sohu.com/

Linux特点

Linux里面一切皆是文件

Linux里面没有后缀名这一说

Linux和Windows区别

目前国内Linux更多的是应用与服务器上,而桌面操作系统更多使用的是window。主要区别如下。

比较 Window Linux
界面 界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷键也几乎相同 圆形界面风格依发布版本不同而不同,可能互不兼容。GNU/Linux的终端机是从UNIX传承下来,基本命令和操作方法也几乎一致。
驱动程序 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时候很难支持。另外,有时硬件厂商未提供所需版本的Windows下的驱动,也会比较头痛。 由志愿者开发,由Linux核心开发小组发布,很多硬件厂商基于版本考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD等硬件厂商逐步不同程序支持开源驱动,问题正在得到缓解。
使用 使用比较简单,容易入门。圆形化界面对没有计算机背景知识的用户使用十分有利。 圆形界面使用简单,容易入门。文字界面,需要学习才能掌握。
学习 系统构造复杂、变化频繁、且知识、技能淘汰快,深入学习困难 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易
软件 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权 大部分软件都可以自由获取,同样功能的软件选择较少。

目录结构

目录 描述
/ 第一层次结构的根、整个文件系统层次结构的根目录。
/bin/ 需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如:cat、ls、cp,和/usr/bin类似。
/boot/ 引导程序文件,例如:kernel、initrd;时常是一个单独的分区[6]
/dev/ 必要设备, 例如:, /dev/null.
/etc/ 特定主机,系统范围内的配置文件。关于这个名称目前有争议。在贝尔实验室关于UNIX实现文档的早期版本中,/etc 被称为/etcetra 目录,[7]这是由于过去此目录中存放所有不属于别处的所有东西(然而,FHS限制/etc存放静态配置文件,不能包含二进制文件)。[8]自从早期文档出版以来,目录名称已被以各种方式重新称呼。最近的解释包括反向缩略语如:“可编辑的文本配置”(英文 “Editable Text Configuration”)或"扩展工具箱"(英文 “Extended Tool Chest”)。[9]
/home/ 用户的家目录,包含保存的文件、个人设置等,一般为单独的分区。
/lib/ /bin/ and /sbin/中二进制文件必要的库文件。
/media/ 可移除媒体(如CD-ROM)的挂载点 (在FHS-2.3中出现)。
/lost+found 在ext3文件系统中,当系统意外崩溃或机器意外关机,会产生一些文件碎片在这里。当系统在开机启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。当系统发生问题。可能会有文件被移动到这个目录中,可能需要用手工的方式来修复,或移到文件到原来的位置上。
/mnt/ 临时挂载的文件系统。比如cdrom,u盘等,直接插入光驱无法使用,要先挂载后使用
/opt/ 可选应用软件包。
/proc/ 虚拟文件系统,将内核与进程状态归档为文本文件(系统信息都存放这目录下)。例如:uptime、 network。在Linux中,对应Procfs格式挂载。该目录下文件只能看不能改(包括root)
/root/ 超级用户的家目录
/sbin/ 必要的系统二进制文件,例如: init、 ip、 mount。sbin目录下的命令,普通用户都执行不了。
/srv/ 站点的具体数据,由系统提供。
/tmp/ 临时文件(参见 /var/tmp),在系统重启时目录中文件不会被保留。
/usr/ 默认软件都会存于该目录下。用于存储只读用户数据的第二层次;包含绝大多数的(多)用户工具和应用程序。
/var/ 变量文件——在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。有时是一个单独的分区。如果不单独分区,有可能会把整个分区充满。如果单独分区,给大给小都不合适。

远程连接主机的工具

通过SSH连接到远程主机有2种方式:

  1. 通过市面上常用的软件来进行连接。

    远程ssh客户端软件:putty(开源免费的,超级轻量级的ssh连接工具),xshell(海螺,收费,但是可以试用)。

    远程ftp客户端软件: xftp,filezilla, FlashFXP

    远程ssh和ftp的客户端软件:FinalShell、Terminus、electerm

  2. 通过终端命令来进行ssh连接。

    基于ssh协议远程登录的命令:ssh、ssh-keygen

    ​ ssh root@10.0.0.130

    基于ftp协议进行传输的命令:scp

xshell的快捷键:

Ctrl+S 锁屏幕
Ctrl+Q 解除屏幕
shift+insert 把内容粘贴到远程终端。
Ctrl+C 终止操作
exit   退出

常用命令

系统信息

arch 显示机器的处理器架构
uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS

系统关机

关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
reboot 重启
logout 注销

文件和目录

查看文件目录信息

cd /home # 进入 '/ home' 目录'
cd .. # 返回上一级目录
cd ../.. # 返回上两级目录
cd # 进入个人的主目录
cd ~user1 # 进入个人的主目录
cd - # 返回上次所在的目录
pwd # 显示工作路径
ls # 查看目录中的文件
ls -F # 查看目录中的文件
ls -l # 显示文件和目录的详细资料
ls -a # 显示隐藏文件
ls *[0-9]* # 显示包含数字的文件名和目录名
tree # 显示文件和目录由根目录开始的树形结构

管理文件目录

mkdir dir1 # 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 .... # 同时创建两个目录或多个目录
# 序列
# {dir3,dir4,dir5}      # 指定成员的序列
mkdir {dir3,dir4,dir5}  # 创建了3个目录,分别是dir3,dir4,dir5
# mkdir dir{6..10}      # 指定成员范围的序列
mkdir dir{1..3}         # 创建了dir1,dir2,dir3这个范围的目录
# mkdir demo{01..100}   # 指定成员的长度补0,按末尾数字的长度,给所有的数字进行补0,不足2位,左边补1个0
mkdir user{01..3}       # 创建user01,user02,user03这几个目录
# mkdir goods{0..10..2} # 指定步进值的序列,步进值表示间隔数值
mkdir goods{0..10..2}   # 创建goods00,goods02,goods..,goods10之间的偶数目录mkdir -p /tmp/dir1/dir2 # 创建一个目录树[多级目录]# 注意,在工作中,rm是禁用的!!!使用mv代替!
rm -f file1    # 无须确认,直接删除一个叫做 'file1' 的文件'
rmdir dir1     # 删除一个叫做 'dir1' 的目录',rmdir只能删除空目录!!!
rm -rf dir1    # 递归删除一个叫做 'dir1' 的目录及其内容,慎用!~!!
rm -rf dir1 dir2 # 同时删除两个目录及它们的内容,慎用mv dir1 new_dir # 重命名/移动一个目录,或者对文件进行改名
cp file1 file2 # 复制一个文件
cp dir/* . # 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . # 复制一个目录到当前工作目录
cp -a dir1 dir2 # 复制一个目录
cp -r dir1 dir2 # 复制一个目录及子目录

文件搜索

find / -name demo*     # 从 '/' 开始进入根文件系统搜索名称以'demo'开头的文件和目录
find / -name *demo     # 从 '/' 开始进入根文件系统搜索名称以'demo'结尾的文件和目录
find / -name *demo*     # 从 '/' 开始进入根文件系统搜索名称包含'demo'的文件和目录
find /root -name *demo* # 从 '/' 开始进入根文件系统搜索名称包含'demo'的文件和目录[root@localhost ~]# find / -name demo*/root/dir8/demo.txt/root/dir9/demo.txt/root/dir007/dir6/demo.txt/root/dir007/demo333.txt/root/dir007/demo333_bak.txt/root/dir007/dir006/demo.txtfind / -user user1 # 搜索属于用户 'user1' 的文件和目录
find / -type f -atime +100 # 从'/'开始,搜索在过去100天内未被使用过的执行文件
find / -type f -mtime -10 # 搜索在10天内被创建或者修改过的文件
# find搜索文件,是逐个目录进行查找, 所以尽量不要从 根目录下去进行查找!!!尽量缩减搜索,否则系统会卡顿的。# ContOS安装软件、命令:  yum install -y mlocate
# Ubuntu安装软件、命令: sudo apt install -y mlocate
# 使用locate之前,要了解locate内部运行原理:locate执行过程中,直接系统数据库中搜索文件信息的,效率贼高!
# 所以,需要更新以下最近的系统的文件数据库,先运行 'updatedb' 命令
locate *.txt  # 寻找以 '.txt' 结尾的文件 -  # 查找二进制文件、例如命令,查找源码包或者命令手册时使用whereis
whereis tree  # 显示一个二进制文件、源码或man的位置 # 查找二进制文件、例如命令、
which tree    # 显示一个二进制文件或可执行文件的完整路径

查看文件内容

# 测试数据
echo "hello
world
python
baidu" > demo.txt # 把"hello\nworld" 写入到demo.txt中
cat demo.txt  # 从第一个字节开始正向查看文件'demo.txt'的内容
# cat只适合用于查看小文件的内容,大文件不适合.
cat -n demo.txt  # 显示当前文件的内容和行数
tac -n demo.txt  # 从最后一行开始反向查看文件'demo.txt'的内容
# 统计文件内容的字数/单词/行数
wc demo.txt  # 统计demo.txt文件的行数/单词数/字数
wc demo.txt  /etc/passwd  # 统计多个文件的行数/单词数/字数,并汇总。[root@localhost dir8]# wc demo.txt /etc/passwd行数 单词数 字数  文件路径1    3       19 demo.txt23   47     1127 /etc/passwd24   50     1146 总用量                # 末行表示汇总# 准备一个大文件
cat << EOF >>demo2.txt
青青园中葵,朝露待日晞。
阳春布德泽,万物生光辉。
常恐秋节至,焜黄华叶衰。
百川东到海,何时复西归?
少壮不努力,老大徒伤悲。青青园中葵,朝露待日晞。
阳春布德泽,万物生光辉。
常恐秋节至,焜黄华叶衰。
百川东到海,何时复西归?
少壮不努力,老大徒伤悲。青青园中葵,朝露待日晞。
阳春布德泽,万物生光辉。
常恐秋节至,焜黄华叶衰。
百川东到海,何时复西归?
少壮不努力,老大徒伤悲。
EOFmore demo2.txt # 查看大文件"demo.txt"的内容,按空格键可以继续往下翻看数据 less demo2.txt # 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作,Q键退出head -4 demo2.txt # 查看文件的前4行
tail -2 demo2.txt # 查看一个文件的最后两行
tail -f /var/log/messages # 实时查看'/var/log/messages'系统运行信息文件的内容

文本处理

# Linux3剑客:grep, sed, awk 是最强大的三个文本处理命令# grep 文本搜索,支持正则使用
# 用法1,从文件中搜索关键字
#        grep 关键字 文件
# 用法2,从上一个操作命令的结果内容中,提取关键字信息
#        上一个命令 | grep 关键字grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇
grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行
grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"
ps aux|grep django # 先列出当前操作系统中运行的所有进程列表信息以及PID,然后从结果中搜索包含了django关键字的内容信息# sed 文本的查看、删除、替换,支持正则使用。
sed "s/baidu/aliyun/g" demo.txt     # 将demo.txt文件中的 "baidu" 替换成 "aliyun",不修改文件内容
sed -i "s/baidu/aliyun/g" demo.txt  # 将demo.txt文件中的 "baidu" 替换成 "aliyun",并修改文件内容
sed '/^$/d' demo2.txt  # 从demo2.txt文件中删除所有空白行,并显示内容,不修改文件内容
sed -i '/^$/d' demo2.txt # 从demo2.txt文件中删除所有空白行,并显示内容,并修改文件内容
sed '/ *#/d; /^$/d' demo2.txt # 从demo2.txt文件中删除所有注释和空白行,常用于代码压缩
sed -n '/hello/p' demo.txt   # 查看只包含词汇 "string1"的行
sed -e 's/ *$//' demo.txt    # 删除每一行最后的空白字符
sed -e 's/world//g' demo.txt  # 从文档demo.txt中只删除词汇 "world" 并保留剩余全部
sed -n '1,5p;5q' demo.txt  # 查看从第1行到第5行内容
sed -n '2,4p;4q' demo.txt  # 查看从第2行到第4行内容
sed -n '5p;5q' demo.txt    # 查看第5行 # awk 按换行按空格处理文本
cat demo.txt | awk 'NR%2==1'  # 删除demo.txt文件中的所有偶数行 NR表示行号
echo a b c | awk '{print $1}' # 查看一行第一列,自动按空格分三列,$1表示第1列, $2表示第2列,以此类推
echo a b c | awk '{print $1,$3}'  # 查看1行的第1和第1列# 合并文件内容
echo "hello" > t1.txt
echo " world" > t2.txt
paste t1.txt t2.txt  # 合并2个文件的内容# 对内容进行排序
sort t1.txt t2.txt # 排序两个文件的内容
echo "hello" >> t2.txt  # 追加内容"hello" 到 t2.txt
sort t1.txt t2.txt | uniq  # 取出两个文件的并集(重复的行只保留一份)
sort t1.txt t2.txt | uniq -u # 删除交集,留下其他的行
sort t1.txt t2.txt | uniq -d # 取出两个文件的交集(只留下同时存在于两个文件中的文件)

打包压缩文件

# 基于bzip算法压缩文件内容,不能压缩目录!!!生成的文件后缀.bz2
bzip2 demo2.txt       # 压缩一个叫做 'demo2.txt' 的文件,得到压缩包,demo2.txt.bz2
bunzip2 demo2.txt.bz2 # 解压一个叫做 'demo2.txt.bz2'的文件# 基于gzip算法压缩文件,压缩程度把上面的要好
# 最常用
gzip demo2.txt  # 压缩一个叫做 'demo2.txt'的文件,得到压缩包,demo2.txt.gz
gunzip demo2.txt.gz # 解压一个叫做 'demo2.txt.gz'的文件
gzip -9 demo2.txt # 最大程度压缩# 基于rar针对文件或目录打包
# ContOS安装:
#        wget https://www.rarlab.com/rar/rarlinux-x64-6.0.2.tar.gz
#        tar zxvf rarlinux-x64-6.0.2.tar.gz -C /usr/local
# Ubuntu安装:
#        sudo apt install rar
rar a dir8.rar dir8  # 打包dir8目录,并创建一个叫做 'dir8.rar' 的包
rar a dir8.rar file1 file2 dir1 # 同时把多个文件或目录打包到一起 到 file.rar包中
rar x dir8.rar  # 解压rar包# 基于tar针对文件或目录打包,Linux最常用这个
tar -cvf dir8.tar dir8 # 创建一个非压缩的 dir8.tar的包
tar -cvf dir8.tar file1 file2 dir1 # 把多个文件或目录打包到一起
tar -tf dir8.tar # 显示一个包中的内容
tar -xvf dir8.tar # 释放一个包,解包
tar -xvf dir8.tar -C /tmp # 将压缩包释放到 /tmp目录下
tar -cvfj dir8.tar.bz2 dir1 # 创建一个bzip2格式的压缩包
tar -jxvf dir8.tar.bz2 # 解压一个bzip2格式的压缩包 # 重要!最常用的打包压缩命令!
tar -cvfz dir8.tar.gz dir1 # 创建一个gzip格式的压缩包
tar -zxvf dir8.tar.gz # 解压一个gzip格式的压缩包# zip
zip file1.zip file1 # 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 # 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip # 解压一个zip格式压缩包

系统网络

磁盘空间
df -h  # 显示已经挂载的分区列表
ls -lSr |more # 以尺寸大小排列文件和目录
du -sh dir8 # 估算目录 'dir1' 已经使用的磁盘空间'
du -sk * | sort -rn # 以容量大小为依据依次显示文件和目录的大小 ,单位是KB
网络进程
ping 网络地址/IP                 # 测试网络
ping  www.baidu.com -c 3 -i 2  # 每隔2秒发送1个数据包,持续3次,监测网络# ContOS: yum install -y net-tools
# Ubuntu: sudo apt install net-tools
ifconfig # 列出当前系统的所有网卡信息 ,可以简写成:ip a
#    lo回环网卡,就是127.0.0.1对应的网卡
#    ens33 以太网卡
ifconfig ens33 # 显示一个以太网卡的配置
ifup ens33      # 启动指定网卡
ifdown ens33    # 关闭指定网卡route -n  # 打印路由表,可以在第一行查看当前电脑的路由表 Gateway表示网管  netmask表示子网掩码
hostname  # 显示当前系统的主机名
hostnamectl set-hostname moluo   # 修改主机名host www.baidu.com # 对域名解析成IP地址,也可以对IP地址解析成域名
# ContOS: yum install -y bind-utils
nslookup www.baidu.com  对域名解析成IP地址,也可以对IP地址解析成域名
# ContOS: yum install -y whois.x86_64
whois www.baidu.com # 查看网络进程
ps ef   # 列出当前系统下所有的进程
ps aux  # 列出当前系统下所有的进程的详细信息
#   PID(进程ID) TTY(哪个用户开启的)      STAT(当前进程状态)   TIME(执行时间) COMMAND(执行的终端命令)
netstat -tup   # 显示系统的所有网络连接以及对应的进程ID
netstat -tupl  # 显示系统的所有网络连接以及对应的进程ID【详细】# 网络抓包,类似谷歌浏览器中的F12中的network
# ContOS安装:yum install -y tcpdump
tcpdump tcp port 80 # 对80端口的所有请求进行抓包
tcpdump -i ens33    # 对ens33网卡进行网络监听
tcpdump host 10.0.0.131 # 对访问目标地址为10.0.0.131的请求进行监听# top Linux的3网路分析工具,类似window的资源管理器
# kill
# gkill

vi&vim编辑器

用户与权限管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

用户管理

  • useradd
  • usermod
  • userdel

组管理

  • groupadd
  • groupmod
  • groupdel

批量管理用户

  • 成批添加/更新一组账户:newusers
  • 成批更新用户的口令:chpasswd

组成员管理

  • 向标准组中添加用户

    • gpasswd -a <用户账号名> <组账号名>
    • usermod -G <组账号名> <用户账号名>
  • 从标准组中删除用户
    • gpasswd -d <用户账号名> <组账号名>

口令维护(禁用、恢复和删除用户口令):

  • 设置用户口令

    • passwd [<用户账号名>]
  • 禁用用户账户口令
    • passwd -l <用户账号名>
  • 查看用户账户口令状态
    • passwd -S <用户账号名>
  • 恢复用户账户口令
    • passwd -u <用户账号名>
  • 清除用户账户口令
    • passwd -d <用户账号名>

用户切换命令

  • su

    • 直接切换为超级用户
  • sudo
    • 直接使用 sudo 命令前缀执行系统管理命令。执行系统管理命令时无需知道超级用户的口令,使用普通用户自己的口令即可
权限 对文件的影响 对目录的影响
r(读取) 可读取文件内容 可列出目录内容
w(写入) 可修改文件内容 可在目录中创建删除内容
x(执行) 可作为命令执行 可访问目录内容
目录必须拥有 x 权限,否则无法查看其内容

ssh、ssh-keygen 和 scp

安装nginx、redis、mysql(MarilDB),crontab计划任务

linux部署速查表相关推荐

  1. Linux命令速查表

    RHCE试听课 [linux系统下,用这个命令可以提高60%的工作效率 ]https://mp.weixin.qq.com/s/pZVjMI1PLJzrA8hoPzkgMA RHCE试听课 [如何快速 ...

  2. Linux思维导图及命令速查表8张

    Table of Contents 1.Linux学习路径: 2.Linux桌面介绍: 3.FHS(文件系统目录标准): 4.Linux需要特别注意的目录: 5.linux 内核学习路线: 6.Lin ...

  3. Linux系统运维人员常用速查表

    Linux系统运维人员常用速查表 walkingcloud 2020-08-09 19:55:41 Linux系统运维人员常用速查表 1.awk速查表 2.bash速查表 3.firewall-cmd ...

  4. 分享超全的 Linux 渗透测试命令速查表

    如下是一份 Linux 机器的渗透测试速查表,是在后期开发期间或者执行命令注入等操作时的一些典型命令,设计为测试人员进行本地枚举检查之用. 此外,你还可以从这儿阅读到许多关于渗透测试的文章. 命令 描 ...

  5. Python开发资源速查表

    Python开发资源速查表 Python实现算法和设计模式 algorithms - Python的一个算法模块. PyPattyrn - 一个用于实现常见设计模式的简单而有效的库. python-p ...

  6. 简述sed、grep和parted的速查表

    下载 sed.grep和parted的速查表来整合新的流程到你的工作中. Linux 因其命令闻名,部分原因是 Linux 执行的几乎所有操作都可以从终端调用:另一部分原因是 Linux 是一个高度模 ...

  7. 超全Python速查表登上GitHub热榜,标星4600+!(附链接)

    本文经AI新媒体量子位授权转载,转载请联系出处. 本文多资源,建议阅读5分钟. 本文为你分享一份超全Python速查表. 哪里不会,抄查哪里. GitHub上出现一份对Python用户非常友好的资源: ...

  8. 程序员/设计师能用上的 75 份速查表(转)

    75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Java.Perl.PHP.Pyt ...

  9. Git操作手册|命令速查表

    Git操作手册|命令速查表 这篇文章主要介绍Git分布式版本管理与集中式管理的一些差异,总结下Git常用命令作为日后的速查表,最后介绍Git进阶的一些案例. 本文分为以下几个部分: Git与SVN差异 ...

最新文章

  1. Jquery JQZoom Plugin 放大鏡效果 Two
  2. OpenCV调用TensorFlow预训练模型
  3. vscode 快速调到定义处_vim技巧:在程序代码中快速跳转,在文件内跳转到变量定义处...
  4. 计算机网络通信选择题,计算机网络教(学)案通信技术选择题试题题库完整
  5. mysql 试题_超经典MySQL练习50题,做完这些你的SQL就过关了
  6. 【信息系统项目管理师】第1章-信息化和信息系统 知识点详细整理
  7. 【系统架构】VC 开发辅助工具大收集
  8. 使用vm14安装Linux系统
  9. 计算机打印服务设置s,Print Spooler 服务
  10. 苹果Mac更新系统版本失败如何解决?
  11. java7 xp版下载64位,xp32位系统可用最高版本jdk64位系统win10 64位系统
  12. 开发APP软件需要多少钱?
  13. 微软 rms服务器端,RMS 客户端部署说明 - Azure 信息保护 | Microsoft Docs
  14. java gbk编码_Java GBK 中文乱码问题分析
  15. Android Room 数据库最佳入门教程
  16. from flask._compat import text_type ModuleNotFoundError: No module named ‘flask._compa‘
  17. Docker容器技术与应用(项目2 Docker容器安装和使用)
  18. uniapp文档常用整理
  19. C语言运算符优先级及结合性
  20. gap,margin和padding的区别

热门文章

  1. bartender的api帮助_在浏览器中通过bartender,调用条码打印机的active控件代码的实现...
  2. js jquery 清空form表单
  3. Sality病毒分析
  4. 微信授权莫名创建用户数据失败的原因
  5. Ubuntu Boot Failed
  6. GD32F103学习笔记(6)——系统延时使用
  7. 百战RHCE(第十四战:Linux进阶命令十一-nmcli 配置网络极简管理)
  8. 随笔杂记(八)——CMD代理设置
  9. 振动信号的阶次分析(matlab)
  10. 2006世界杯32强人体彩绘队服样式(法国)