Linux6基础命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux6基础命令相关的知识,希望对你有一定的参考价值。
关闭系统的防火墙:(1)关闭iptables chkconfig iptables off
(2)关闭selinux: vim /etc/sysconfig/selinux 修改‘’SELINX=disabled’,保存并退出。
(3)重启系统:reboot 或 init 6
Init进程对应的PID号总是为“1”。
Init配置文件
/etc/inittab 配置默认运行级别
/etc/sysconfig/init 控制tty终端的开启数量、终端颜色方案
/etc/init/rcS.conf 加载rc.sysinit脚本,完成系统初始化任务
/etc/init/rc.conf 兼容脚本,负责各运行级别的调用处理
/etc/ini/rcS-sulogin.con 为单用户模式启动/sbin/sushell环境
/etc/init/control-alt-delete.conf 控制终端下的Ctrl+Alt+Del热键操作
/etc/init/start-ttys.conf 配置tty终端的开启数量、设备文件
/etc/init/tty.conf 控制tty终端的开启
Id:runlevels:action:process
即 标记:运行级别:动作类型:程序或脚本
各运行级别的含义及用途
Init 0:关机状态,使用该级别时将会关闭主机。
Init 1:单用户模式,不需要密码验证即可登录系统,多用于系统维护。
Init 2:字符界面的多用户模式(不支持访问网络)。
Init 3:字符界面的完整多用户模式,大多数服务器主机运行在此级别。
Init 4:未分配使用。
Init 5:图形界面的多用户模式,提供了图形桌面操作环境。
init 6:重新启动,使用该级别时将会重启主机。
切换系统的运行级别: init 数字
查看系统的运行级别: runlevel
系统服务控制
Service 服务名称 控制类型 或者 /etc/rc.d/init.d/服务名称 控制类型
常见的控制类型
?start (启动):运行指定的系统服务程序,实现服务功能。
?stop (停止):终止指定的系统服务程序,关闭相应的功能。
?restart (重启):先退出,再重新运行指定的系统服务程序。
?reload (重载):不退出服务程序,只是刷新配置。
?status (查看状态):查看指定的系统服务的运行状态及相关信息。
优化开机自动加载的服务
1) 使用ntsysv图形工具: []里有*代表启动。
2) 使用chkconfig工具:
Chkconfig --list //查看所有服务的默认启动状态
Chkconfig --list 服务名称 //查看某个服务的默认启动状态
Chkconfig --level 运行级别列表 服务名称 on|off //可以指定某个服务开启或关闭
Linux命令分类
内部命令:指的是集成于Shell解释器程序(如Bash)内部的一些特殊指令,也称为内建(Built-in)指令。
外部命令:指的是Linux系统中能够完成特定功能的脚本文件或二进制程序,每个外部命令对应了系统中的一个文件,是属于Shell解释器程序之外的命令。Linux系统必须知道外部命令对应的文件位置,才能够由Shell加载并执行。
Linux命令行的格式: 命令字 [选项] [参数]
1) 命令字:即命令名称,是整条命令中最关键的一部分。
2) 选项的作用是调节命令的具体功能,决定这条命令如何执行。
?不同的命令字,其能够使用的选项也会不同(选项的个数和内容)。
?选项的数量可以是多个,也可以省略。同时使用多个选项时,选项之间使用空格分隔。若不使用选项,将执行命令字的默认功能。
?使用单个字符的选项时,一般在选项前使用“—”符号(半角的减号符)引导,称为短格式选项,如“-l”。多个单字符选项可以组合在一起使用,如“-al”等同于“-a -l”。
?使用多个字符的选项时,一般在选项前使用“——”符号(两个半角的减号符)引导,称为长格式选项,如“——help”。
3) 参数:命令参数是命令字的处理对象,通常情况下命令参数可以是文件名、目录(路径)名或用户名等内容。
获得命令帮助
1) 使用help命令是查看各Shell内部命令的帮助信息。
2) 使用“——help”选项对于大多数Linux外部命令,可以显示对应的命令字格式及选项等帮助。
3) Man手册(manual page)是Linux系统中最为常用的一种在线帮助形式。
列如:[[email protected] ~]#man ls | col -b > lshelp.txt
在这个列子中,其中col是一各命令程序,用于过滤文本中的一些特殊控制字符;另外还使用到了“|”和“>”符号,这是Shell环境中的两种特殊功能应用,分别称为“管道”、“重定向输出”。
?管道:使用竖杠符号“|”表示,用于将前面命令的屏幕输出结果作为后面命令的操作对象(输入)。就好像一根管道一样,从这头塞入内容,从另一头出来。
?重定向输出:使用大于符号“>”表示,前面的命令成功执行以后,其屏幕输出结果将保存到“>”号后边指定的文件中(覆盖),而不是直接输出到屏幕。“>>”表示追加不覆盖。
部分常见命令及作用
命令示例 作用
uname -r 查看当前使用的Linux内核版本信息
cat/proc/cpuinfo 查看当前主机的CPU型号、规格等信息
cat/proc/meminfo 查看当前主机的内存信息
hostname 查看当前主机的完整名称
Ifconfig eth0 查看第1块以太网卡的地址信息
shutdown -h now 关机
shutdown -r now 重启
pwd 显示用户当前所在的工作目录位置
cd — 将用户的工作目录更改到其他位置
? — 当前的工作目录
?? — 当前目录的上一级目录
~用户名 — 指定用户的宿主目录,省略用户名时为当前用户
— 上一次的工作目录
Ls 显示目录中的内容,包括子目录和文件的相关属性信息等
-l 以长格式显示,包括权限、大小、最后更新时间等信息
-a 显示所有子目录和文件,包括隐藏目录和隐藏文件
-d 显示目录本身的属性,而不是显示目录中的内容
-h 以K、M等单位显示大小,而不是默认字节
du 统计指定目录(或文件)所占用磁盘空间的大小
-a — 统计时包括所有的文件,而不仅仅只统计目录
-h — 以K、M等单位显示统计结果
-s — 只统计参数所占总大小,而非子目录、文件的大小
touch 创建空文件
mkdir 用于创建新的空目录
-p — 一次性创建嵌套的多层目录
ln 为文件或目录建立链接文件(类似Windows的快捷方式)
-s — 创建软链接
cp 复制文件或目录
-f — 覆盖同名文件或目录时不进行提醒,而直接强制复制
-i — 覆盖同名文件或目录时提醒用户确认
-p — 复制时保持源文件的权限、属主及时间标记等属性不变
-r — 复制目录时使用,表示递归复制所有文件及子目录
rm 用于删除指定的文件或目录
-f — 删除文件或目录时不进行提醒,而直接强制删除
-i — 删除文件或目录时提醒用户确认
-r — 删除目录时使用,表示递归删除整个目录树
mv 将指定的文件或目录转移位置,如果目标位置于源位置相同,则效果相当于为文件或目录改名
which 查找用户所执行的命令文件存放的目录
find 查找文件或目录
-name — 根据目标文件的名称进行查找,可使用“*”及“?”通赔符
-size — 根据目标文件的大小进行查找
-user — 根据文件是否属于目标用户进行查找
-type — 根据文件的类型(f/d/b/c)进行查找
查看及检索文件
1) cat命令—显示并连接(Concatenate)文件的内容
例如:查看cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 //第一块网卡
ONBOOT=yes
BOOTPROTO=none //定义网卡,静态static 或none;动态dhcp.
NETMASK=255.255.255.0 //子网掩码
IPADDR=192.168.4.11 //ipv4地址
GATEWAY=192.168.4.254 //网关
TYPE=Ethernet //类型:以太网
查看多个文件的内容 cat /etc/redhat-release /proc/version
//前者记录了RHEL系统的发行版本信息,后者记录了系统内核及开发环境,时间等信息。
2)more和less命令—分页查看文件内容
例如:分屏查看more /etc/httpd/conf/httpd.conf(网站配置文件)的内容。
在该阅读界面中,可以按enter键向下逐行滚动查看,按空格键可以向下翻一屏,按b键向上翻一屏,按q键退出并返回到原来的命令环境。
more命令除了可以分屏查看文件内容以外,还可以结合管道符号“|”分屏查看执行命令时的输出信息,这在命令输出内容较多的情况下特别有用。
例如:分页查看/etc/目录下有那些扩展名为“.conf”的配置文件。命令如下:
ls –lh /etc/.conf | more
3)head和tail命令—查看文件开头或末尾的部分内容
“head -n” head是头部(n为具体行数)。 “tail -n” tail 查看末尾,配合“-f”可跟踪动态更新。
例如:查看用户账号文件/etc/passwd开头第1行至第4行的部分内容。 head -4 /etc/passwd
例如:查看系统公共日志文件/var/log/messages的最后十行内容,并在末尾跟踪显示该文件中新纪录的内容(按ctrl+c组合键终止)。tail -f /var/log/messages
统计和检索文件内容
1) wc命令— 统计文件内容中的单词数量(word count)、行数等信息
参数: ?-c:统计文件内容中的字节数
?-l: 统计文件内容中的行数
?-w:统计文件内容中的单词个数
使用不带任何参数选项的wc命令时,默认同时使用以上的三个选项。
例如:查看/etc/passwd文件中有多少行。 Wc -l /etc/passwd
若要统计/etc/目录下共包含多少个扩展名为“.conf”的文件,可以先通过“find /etc -name “.conf””命令找出符合条件的文件位置,每行记录一个文件内容。find /etc -name “*.conf” | wc -l
2)grep命令—检索、过滤文件内容
参数 : ?-i:查找内容时忽略大小写(lgnore case).
(选项) ?-v:反转查找(invert),即输出与查找条件不相符的行。
例如:执行“grep “ftp” /etc/passwd””命令,可以在账号文件/etc/passwd中查找包含“ftp”字符串的行,实际上输出了名为ftp的用户账号的信息。
例如:显示出/etc/vsftpd/vsftpd.conf文件中以“#”开头的行和空行以外的内容。($代表空行)。命令如下:
grep -v “^#” /etc/yum.conf | grep -v “^$”
使用压缩和解压缩工具
1) gzip和gunzip命令
使用gzip制作的压缩文件默认的扩展名为“.gz”。制作压缩文件时,使用“-9”选项可以提高压缩的比率,但文件较大时会需要更多的时间。
gzip 文件或目录 这是.gz压缩。 解压:gzip –d 文件.gz 或者 gunzip 文件.gz
2) bzip2和bunzip2命令的用法与gzip、gunzip命令基本相同,使用bzip2制作的压缩文件默认的扩展名为“.bz2”
使用tar归档和释放工具的几个选项
?-c(小写):创建(create),tar格式的包文件。
?-C:解压时指定释放的目标文件夹。
?-f:表示使用归档文件。
?-j:调用bzip2程序进行压缩或解压。
?-p(小写):打包时保留文件及目录的权限。
?-P:打包时保留文件及目录的绝对路径。
?-t:列表查看包内的文件。
?-v:输出详细信息(verbose)。
?-x:解压.tar格式的包文件。
?-z:调用gzip程序进行压缩或解压。
命令格式: tar [选项] ??? 归档及压缩文件名 需要归档的源文件或目录???
例如:在当前目录下生成名为sysfile.tar.gz的归档压缩包。
tar zcf sysfile.tar.gz /etc /boot //对etc下的boot压缩成名为sysfile.tar.gz的归档
若要用”.tar.bz2”格式的归档压缩包,则将“—z”选项改为“—j”选项使用即可。
从归档文件中恢复数据迷路格式
tar [选项] ??? 归档及压缩文件名 [-C(大写)目标目录]
例如:将备份的usershome.tar.bz2中恢复数据,释放到根目录下(将覆盖现有文件)。
tar jxf /tmp/usershome.tar.bz2 -C /
设置命令别名 例如:将vi指向vim程序 命令如下。
alias vi=’/usr/bin/vim’
which -a vi vim 查看命令的位置
vi编辑器的工作模式:
命令模式 输入模式 末行模式
命令模式中的基本操作
1) 模式切换
?a:在当前光标位置之后插入内容。
?A:在光标所在行的末尾(行尾)插入内容。
?i:在当前光标位置之前插入内容。
?l:在光标所在行的开头(行首)插入内容。
?o:在光标所在行的后面插入一个新行。
?O:在光标所在行的前面插入一个新行。
2) 移动光标
翻页
?使用Page Down键或Ctrl+F组合键向下翻动一整页内容。
?使用Page Up键或Ctrl+B组合键向上翻动一整页内容。
光标移动左右上下。
行内快速跳转
?按Home键或^键、数字0键将光标快速跳转到本行的行首。
?按End键或$键将光标快速跳转到本行的行尾。
行间快速跳转
?使用按键命令1G或者gg可跳转到文件内容的第1行。
?使用按键命令G可跳转到文件的最后一行。
?使用按键命令#G可跳转到文件中的第#行(其中“#”号用具体数字替换)。
末行使用
“:set nu ”命令即可显示行号 “:set nonu”命令可以取消显示行号。
3) 复制、粘贴和删除
删除操作
?使用x键或Del按键删除光标处的单个字符。
?使用按键命令dd删除当前光标所在行,使用#dd的形式还可以删除从光标处开始的#行内容(其中“#”号用具体数字替换)。
?使用按键命令d^删除当前光标之前到行首的所有字符。
?使用按键命令d$删除当前光标处到行尾的所有字符。
复制操作
?使用按键命令yy复制当前行整行的内容到剪贴板,使用#yy的形式还可以复制从光标处开始的#行内容(其中“#”号用具体数字替换)。复制的内容需要粘贴后才能使用。
粘贴操作
?在vi编辑器中,前一次被删除或复制的内容将会保存到剪切板缓冲器中,按p(小写)键即可将缓冲区中的内容粘贴到光标位置处之后,按P(大写)键则会粘贴到光标位置处之前。
4)查找文件内容
在命令模式中,按/键后可以输入指定的字符窜,从当前光标处开始向后进行查找(?向前查找)。
5)撤退编辑及保存和退出
在对文件内容进行编辑时,有时候会需要对一些失误的编辑操作进行撤销,这时可以使用按u,U键。
保存当前的文件内容并退出vi编辑器时,可以按zz命令。
末行模式中的基本操作
- 保存文件 :w 例如:把当前保存到/root目录下,文件名为newfile。 //:w /root/newfile
- 退出编辑器“:q”命令。“q!”命令强行退出。
- 保存并退出。“:wq”或者“:x”。
- 打开新的文件进行编辑“:e”
- 在当前文件中读入其他文件内容“:r”
替换文件内容
: [替换范围] sub /旧的内容/新的内容[/g]
?%:在整个文件内容进行查找并替换。
?n,m:在指定行数范围以内的文件内容中进行查找并替换。
?最末尾的“/g”部分也是可选内容,表示对替换范围内每一行的所有匹配结果都进行替换,省略“/g”时将只替换每行中的第一个匹配结果。
例如:将文档中第5~15行中的“initdefault”字符窜替换为”DEFAULT”。
命令 : :5,15 sub /initdefault/DEFAULT/g
如果是全部所有把“5,15”换成“%”,%代表全部。
Linux命令与应用程序的关系
?应用程序命令的执行文件大多比较小,通常放置在/bin和/sbin目录中。对于内部命令,常集成在Bash程序内,而不是独立地执行文件。
?命令文件一般在安装操作系统时一起安装,用于辅助操作系统本身的管理。
?命令行大多适用于“命令字 选项 参数”形式的一般格式。
?命令只在字符操作界面中运行。
?应用程序的执行文件通常放在/usr/bin、/usr/sbin和/usr/local/bin、/usr/local/sbin等目录中。
?应用程序一般需要在操作系统之外再另行安装,提供相对独立于操作系统的功能,有时候等同于“软件”的概念。
?应用程序一般没有固定的执行格式,运行方式由程序开发者自行定义。
?应用程序可能会使用到图形界面,形式多样。
?有些应用程序提供的执行文件,能够使用像Linux命令一样的运行格式,所以也经常被称为程序命令。
Linux应用程序的组成
?普通的可执行程序文件。一般保存在“/usr/bin”目录中,普通用户即可执行。
?服务器程序、管理程序文件。一般保存在“/usr/sbin”命令中,只有管理员能执行。
?配置文件。一般保存在“/etc”命令中,配置文件较多时会建立相应的子目录。
?日志文件。一般保存在“/var/log”目录中。
?关于应用程序的参考文档等数据。一般保存在“/usr/share/doc/”目录中。
?执行文件及配置文件的man手册页。一般保存在“/usr/share/man/”目录中。
执行“rpm -ql postfix”命令,可以查看postfix软件包在系统中安装的目录和文件清单。
软件包的封装类型
?RPM软件包:这中软件包文件的扩展名为“.rpm”,只能在使用RPM机制的Linux操作系统中安装。
?DEB软件包:这中软件包文件的扩展名为“.deb”,只能在使用DPKG机制的Linux操作系统中安装。
?源代码软件包:这种软件包时程序员开发完成的原始代码,一般被制作成“.tar.gz”、“.tar.bz2”等格式的压缩包文件,因多数使用tar命令打包而成,被称为“TarBall”,需要使用相应的编译工具,如Linux中的C语言编译器gcc。
?附带安装程序的软件包:这种软件包的扩展名不一,但扔以TarBall格式的居多。
例如:挂载RHEL6.5的DVD光盘设备,并查看其中的bash和fontconfig-devel软件包。
mkdir -p /media/cdrom //建立光盘挂载位置
mount /dev/cdrom /media/cdrom //挂载光盘设备到此文件中
cd /media/cdrom/Packges/ //进入到光盘安装包中
ls -lh bash fontconfig-devel //显示带有开头字母安装包
使用RPM包管理命令——rpm
“ man rpm”命令可以获得关于rpm命令的详细帮助信息。
三类功能: ?查询、验证RPM包的相关信息。
?安装、升级、卸载RPM软件包。
?维护RPM数据库信息等综合管理操作。
1) 查询已安装的RPM软件包信息
?q:查询已知名称的软件包是否已经安装
?qc:显示指定软件包安装的配置文件
?qd:仅显示指定软件包安装的文档文件
?qa:显示当前系统中以RPM方式安装的所有软件列表
?qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息(——info)。
?ql:显示指定的软件包在当前系统中安装的所有目录、文件列表(——list)。
?qf:查看指定的文件或目录是由哪个软件包所安装的(——file)。
例如: rpm -qa | wc -l // 可以统计出有多少个RPM软件包。一行代表一个。
rpm -qa | grep -i samba //查询是否安装了名为“samba”的软件包,查询时不区分大小写。
rpm -q elinks lynx //查询是否已经安装elinks 和lynx的软件包
rpm -qi elinks //了解elinks软件包的摘要信息
rpm -ql wget //列出wget软件包安装的目录和文件清单
which vim //找出vim程序位置
/usr/bin/vim //所在位置
rpm -qf /usr/bin/vim //获知vim编辑器程序是在安装vim—enhanced软件包时生成的。
2) 查询RPM包文件中的相关信息
?qpi: 查看指定软件包的名称、版本、许可协议、用途描述等详细信息。
?qpl:查看该软件包准备要安装的所有目标目录、文件列表。
安装、升级、卸载RPM软件包
?-i:在当前系统中安装(install)一个新的RPM软件包
?-e:卸载指定名称的软件包
?-U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项。
?-F:检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装。
——force:强制安装某个软件包,当需要替换现已安装的软件包及文件,或者安装一个比当前使用的软件版本更旧的软件时,可以使用此选项。
——nodeps:在安装或升级、卸载一个软件包时,不检查于其他软件包的依赖关系。
?-h:在安装或升级软件包的过程中,以“#”号显示安装进度。
?-v:显示软件安装过程中的详细信息。
1)安装、升级软件包 通常使用“-ivh”的组合选项了解安装过程信息,及时跟踪安装进度。
2)卸载软件包 主要使用“-e”选项。
维护RPM数据库
1)重建RPM数据库 rpm --rebuilddb 或者 rpm --initdb
2)导入验证公钥 rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release //导入所在光盘目录下
从源代码编译安装程序
需要使用源代码编译的几种情况
?安装较新版本的应用程序时 ?当前安装的程序无法满足应用需求时 ?为应用程序添加新的功能时
编译源代码gcc和make是最佳的C/C + +语言编译器。
编译安装的基本过程
下载源代码安装包文件:步骤1 tar解包
用途:将源代码包解压、解包。释放到指定目录,等待编译
步骤2 ?/configure配置
用途:设置安装的目标文件夹,选择要安装的功能模块等
步骤3 make编译
用途:根据前一步配置,将源代码变成可执行的二进制文件
步骤4 make install 安装
用途:将编译好的二进制文件复制到系统中,并设置应用环境
例如:1解包 tar zxf httpd-2.2.15.tar.gz -C /usr/src/ //解压到/usr/src/目录下
2 配置 cd /usr/src/httpd-2.2.15.tar.gz/ //进入到所解压的目录
?/configure --prefix=/usr/local/apache //安装到指定文件目录中
3 编译及安装 make && make install
Vim /usr/local/apache/conf/httpd.conf //进入文本的第97行去掉#号,并启动Apache
/usr/local/apache/bin/apachectl start
管理用户账号和组账号
用户账号: 超级用户(root) 普通用户 程序用户
组账号: 基于某种特定联系将多个用户集合在一起,即构成一个用户组。每一个用户账号至少属于一个组,这个组该用户的基本组(或私有组);若该用户同时还包括其他的组中,则这些组称为该用户的附加组(或公共组)。
UID和GID号
UID(User Identity,用户标识符),表示用户是唯一。Root用户账号的UID号为固定值0,而程序用户账号的UID号默认为1~499,500~60000的UID号默认分配给普通用户使用。
GID(group Identity,组标识符)。表示组是唯一。Root组账号的GID号为固定值0,而程序组账号的GID号默认为1~499,500~60000的GID号默认分配给普通组使用。
用户账号文件:
与用户账号相关的配置文件主要有两个,分别是/etc/passwd、/etc/shadow。前者用于保存用户名称、宿主目录、登录shell等基本信息,后者用于保存用户的密码、账号有效期等信息。
例如:1)passwd文件中的配置行格式(一行代表一个用户)
teacher:x:500:500:teacher:/home/teacher:/bin/bash 用了“:”分了七段各项含义
?第1字段:用户账号的名称,也是登录系统时使用的识别名称。
?第2字段:经过加密的用户密码字串,或者密码占位符“x”。
?第3字段:用户账号的UID号。
?第4字段:所属基本组账号的GID号。
?第5字段:用户全名,可填写与用户相关的说明信息。
?第6字段:宿主目录,即该用户登录后所在的默认工作目录。
?第7字段:登录shell等信息,用户完成登录后使用的shell。
2)shadow(一行代表一个用户)
Shadow文件又被称为“影子文件”,其中保存有各用户账号的密码信息,因此对shadow文件的访问应该进行严格限制。默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件中的内容。
Root:$1$55HB4hhghfj$695GFDJG753:14374:0:9999:7::: 用了“:”分了9段,各项含义
?第1字段:用户账号名称。
?第2字段:使用MD5加密的密码字串信息,当为“*”或“!!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无需密码即可登录系统。
?第3字段:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数。
?第4字段:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制。
?第5字段:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制。
?第6字段:提前多少天警告用户口令将过期,默认值为7。
?第7字段:在密码过期之后多少天内禁用此用户。
?第8字段:账号失效时间,此字段指定了用户作废的天数,默认值为空,表示账号永久可用。
?第9字段:保留字段,目前没有特定用途。
添加、删除、修改用户账号
在RHEL6系统中,使用useradd命令添加用户账号主要完成的任务:
?在/etc/passwd文件和/etc/shadow文件的末尾增加该用户账号的记录。
?若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
?若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group、/etc/gshadow文件中。
1)useradd命令——添加用户账号: useradd [选项] 用户名
?-u:指定用户的UID,要求该UID号码未被其他用户使用。
?-d:指定用户的宿主目录位置(当与-M一起使用时,不生效)。
?-e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
?-g:指定用户的基本组名(或使用GID号)。
?-G:指定用户的附加组名(或使用GID号)。
?-M:不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录。
?-s:指定用户的登录shell。
例如:创建一个辅助管理员账号admin,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/admin”。 Useradd -d /admin -g wheel -G root admin
创建一个名为b_down的FTP账号(禁止终端登录),该账号将于2020-12-31失效。
Useradd -e 2020-12-31 -s /sbin/nologin b_down
2)passwd命令——为用户账号设置密码: passwd [选项] 用户名
?-d:清空指定用户的密码,仅使用用户名即可登录系统。
?-l:锁定用户账户。
?-S:查看用户账户的状态(是否被锁定)。
?-u:解锁用户账户。
3) usermod命令——修改用户账号属性
?-u:修改用户的UID号。
?-d:修改用户的宿主目录位置。
?-e:修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
?-g:修改用户的基本组名(或使用GID号)。
?-G:修改用户的附加组名(或使用GID号)。
?-s:指定用户的登录shell。
?-l:更改用户账号的登录名称(Login Name).
?-L:锁定用户账户。
?-U:解锁用户账户。
例如:将admin用户的宿主目录由/admin转移至/home/admin。
mv /admin /home/ //先转换目录
usermod -d /home/admin admin //在指定目录位置,后面填入账户名
4) userdel命令——删除用户账号
?-r:可同时删除宿主目录。
用户账号的初始配置文件:
添加一个新的用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件,这些文件来自于账号模板目录“/etc/skel”,基本上都是隐藏文件,较常用的初始配置文件包括”.bash_logout”、”.bash_profile”、”.bashrc”。其中,”.bashrc_profile”文件中的目录将在该用户每次登录时被执行;”.bashrc”文件中的命令会在每次加载”/bin/Bash”程序时(当然也包括登录系统)执行;而”.bash_logout”文件中的命令将在用户每次退出登录时执行。
组账号管理 - 组账号文件:与组账号相关的配置文件也有两个,分别是/etc/group、/etc/gshadow。前者用于保存组账号名称、GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息。
例如:获知root组包括哪些用户成员、哪些组中包含root用户。
grep “^root” /etc/group //检索root组包括哪些用户
grep “root” /etc/group //检索哪些组包括root用户 - 添加、删除、修改组账号
1) groupadd命令——添加组账号
2) gpasswd命令——添加、设置、删除组成员(还可设置组密码)
需要添加、删除成员用户时,可分别使用“-a”、“-d”选项。
例如:向root组中添加成员用户mike、删除成员用户webmaster。
gpasswd -a mike root gpasswd -d webmaster root
groups mike //确认Mike加入组中 groups webmaster //确认webmaster用户已退出
如果需要同时指定组账号的所有成员用户,可以使用“-M”选项。
例如:指定组账号adm中root、adm、daemon、webmaster、Mike这五个成员用户。
gpasswd -M root,adm,daemon,webmaster,mike adm //将这五个用户加入adm组中。
grep “^adm” /etc/group //查看是否加入成功
3)groupdel——删除组账号 格式:groupdel 组名
查询账号信息 - groups命令——查询用户账号所属的组
- id——查询用户账号的身份标识
- finger命令——查询用户账号的登录属性
-
w、users、who——查询当前主机的用户登录情况
管理目录和文件的属性
在Linux文件系统的安全模型中,为系统中的文件(或目录)赋予了两个属性:访问权限和文件所有者,简称为“权限”和“归属”。其中,访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用户账号)、属组(拥有该文件的组账号)。Linux系统根据文件或目录的访问权限、归属来对用户访问数据的过程进行控制。
查看目录和文件的属性
例如:[[email protected] ~]# ls -ld /etc /etc/passwd //列出/etc/目录和/etc/passwd文件的详细属性
drwxr-xr-x. 119 root root 12288 5月 9 17:33 /etc
-rw-r—r--. 1 root root 1678 5月 9 17:33 /etc/passwd
在上述输出信息中,第3、4个字段的数据分别表示该文件(或目录)的属主、属组,上列中“/etc”目录和“/etc/passwd”文件都属于root用户,root组;而第1个字段的数据表示该文件(或目录)的访问权限,如“drwxr-xr-x”和“-rw-r—r--”。
权限字段由四部分组成,各自的含义如下所述。
?第1 个字符:表示该文件的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件)、“—”(普通文件)、字母“l”(链接文件)等。
?第2 ~4个字符:表示该文件的属主用户(user)对该文件的访问权限。
?第5~7个字符:表示该文件的属组内各成员用户(group)对该文件的访问权限。
?第8~10个字符:表示其他任何用户(other)对该文件的访问权限。
?第 11 个字符:这里的“.”与SELinux有关,目前不必关注。
在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了三种不同的权限字符:r、w、x,分别表示可读、可写、可执行。若需要去除对应的权限,则使用“—”表示。例如,root用户对“/etc”目录具有可读、可写、可执行的完全权限(r w x),其他任何用户对“/etc”目 录 只具有可读可执行的权限(r – x);root用户对“/etc/passwd”文件具有可读、可写权限(r w -),root组内的各用户对“/etc/passwd”文件只具有可读权限(r--)。权限 文件 目录
(4)r 查看文件内容 查看目录内容(显示子目录、文件列表)
(2)w 修改文件内容 修改目录内容(在目录中新建、移动、删除文件或子目录)
(1)x 执行该文件(程序或脚本) 执行c d命令进入或退出该目录
设置目录和文件的权限
使用chmod命令设置文件或目录的权限时,基本的命令格式:
Chmod [agoa…] [+-=] [rwx] 文件或目…..
或者
Chmod nnn 文件或目录……
需要将某一个目录中的所有子目录及文件的权限都设置为相同的值,chmod结合“-R”选项即可轻松实现。例如:chmod -R 644 /var/ftp/pub
上述格式中,字符组合“[ugoa…][+-=][rwx]”或数字组合“nnn”的形式表示要设置的权限模式。其中,“nnn”为需要设置的具体权限值,如“755”“644”等;而“[ugoa…][+-=][rwx]”的形式中,三个组成部分的含义及用法如下所述。
?“ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件属组内的用户,“o”代表其他任何用户,“a”代表所有用户(u、g、o的总和)。
?“+-=”表示设置权限的操作动作。“+”代表增加相应权限,“—”代表减少相应权限,“=”代表仅设置对应的权限。
?“r w x”是权限的字符组合形式,也可以拆分使用,如“r”、“r x”等。
设置目录和文件的归属
需要设置文件或者目录的归属时,主要通过chown命令进行。可以只设置属主或属组,也可以同时设置属主、属组。使用chown命令的基本格式。
Chown 属主[:[属组] ] 文件或目录…..
同时设置属主、属组时,用户名和组名之间用冒号“:”进行分隔。如果只设置属组时,需使用“:组名”的形式。如果只需要设置目录或文件的属主,直接以用户名表示归属即可,递归修改目录归属同于可以使用“-R”选项。
例如:将/var/ftp/pub/目录的属主由root改为ftp(调整后用户ftp将拥有“r w x”的权限)。
Chown -R ftp /var/ftp/pub
将mymkdir文件的属主更改为daemon、属组更改为wheel.
Chown daemon:wheel /opt/wwwroot/
以上是关于Linux6基础命令的主要内容,如果未能解决你的问题,请参考以下文章