什么是操作系统
操作系统简称:OS
例如IOS其实就是iPhone的操作系统,操作系统就如同电脑的核心,其他的软件等都要再操作系统上运行。
市面上常见的三大系统:
- Windows
- Linux
- MacOS
操作系统的优缺点
Windows
优点:
- 适用于大部分软件
- 受众面积广,使用人数多
- 图形界面友好
缺点:
- 闭源
- 经常性的更新
- 极易被攻击
- 收费昂贵
Linux
优点:
- 免费开源
- 安全性公认第一
- 效率高
- 由于系统的特殊性,使得绝大数的服务器安装在Linux之上
Mac OS
优点:
- 图形界面做的很好
缺点:
- 闭源
- 收费昂贵
Linux是什么
Linux是一个开源、免费的操作系统,它的稳定性、安全性等特点得到了业内各界的肯定,目前很多的企业级的项目都会部署在Linux项目上。
Linux的发行版本
什么是Linux的发行版本?
Linux仅仅是一个操作系统,并不能直接使用,而是需要借助一些外围程序,例如图形界面,文本编辑等基本软件合并。
可以将Linux想象成一个引擎,想要使用还是要看装在那辆车上。
Linux主要发行的版本有:
- RedHat
- Fedora
- Debian
- Ubuntu
- CentOS
什么是SSH工具
远程连接工具简称 SSH确保两台计算机之间进行正常通讯。
常见的SSH工具:
- Xftp7.0 主要负责文件的传输到服务器。
- Xshell7.0 主要负责通过命令来控制服务器,例如关机,删除文件,修改文件等操作。
如何通过Xftp远程连接Linux
- 保证在同一个局域网下,例如机房环境,例如本机环境,或够买公网的服务器。
- 获取Linux的IP地址。
- 进入虚拟机打开活动--终端--输入ifconfig,最上面的一串就是Linux的IP地址
- 回到Xftp,文件-->新建-->将Linux的ip地址复制到主机那一栏即可。
- 解决乱码--新建会话属性-选项-编码
通过Xshell远程连接Linux的操作和Xftp几乎一致。
了解基本Linux命令
通过命令可以对Linux系统进行任意操控, 也是正式开发的必备技能。
Linux命令的特点:
- 严格区分大小写
- 使用tab键快速补齐命令
常见命令
- ls 输出当前目录下所有文件夹
- clear 清屏
- cd xxx 将路径切换到xxx路径处。(linux的根路径为/)
系统目录结构
切换到根目录后输入ls即可查看Linux的根目录。
/opt(可选目录):该目录是用于存放可选应用程序的安装目录。通常,第三方软件包会将其安装到这个目录中。
/root(根用户目录):这是root用户的主目录。root用户是Linux系统中具有最高权限的用户。 /tmp(临时目录):该目录用于存储临时文件。这些文件在系统重启时被删除。
/bin(二进制目录):这个目录包含了一些基本的可执行命令和工具。例如,ls、cd等命令就位于该目录。
/boot(引导目录):该目录包含了用于系统保证正常运行的文件 /etc(配置目录):该目录包含了系统的配置文件。
/home(主目录):每个用户在系统中都有一个主目录,用于存储个人文件和文档。
/lib(库目录):该目录包含了系统所需的共享库文件。这些库文件由应用程序调用,提供特定功能的支持。
绝对路径和相对路径
从/开始的目录就是绝对路径。
例如 /boot,表示根路径下的boot目录。
反之就是相对路径,例如boot/user,表示当前路径下的boot目录下的user目录。
常见符号:.表示当前路径。 ..表示返回上一级目录。
通过pwd命令来查看当前路径。 通过cd xx 表示切换路径
ls命令详解
ls表示查看当前目录的所有文件,如果想要更详细的。
提供的参数语法如下: ls [参数]
echo命令
用于在屏幕上输出信息,例如 echo 你好
如何切换用户
语法: su 用户名
知识点:
低权限向高权限切换,需要输入密码。
高权限向低权限切换,无需输入密码。
注意事项:
当使用普通登录的时候,左边显示如下内容:
[jack@localhost ~]$
当使用管理员登录的时候,左边显示如下内容:
[root@localhost ~]#
总结:
左边的是当前的登录用户
~ :表示当前登录用户的家目录。(个人文件夹)
$表示普通用户
#表示超级管理员
如何创建文件夹
mkdir :用法:在当前目录下创建一个文件夹。语法如下:
mkdir aa 表示在当前目录创建一个文件夹
案例:在根目录创建一个名字叫test的文件夹。
切换到根目录 cd /
创建test文件夹 mkdir test
进阶用法:如果需要创建级联文件夹,那么上述无法实现。
什么是级联文件夹:就是文件夹里面还有文件夹…
用法如下: mkdir -p aa/bb/cc/dd
-p 表示允许创建级联文件夹。
如何删除文件或文件夹
rm命令:删除文件夹或文件。
默认是删除文件。
语法如下:
rm [参数选项] [文件或文件夹路径]
其中参数选项如下:
-i 提示是否删除
-r 用于删除目录
-f 用语强制删除文件或目录
N表示no y表示yes
最忌讳的语法: rm –rf /*
表示删除根目录下的所有文件
执行了该命令就准备重启之前备份的服务器吧、当前服务器以及彻底报废了。
Touch 命令 :在当前目录下创建一个空白文件。
例如 touch a.txt
cp:用于将一个文件或目录,复制到指定位置。相当于复制粘贴的合体。
语法如下:
cp [参数选项] 源文件路径 目标文件的路径
常见的选项如下:
-r 递归复制目录
-i 提示是否覆盖
-f 用于强制覆盖
需求:
在跟目录下创建一个a.txt
然后将其复制到/opt目录下。然后检查是否复制成功。
1.切换到根目录 cd /
2.创建a.txt touch a.txt
3.开始复制粘贴 cp a.txt /opt
4.检查,进入opt目录 cd /opt
5.通过ls查看
mv :常用于剪切一个文件,或者重命名一个文件
语法如下:
mv [参数选项] 源文件 目标文件
cat命令:可以查看一个文件的内容,并显示在控制台上。
语法如下:
cat [参数选项] 文件名
参数选项如下:
-n 显示所有行的行号。
适用于文件内容较小的文件
和cat指令类似。都是用来查看文件内容
其中more和less指令用法完全一致。
但是一般都是使用less。因为less支持上下翻页。
q:退出浏览
空格:向下翻页
上下箭头进行逐行浏览
绝对路径和相对路径
绝对路径:从根“/”开始写的路径,就是绝对路径
相对路径:不从根开始写的路径,相对于当前路径写的
只有第一个位置出现“/”的时候才称为“根”,其他位置称为“分隔符”
点(.)代表当前目录,点点(..)代表父目录或上一层目录
pwd 命令(print working directory)用于查看当前所在的工作路径
例如:
root@MyPC:~# pwd
/root //登录系统默认进入账户的主目录
cd 命令(change directory)用于切换工作路径,用户向切换到其他目录就可以使用此命令
例如:
root @MyPC:~#cd /tmp //切换到tmp目录
root@MyPC:/tmp# pwd
/tmp
root @MyPC:~#cd //切换到主目录
root @MyPC:~#cd - //返回到上次目录
/tmp
root@MyPC:/tmp#
ls命令(list)用于显示目录中的文件信息,该命令操作语法的格式为:
ls [参数选项] [文件或路径]
ls命令参数及作用
参数 说明
-a 查看所有的文件及目录(包括隐藏)
-l 长格式显示文件的属性、大小等详细信息
-R 递归显示当前目录及子目录下的文件名
-d 查看指定目录的信息
echo命令用于在屏幕上输出信息,该命令操作语法的格式为:echo [参数选项] 字符串或变量
echo命令参数及作用
参数 说明
-n 不换行输出内容
-e 解析转义字符
例如:root@MyPC:~#echo "hello" ; echo $PWD
hello
/root
root@MyPC:~#echo -en "hello\t" ; echo $USER
转移字符“\t”表示“制表符”
基本命令
目录类操作类命令
mkdir 命令(make directories)用来创建目录,语法格式如下:
mkdir [参数选项] [目录名称]
mkdir命令参数及其作用
参数 说明
-p 用于创建级联目录(如AA/BB/CC)
例如:root@MyPC:~# mkdir A
root@MyPC:~# ls
A
root@MyPC:~# mkdir A/B
root@MyPC:~# ls A
B
root@MyPC:~# mkdir -p AA/BB/CC
root@MyPC:~# ls -R AA //递归查看AA目录
AA:
BB
AA/BB:
CC
rm 命令用来删除文件或目录,该命令操作语法格式如下:
rm [参数选项] [文件或目录名称]
rm命令参数及其作用
参数 说明
-i 提示是否删除
-r 用于删除目录
-f 用于强制删除文件或目录
例如:root@MyPC:~# mkdir test
root@MyPC:~# ls
test
root@MyPC:~# rm -rf test //加参数删除
root@MyPC:~# ls
文件类操作类命令
touch 命令用来创建空白文件,如果改文件存在,则表示修改当前文件时间,语法如下:
touch [参数选项] [文件名称]
touch命令参数及其作用
参数 说明
-a 修改文件的Access时间(Atime)会导致Ctime时间变化
-m 修改文件内容的Modification时间(Mtime)会导致Ctime时间变化
-t 指定时间戳“[[CC]YY][ MMDDhhmm [.ss]”
-r 用其他文件的时间戳
例如:root@MyPC:~# touch 1.txt //创建1.txt
root@MyPC:~# ll 1.txt
-rw-r--r-- 1 root root07月10 11:37 1.txt
root@MyPC:~# touch 1.txt //更新Mtime
root@MyPC:~# ll 1.txt
-rw-r--r-- 1 root root07月10 11:43 1.txt
root@MyPC:~# touch -r 1.txt 2.txt //用1.txtd 时间戳创建2.txt
root@MyPC:~# ll 2.txt
-rw-r--r-- 1 root root07月10 11:43 2.txt
cp 命令用来赋值文件或文件目录,语法如下:
cp [参数选项] 源文件|原目录 目标文件|目标目录
在Linux系统中,复制操作具体分为3种情况:
① 如果目标是目录,则把源文件复制到该目录中
② 如果目标不存在,则执行正常的复制操作
③ 如果目标是同名文件,则会覆盖
cp命令参数及其作用
参数 说明
-r 递归赋值目录
-a 复制文件时保留源source的原始属性(包括软链接属性)
-i 提示是否覆盖
-f 用于强制覆盖
例如:root@MyPC:~# touch 1.txt ; mkdir A
root@MyPC:~# cp 1.txt 2.txt ; cp 1.txt A
root@MyPC:~# ls 2.txt A
2.txt
A:
1.txt
root@MyPC:~# cp -r A B
root@MyPC:~# ls B
1.txt
mv 命令用来重命名或者移动文件/目录,如果在同目录中对文件或者目录进行mv操作,其实相当于重命名,语法如下:
mv [参数选项] 源文件|原目录 目标文件|目标目录
在Linux系统中共,mv命令操作具体分为4种情况
① 如果源和目标处于同一目录下,则执行改名操作
② 如果目标是目录,则把源文件 | 源目录移动到该目录中
③ 如果目标不存在,则执行正常的复制操作
④ 如果目标是同名文件,则会覆盖
mv命令参数及其作用
参数 说明
-r 递归移动目录
-i 提示是否覆盖
-f 用于强制覆盖
例如:root@MyPC:~# ls
1.txt 2.txt A B
root@MyPC:~# mv 1.txt new1.txt
root@MyPC:~# mv 2.txt A
root@MyPC:~# ls ; ls A
A B new1.txt
1.txt 2.txt
ln 命令(link)用来为文件创建链接,链接分为硬链接和符号链接两种,默认是硬链接,语法如下:
ln [参数选项] 源文件或目录 目标文件或目录
ln命令参数及其作用
参数 说明
-s 创建符号链接而非硬链接
例如:root@MyPC:~# touch 1.txt
root@MyPC:~# ln -s 1.txt link.txt
root@MyPC:~# ls -l link.txt
lrwxrwxrwx 1 root root 5 7月 10 12:37 link.txt -> 1.txt
注意:建立硬性链接时,链接文件和被链接文件必须位于同一个文件系统中,并不能建立指向目录的硬链接,而对符号链接,则不存在这个问题,在做符号连接到其它目录的时候一定要使用绝对路径
文件查看类命令
cat 命令用来查看一个文件的内容并显示在屏幕上,一般用于查看内容较少的文件,语法如下:
cat [参数选项] 文件名
cat命令参数及其作用
参数
说明 -b 显示非空行的行号 -n 显示所有行的行号
例如:root@MyPC:~# echo"hello" > 2.txt //写内容
root@MyPC:~# echo"" >> 2.txt //追加内容
root@MyPC:~# cat -n 2.txt
1 hello
2
root@MyPC:~# cat -b 2.txt
1 hello
more/less 命令用来分屏查看一个文件的内容并显示在屏幕上,一般用于查看内容比较多的文件,语法如下:
more/less [参数选项] 文件名
例如:
root@MyPC:~# more 2.txt
hello
root@MyPC:~# less 2.txt
hello
小提示:more/lee命令可以分屏显示内如(按p提前结束)。more/less都可以使用空格进行向下翻页,但比more命令好在还可以用上下键翻页查看
head/tail命令用来查看文件的前/后十行,如果加“-n”参数选项则显示文件前/后n行,语法如下:
head/tail [参数选项] 文件名
例如:
root@MyPC:~# head /etc/passwd //显示前十行
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/spool/lpd:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:var/spool/news:/usr/sbin/nologin
root@MyPC:~# head -2 /etc/passwd //显示前两行
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
小提示:tail和head命令一样,后面直接跟文件名,如果加“-f”选项则动态地显示文件最后10行,用来查看实时更新的日志
文件归档命令
gzip/gunzip 命令是用来压缩/解压缩文件的,文件压缩命令还有bzip2/bunzip2等,语法如下:
gzip/gunzip [参数选项] 文件
gzip/gunzip命令参数及作用
参数 说明
-r 递归压缩/解压缩,将指定目录下的所有文件及子目录一并处理
-d 解开压缩文件(仅限gzip命令使用)
-v 显示指令执行过程(verbose)
root@MyPC:~# mkdir testfileroot@MyPC:~# touch testfile/{1.2}.txt //创建文件
root@MyPC:~# ls testfile
1.txt 2.txt
root@MyPC:~# gzip -r testfile //递归压缩
root@MyPC:~# ls testfile
1.txt.gz 2.txt.gz
root@MyPC:~# gunzip -vr testfile //递归压缩
testfile/1.txt.gz: 0.0% -- replaced with testfile/1.txt
testfile/2.txt.gz: 0.0% -- replaced with testfile/2.txt
root@MyPC:~# ls testfile/
1.txt 2.txt
tar命令用来归档/解归档文件,在Linux系统一般结合压缩一起用,后缀一般为“.tar.gz”,语法如下:
tar [参数选项] 归档文件名 需归档的原文件或目录 //归档语法
tar [参数选项] 归档文件名 [-C 目标目录] //解归档语法
tar命令参数及作用
参数 说明
-c小写字母c,创建(create)一个“.tar”格式的包文件
-C 大写字母C,指定解包时的目标目录
-f 指定一个文档名(最后放此参数)
-r 追加文件至“.tar”格式的包文件里
-t 列表查看包文件
-v 输出详细信息(verbose)
-x 解开“.tar”格式的包文件
-z 调用gzip程序进行压缩或解压
例如:root@MyPC:~# mkdir testfile //创建目录
root@MyPC:~# touch tarfile/1.txt 创建文件
root@MyPC:~# ls tarfile
1.txt
root@MyPC:~# tar -czvf tarfile.tar.gz tarfile //解包解压
root@MyPC:~# tar -rf tarfile.tar.gz
tarfile/
tarfile/1.txt
root@MyPC:~# ls -R tarfile2
tarfile2:
tarfile
tarfile2/tarfile
1.txt
注意:c/r/x/t参数同时只能存在一个,因为不能同时压缩与解压缩,“-r”参数选项一定放在最后,因为f之后要立即接文档名
2.4.5 文件查找类命令
grep 命令用来查找普通文件中包含指定字符串的行,语法如下:grep [参数选项] 查找字符串 文件名
grep 命令参数及作用
参数 说明
-c 统计包含“查找字符串”的行数
-n 输出包含“查找字符串”的行号和此行内容
-v 输出没有包含“查找字符串”的行内容
例如:root@MyPC:~# grep -c "for i in" /etc/profile
1
root@MyPC:~# grep -n "for i in" /etc/profile
21: for i in /etc/profile.d/*.sh;do
root@MyPC:~# grep -vn "fori in" /etc/profile
1:# /etc/profile: sytem-wide.profile file fior the Boume shell(sb(1))
......
27:fi
注意:grep命令是在文件中搜索满足条件的行,如果“查找的字符串”中带有空格,可以采用单引号(' ')或双引号(" ")引起来
find 命令用来查找系统中的文件或目录,语法如下:
find命令参数及作用
参数 说明
-name filename 查找指定名称的文件
-user username 查找指定用户名的文件
-group groupname 查找指定用户组的文件
-type b/c/d/f/l 查找指定类型的文件。b(块设备)、c(字符设备)、d(目录)、f(普通文件)、l(符号连接)
-perm mode 查找指定权限的文件
-exec command {} \; 对匹配条件的文件执行command命令
例如:root@MyPC:~# touch 1.bak
root@MyPC:~# mkdir dirTest
root@MyPC:~# mkdir Backup
root@MyPC:~# find . -name "*.bak"
./1.bak
root@MyPC:~# find . -name "*.bak" -exec ls -l || \;
-rw-r--r-- l root root 0 7月10 20:36 ./1.bak
root@MyPC:~# ls Backup
root@MyPC:~# find -type d -name "*est" -exec cp -r || Backup \;
root@MyPC:~# ls Backup
dirTest
注意:对匹配条件的文件执行command命令时,command时基本命令,“||”代表的是前面匹配条件找到的文件,“\;”是固定结尾格式写法
其他类命令
uname 命令用来查看系统内核与系统版本等信息,语法如下:
uname [参数选项]
uname命令及作用
参数 说明
-a 显示系统的所有信息(内核名称、主机名、内核发行版本、节点名、系统时间 、硬件名称、硬件平台、处理器类型以及操作系统名称等)
-r
显示内核发行版本号例如:
root@MyPC:~# uname -a
Linux MyPC 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
root@MyPC:~# uname -r
5.15.0-25-generic
whereis [参数选项] 命令名称
whereis 命令参数及作用
参数 说明
-b 只查找二进制文件
-m 只查找说明/帮助文件
例如:root@MyPC:~# whereis -b ls //查找ls命令的二进制程序
ls:/usr/bin/ls //ls命令的二进制程序地址
root@MyPC:~# whereis -m ls //查找ls命令的帮助文件
ls:/usr/share/man/man1/ls.1.gz //ls命令的帮助文件地址
date 命令用来显示或设定系统的日期与时间,语法如下:
date [参数选项] [+定义格式]
date命令参数及作用
参数 说明
命令参数
-s 设置系统时间
-d 通过字符串显示时间格式
格式化参数
%Y 年(e.g.,2022)
%m 月(e.g.,07)
%d 日(e.g.,10)
%H 时(00.,23)
%M 分(00.,59)
%S 秒(00.,60)
%F 日期全格式(等同于 %Y-%m-%d)
%T时间格式(等同于 %H:%M:%S)
例如:root@MyPC:~# date
2023年 10月 11日 星期三 19:42:06 CST
root@MyPC:~# date "+%F%T"
2023-10-11 19:42:26
root@MyPC:~# date -s "2023-10-11 19:43:10"
2023年 10月 11日 星期三 19:43:20 CST
root@MyPC:~# date
2023年 10月 11日 星期三 19:44:36 CST
注意:在系统启动时,Linux操作系统将时间从硬件时间中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与硬件时间的一致性,Linux每隔一段时间会将系统时间写入硬件。由于该同步是每隔一段时间进行的,因此在我们执行date -s后,如果马上重启机器,修改时间可能没有被写入硬件时间,如果要确保修改生效,可以执行hwclock -w命令
例如:
root@MyPC:~# hwclock -w //强制把系统时间写入硬件时间
root@MyPC:~# hwclock -s //强制把硬件时间写入系统时间
ps命令用来查看系统的进程,该命令操作语法的格式为:
ps [参数选项]
ps命令参数及作用
参数 说明
-e 显示所有进程
-f 全格式,不截断COMMAND列,可以结合grep使用
例如:root@ MyPC :~# ps ef
UID PID PPID C STIME TTY TIMECMD
root 3573 3378 0 13:45 pts/0 00:00:00 sudo su -
root 45766 44352 0 21:45 pts/3 00:00:00 ps -ef
ss 命令用来导出socket的统计数据,显示详细的TCP状态信息,该命令操作语法的格式为:
ss [参数选项]
ss 命令参数及作用
参数 说明
-a 对TCP协议来说,既包含监听的端口,也包含建立的连接
-n 以数字(numeric)形式显示,不解析服务的名称
-l 显示监控(listening)中的服务器的socket
-p 显示正在使用Socket的程序(programs)识别码和程序名称
-t/-u 显示TCP/UDP 传输协议的sockets
stat 命令以文字的格式来显示inode的内容,语法如下:stat 文件或目录
例如:
root@MyPC:~# touch newfile
root@MyPC:~# stat newfile
文件:newfile
大小:0 块:0 IO块:4096 普通空文件
设备:803h/2051d Inode:132835 硬链接:1
权限:(0644/-rw-r--r--)Uid:( 0/ root)Gid:( 0/ root)
最近访问:xxx
最近更改:xxx
最近改动:xxx
创建时间:xxx
输出重定向和管道命令符
1.输入域输出重定向
当我们执行指令的时候,这个指令可能会由文件读入数据,经过处理之后,再将数据输出到屏幕上,这个过程当中可能会有标准输入、标准错误输入、标准输出、标准错误输出。Linux下使用标准输入stdin(0,默认是键盘)和标准输出stdout(1,默认是终端屏幕)来表示每个命令的输入和输出,还使用一个标准错误输出stderr(2,默认是终端屏幕)用于输出错误信息。对于输入输出重定向来讲,用到的符号及其作用如表
输入输出重定向符号及作用
符号 作用
command<file 将file文件作为command命令的标准输入
command>file 将command命令结果输出到file文件中,如果有则覆盖,如果没有则新建
command>>file 将command命令结果输出到file文件中,如果有则追加,如果没有则新建
command2>file 将command命令结果的错误信息输出到file文件中,如果有则覆盖,如果没有则新建
command&>file 将command命令结果的所有信息(正确/错误)输出到file文件中,如果有则覆盖,如果没有则新建
例如:root@MyPC:~# echo "a" > 1.txt //写入
root@MyPC:~#echo "b" >> 1.txt //追加
root@MyPC:~#cat < 1.txt //输入重定向
a
b
root@MyPC:~# ls 2.txt //浏览不存在
ls:无法访问'2.txt':没有那个文件或目录
root@MyPC:~# ls 2.txt 2> error.txt //错误信息重定向
root@MyPC:~#cat error.txt //查看文件
ls:无法访问'2.txt':没有那个文件或目录
root@MyPC:~#
2.管道命令符
管道命令符“|”的作用是将前一个命令的标准输出作为后一个命令的标准输入,格式为:
“命令A | 命令B | 命令C”
例:
root@MyPC:~# cat 1.txt //查看内容
a
b
c
a
b
a
c
c
root@MyPC:~# cat 1.txt | wc //统计信息
8 8 16
root@MyPC:~# cat 1.txt | sort | uniq -c //排序并统计
3 a 2 b
3 c
wc命令用于计算指定文件的行数、字数,以及字节数。(“-1”参数显示行数,“-w”参数显示字数,“-c”参数显示字节数)
sort命令用于将文本文件内容以行为单位进行排序。(默认正序,“-r”参数逆序)
uniq命令用于检查及删除文本文件中重复出现的行列,一般于sort命令组合使用。(“-c”参数在每列旁边显示该行重复出现的次数)
三、多用户
Linux特点之一的多用户指的是:可以存在多个用户同时对Linux系统进行操作。
默认情况下:只有root用户可以对用户进行增删改查。
适用场景:一个项目需要分工合作,每个人做不同的事,每个人都拥有自己独立的账号。
根目录下有众多文件夹,每个文件夹都有不同的功能。
例如root文件夹存放管理员相关文件,home文件夹存放用户相关文件。
etc文件夹就存放相关配置文件,一般情况下不要去修改。
passwd配置文件就存在在该目录下,负责保存Linux的所有用户相关的数据。
由三部分组成。
第一部分:root用户的相关信息
第二部分:系统用户相关信息(系统用户无法登录)
第三部分:自定义用户的相关信息
通过 cat /etc/passwd 命令 ,可以打开该文件,可以查看有多少用户
配置文件每行定义一个账号信息,以冒号分割为7个字段。
分别表示:
1.账号名称 2.密码
3.UID(用户的唯一id,root默认为0,普通用户默认从1000开始到65535)
4.GID (用户所在组的id,root默认为0,普通用户默认从1000开始到65535,默认和UID相等)
5. 账户说明信息 6. 账号对应的家目录
7. shell命令快捷登录的语法
group配置文件就存在在该目录下,负责保存Linux的所有组的相关的数据。
通过cat /etc/group 可以查看有多少组
1.切换至root用户(只有管理员才有该权限)
2.通过 useradd 用户名 ; 即可创建用户
3. 检查配置文件是否更新,检查home目录是否更新
4.设置(重置)密码: passwd 用户名
5.通过切换用户检查是否修改成功
6.userdel 用户名 表示删除指定的用户
groupadd 组名 即可创建一个组
groupmod -n 新组名 旧组名 可以修改组的名称
groupdel 组名 可以删除指定的组
gpasswd命令可以对组进行相关操作,例如添加组员,移除组员
例如:
gpasswd -a 用户名 组名 表示将用户插入到组中
gpasswd -d 用户名 组名 表示从该组删除指定用户
注意:一个组可以有多个组员,一个组员也可以在多个组中