常用的Linnx系统命令(1)
根据用户的权限,Linux系统中的用户大体分为两类:超级用户ROOT和普通用户。其中超级用户拥有操作Linux系统的所有权限。为保证系统安全,一般不使用超级用户登录,而是创建普通用户,以普通用户身份进行一系列操作。为避免普通用户权限过大或权限不足,通常由ROOT用户创建拥有多个权限的多个用户。
1.用户与用户组管理
1.1 用户管理
1. 添加用户
useradd [选项] 用户名
useradd 命令的常用选项如下:
- -d 指定用户登陆时的目录
- -c 指定账户的备用文字
- -e 指定账号的有效期限
- -f 缓冲天数,密码过期时 在指定天数后关闭该账号
- -g 指定用户所属组
- -G 指定用户所属的附加用户组
- -m 自动建立用户登录目录
- -r 创建系统账号
- -s 指定用户的登录shell
- -u 指定用户的用户ID。若添加-o选项,则用户ID可与其他用户重复
下面以创建账号bxg为例来演示useradd命令的使用方法,具体操作如下:
#创建新用户bxg,指定用户主目录为/usr/bxg并自动创建登录目录
[root@localhost ~]# useradd -d /usr/bxg -m bxg
#创建新用户itcast,设置其用户id为876
[root@localhost ~]# useradd itcast -u 876
与账户相关的信息大部分都会被存放在/etc目录下的passwd文件中,每新增一个用户,系统就会在该文件中追加一条记录,因此可以通过该文件来获取用户的属性信息。默认所有用户都有查看/etc/passwd文件的权限,下面以root用户为例,分别使用tail命令与grep命令查看/etc/passwd文件中的内容,具体操作如下:
#查看新建用户的属性信息
[root@localhost ~]# tail -1 /etc/passwd
#查看与root相关的属性信息
[root@localhost ~]# grep root /etc/passwd
2. 设置用户密码
passwd [选项] 用户名
passwd 命令的常用选项如下:
- -l 锁定密码,锁定后密码失效,无法登陆(新用户默认锁定)
- -d 删除密码,仅系统管理员可使用
- -S 列出密码相关选项,仅系统管理员可使用
- -f 强行执行
下面以bxg用户为例,展示使用passwd命令更改用户密码的方式,具体操作如下:
#为新用户bxg设置密码
[root@localhost ~]# passwd bxg
更改用户bxg的密码。
新的密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
3. 删除用户
userdel [选项] 用户名
userdel 命令的常用选项如下:
- -f 强制删除用户,即便该用户为当前用户
- -r 删除用户的同时,删除与用户相关的所有文件
下面以bxg用户为例,展示userdel命令的用法,具体操作如下:
#删除用户bxg及相关文件
[root@localhost ~]# userdel -r bxg
#强制删除用户bxg
[root@localhost ~]# userdel -f bxg
4. 修改用户信息
usermod 选项 参数
在使用usermod命令修改用户信息时,必须先确认该用户没有在电脑上执行任何程序。userdel 命令的常用选项如下:
- -c 修改用户账号的备注信息
- -d 修改用户的登录密码
- -e 修改账号的有效期限
- -f 修改缓存天数,即修改密码过期后关闭账号的时间
- -g 修改用户所属组
- -G 修改用户所属的附属组
- -l 修改用户账号名称
- -L 锁定用户密码,是密码失效
- -s 修改用户登录后使用的Shell
- -u 修改用户ID
- -U 删除密码锁定
下面以用户bxg为例,展示usermod命令的用法,具体操作如下:
#修改用户bxg的用户id为678
[root@localhost ~]# usermot -u 678 bxg
2.2 用户组管理
1. 新增用户组
增加用户组的方式有两种:一种是由系统默认创建——在创建新用户是,若无特别指定,系统会为新用户创建与其同名的用户组;另一种是使用groupadd命令主动添加,该命令的格式为:
groupadd [选项] 参数
groupadd 命令的常用选项如下:
- -g 指定新建用户组的组ID
- -r 创建系统用户组,组ID取值范围为1~499
- -o 允许创建组ID已存在的用户组
下面以创建用户组group1为例,来演示groupadd命令的使用方法,具体操作如下:
#创建一个用户组group1,设指定其组ID为550
[root@localhost ~]# groupadd -g 550 group1
2. 删除用户组
groupdel 用户组名
下面以删除用户组group1为例,展示groupdel命令的用法,具体操作如下:
#删除用户组group1
[root@localhost ~]# groupdel group1
3. 修改用户组属性
groupmod [选项] 参数
groupdel 命令的常用选项如下:
- -g 为用户组指定新的组ID
- -n 修改用户组的组名
- -o 允许创建组ID已存在的用户组
下面以用户组group1、itheima为例,展示groupmod命令的用法,具体操作如下:
#新建组ID为550 的用户组group1
[root@localhost ~]# groupadd -g 550
#在组ID550已存在的情况下,将用户组itheima的组ID改为550
[root@localhost ~]# groupmot -o itheima -g 550
#修改用户组group1的组名为itcast
[root@localhost ~]# groupmot group1 -n itcast
4. 用户组切换
newgrp 用户组
下面以root用户为例,展示切换用户组的用法,具体操作如下:
#切换用户root的工作组为itcast
[root@localhost ~]# newgrp itcast
5. 用户组管理
gpasswd 选项 参数
gpasswd 命令的常用选项如下:
- -a 添加用户到用户组
- -d 从用户组中删除用户
- -r 删除密码
- -R 限制用户登入组,只有组中的成员才能用newgrp加入用户组
下面以用户itheima为例,展示gpasswd命令的用法,具体操作如下:
#将用户itheim添加到用户组itcast
[root@localhost ~]# gpasswd -a itheima itcast
2.3 用户切换
1. su
使用su命令切换用户是最简单的用户切换方式,该命令可以在任意用户之间进行切换,该命令的格式如下:
su [选项] [用户名]
su 命令的常用选项如下:
- -c 执行完指定的命令后,切换到原来的用户
- -l 切换用户的同时,切换到对应用户的工作目录,环境也会随之改变
- -m,-p 切换用户时,不改变环境变量
- -s 指定要执行的shell
使用su命令时,由root用户切换到其他目录,可以不输入密码;由普通用户切入到目标用户时,需要输入目标用户的密码。
下面以用户itheima为例,展示su命令的使用方法,具体操作如下:
#从当前用户切换到root用户,但不改变工作环境
[root@localhost ~]$ su
password: #输入root用户的密码
[root@localhost itheima]#
#从当前用户切换到root用户,并更改工作目录
[itheima@localhost ~]$ su ~
password: #输入root用户的密码
[root@localhost itheima]#
#从当前用户切换到itcast
[root@localhost ~]$ su -m itcast
password: #输入itcast用户的密码
[root@localhost itheima]#
2. sudo
虽然su命令使用起来相当方便,但由于需要知道目标用户的密码,所以su命令是不安全的。若想保障系统的安全,可以使用sudo命令切换用户。sudo命令的格式如下:
sudo [选项] [参数]
sudo 命令的常用选项如下:
- -b 在后台执行命令
- -h 显示帮助
- -H 将HOME环境变量设置为新身份的HOME环境变量
- -k 结束密码的有效期限
- -l 列出当前用户可执行与无法执行的命令
- -p 改变询问密码的提示符号
- -s 执行指定的shell
- u 以指定的用户作为新的身份,即切换到指定用户。默认切换到root用户
2.文件管理
2.1 文件操作
- pwd
pwd命令用于显示当前工作目录的绝对路径,pwd目录通常不添加参数,直接在目录行中执行,具体示例如下:
[itheima@localhost ~]$ pwd #打印当前工作目录
- cd
cd命令用于更改目录。若执行该命令的用户具有切换目录的权限,cd命令将更改当前工作目录到对象目录。该命令的格式如下:
cd 参数
cd命令没有选项,其参数不可省略,具体示例如下:
[itheima@localhost ~]$ cd ./Public #切换工作路径到当前目录下的Public目录中
[itheima@localhost Public]$ cd .. #切换工作路径到上一级目录
[itheima@localhost ~]$ cd /etc/yum #切换工作路径到etc目录下的yum目录中
[itheima@localhost yum]$ cd ~ #切换工作路径为当前用户的家目录
- ls
pwd命令用于列出参数的属性信息,其命令格式如下:
ls [选项] [参数]
ls的参数通常为文件或者目录,常用的选项示例如下:
- -l 以详细信息的形式展示出当前目录下的文件
- -a 显示当前目录下的全部文件(包含隐藏文件)
- -d 查看目录属性
- -t 按创建时间顺序列出文件
- -i 输出文件的inode编号
- -R 列出当前目录下的所有文件信息,并一递归的方式显示各个子目录中的文件和子目录信息
ls命令的用法示例如下:
[itheima@localhost ~]$ ls #显示当前目录下的所有文件信息
[itheima@localhost ~]$ ls -a #显示当前目录下的所有文件(包含隐藏文件)
- touch
touch命令的主要功能是将已存在文件的时间更新为系统的当前时间。若指定的文件不存在,该命令将会创建一个新的文件,所以该命令有一个附加功能,即创建新的空文件。touch命令的格式如下:
touch 参数
touch命令的用法示例如下:
[itheima@localhost ~]$ touch file #创建新文件file
[itheima@localhost ~]$ touch file #更改文件file的时间戳
- mkdir
mkdor命令用于创建目录,其命令格式如下:
ls [选项] [参数]
ls命令常用的选项示例如下:
- -p 若路径中的目录不存在,则先创建目录
- -v 查看文件创建工程
mkdir命令用法具体示例如下:
#在当前路径下的itheima目录中创建bxg目录,并查看创建过程
[itehima@localhost ~]$ mkdir -pv ./itheima/bxg
- cp
cp命令的功能为将一个或多个源文件复制到指定的目录,其命令格式如下:
cp [选项] [源文件或目录] [目的目录]
默认情况下,该命令不能复制目录,若要复制目录,需同时使用-R选项。常用的选项示例如下:
- -R 递归处理,将指定目录下的文件及子目录一并处理
- -p 复制的同时不能修改文件的属性,包括所有者、所属者、权限和时间
- -f 强行复制文件或目录,无论目标文件或目录已经存在
cp命令的用法示例如下:
#将当前路径下的文件a复制到目录./dir中
[itheima@localhost ~]$ cp a ./dir
#将当前路径下的Public目录复制到./itheima/bxg
[itheima@localhost ~]$ cp -R Public ./itheima/bxg
- rm
rm命令的功能为删除目录中的文件或目录,该命令可同时删除多个对象,其命令格式如下:
rm [选项] 文件或目录
若要使用rm命令删除目录,需在参数前添加-R选项。常用的选项示例如下:
- -f 强制删除文件或目录
- -rf 选项-r与-f结合,删除目录中所有文件和子目录,并且不一一确认
- -i 在删除文件或目录时要对删除的内容逐一进行确认(y/n)
rm命令的用法示例如下:
[itheima@localhost ~]$ rm file
[itheima@localhost ~]$ rm -f file
- mv
mv命令的功能为移动文件或目录。其命令格式如下:
mv [选项] 源文件/目录 目标目录
常用的选项示例如下:
- -b 若目标目录中文件已存在,则覆盖前为其创建一个备份
- -f 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
- -i 若源文件与目标文件或目录的文件重名,则覆盖文件或目录前,对要覆盖内容逐一进行确认(y/n)
- -u 只有源文件比目标文件新,或目标文件不存在时,才执行移动操作
mv命令的用法示例如下:
#将文件a移动到目录./itheima/bxg中
[itheima@localhost ~]$ mv a ./itheima/bxg
- rmdir
rmdir命令的功能与rm命令相似,其命令格式如下:
rmdir [-p] 目录
2.2 查看文件
- cat
cat命令功能为将文件中的内容打印到输出设备,其命令格式如下:
cat 文件名
其命令具体示例如下:
[itheima@localhost ~]$ cat /etc/passwd #打印etc目录下passwd文件中的内容
- more
more命令用于分页显示文件内容,其命令格式如下:
**more [文件名] **
其快捷键如下:
- f/Space 显示下一页
- -Enter 显示下一行
- -q/Q 退出
more命令的用法示例如下:
#使用more命令分页显示etc目录下passwd文件中的内容
[itheima@localhost ~]$ more /etc/passwd
- less
用less命令显示文件时,使用PageUp键可向上翻页,使用PageDown键可向下翻页,使用Q键可退出分页显示。
less命令的用法示例如下:
#使用less命令分页显示etc目录下passwd文件中的内容
[itheima@localhost ~]$ less /etc/passwd
- head
head命令用于查看指定文件的前n行内容,其命令格式如下:
head -n filename
以上格式中的n为要查看的行数,filename为待查看文件的文件名。
head命令的用法示例如下:
#查看etc目录下passwd文件的前3行内容
[itheima@localhost ~]$ head -3 /etc/passwd
- tail
head命令用于查看指定文件的后n行内容,其命令格式如下:
tail -n filename
以上格式中的n为要查看的行数,filename为待查看文件的文件名。
tail命令的用法示例如下:
#查看etc目录下passwd文件的后3行内容
[itheima@localhost ~]$ tail -3 /etc/passwd
- wc
使用wc命令可计算文件的字节数、字数、列数,其命令格式如下:
wc [选项] 参数
常用的选项示例如下:
- -c 统计指定文件中文本的字节数
- -l 统计指定文件中文本的行数
- -w 统计指定文件中文本的字数
wc命令的用法示例如下:
[itheima@localhost ~]$ wc -l /etc/passwd #统计passwd文件的行数
[itheima@localhost ~]$ wc -c /etc/passwd #统计passwd文件的字节数
2.3 文件搜索
- which
使用which命令可以获取指定命令的绝对路径,其命令格式如下:
which 命令
其命令具体示例如下:
#搜索ls命令所在路径
[itheima@localhost ~]$ which ls
- find
find命令可借助搜索关键字查找文件或目录,其命令格式如下:
find [搜索路径] [选项] 搜索关键字
常用的选项示例如下:
- -name 根据文件名查找
- -size 根据文件大小查找
- -user 根据文件所有者查找
find命令的用法示例如下:
#按文件名passwd在etc目录下进行搜索
[itheima@localhost ~]$ find /etc -name passwd
#按用户itheima在user目录下进行搜索
[itheima@localhost ~]$ find /usr -user itheima
- locate
locate命令同样可以提供搜索关键字查找文件或目录,其命令格式如下:
locate [选项] 搜索关键字
其命令具体示例如下:
#搜索etc目录下所有以pas开头的文件
[itheima@localhost ~]$ locate /etc/pas
- grep
grep的基础功能是在文件中搜索与指定字符串相匹配的行为并打印到终端,其命令格式如下:
grep [选项] 指定字符 源文件
常用的选项示例如下:
- -c 统计文本中在指定字符串匹配的行数
- -E 使用扩展正则表达式进行匹配
- -i 不区分大小写
grep命令的用法示例如下:
#查找/etc/passwd文件中包含root的行
[itheima@localhost ~]$ grep root /etc/passwd
#查找/etc/passwd文件中包含root的行数
[itheima@localhost ~]$ grep -c root /etc/passwd