useradd [选项] 用户名
添加一个名为xm
的用户
useradd -d 指定目录 新的用户名
,给新创建的用户指定家目录xq
的用户,并指定其家目录为/home/dog
passwd 用户名
给刚刚创建的xm
指定密码
userdel 用户名
id 用户名
查询root
信息
当用户不存在的时候,会返回"无此用户"
su - 用户名
创建一个用户 xf
,,指定密码,然后切换到 xf
exit
指令类似于对于角色的管理,Linux系统可以对有共性的多个用户进行统一的管理
groupadd 组名
groupdel 组名
useradd -g 用户组 用户名
增加一个用户 zwj
, 直接将他指定到 wudang
usermod -g 用户组 用户名
创建一个 shaolin
组,让将 zwj
用户修改到 shaolin
pwd
指令显示当前工作目录的绝对路径
pwd
ls
指令显示指定目录所有的文件和目录,如果未指定目录则默认显示当前目录先的所有文件和目录
# 显示指定目录的文件名
ls [选项] [目录或者文件]
# 显示指定目录的详细信息
ls -l [目录或者文件]
# 显示指定目录的隐藏文件
ls -al [目录或者文件]
/home
目录下的文件信息ls -l
与 ll
指令是等效的)cd
指令切换到指定目录
cd [参数]
绝对路径和相对路径
'/'
)开始寻址的目录,例如/root
pwd
指令查看当前所在目录/root
目录mkdir
指令mkdir
指令用来创建目录(make directory的缩写)
mkdir [选项] 目录名
/home/test
目录下创建一个名称为demo1
的文件夹在/home/test
目录下创建demo2/code/
目录
如果直接创建则会提示
此时应当使用mkdir -p demo2/code
表示创建多级目录
rmdir
指令使用该指令可以删除空目录(不常用)
rmdir [选项] 目录名
应该使用rm -rf 目录名称
来删除一个非空的文件夹
rm
指令rm
指令可以用来删除文件或者目录
rm [选项] 要删除的文件或者目录
# 强制删除不提示
rm -f 文件名
# 删除整个文件夹并不提示
rm -rf 目录名
-r
:递归删除整个文件夹-f
:强制删除不提示-r
选项,则会给出如下提示,输入y后才会删除,如果不想删除可以输入ntouch
指令touch指令在当前文件夹创建空文件
touch 文件名称
mm
的文件cp
指令拷贝文件到指定目录
cp [选项] sourceAddress destAddress
# 递归复制整个文件夹
cp -r source dest
-r
:递归复制整个文件夹
mv
指令# 重命名文件
mv oldFileName newFileName
# 移动文件
mv source dest
cat
指令查看文件内容,以只读的方式打开
cat [选项] 要查看的文件
# cat指令只能浏览文件,而不能修改文件,为了浏览方便一般会使用如下命令分页浏览
cat -n 文件名称 | more
-n
:显示行号
aaa.txt
中写入一些内容并预览cat -n 文件名称 | more
预览文件并添加行号more
指令more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容
more 要查看的文件名
操作 | 功能说明 |
---|---|
空格键 | 向下翻一页 |
Enter | 向下一行 |
q | 离开more预览模式 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
less
指令less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。
less指令在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据显示再去加载内容,对于显示大型文件具有比较高的效率
less 要查看的文件名称
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/字串 | 向下搜索[字串]功能;n:向下继续查找,N:向上继续查找 |
?字串 | 向上搜索[字串]功能;n:向上继续查找,N:向上继续查找 |
a | 退出less |
tail
指令tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容
# 默认查看文件后10行
tail 文件
# 查看尾部指定行数
tail -n 5 文件
# 实时追踪文档的更新
tail -f 文件名称
>
指令和>>
指令这两个指令都是重定向指令
>
:输出重定向,会将原来的文件的内容覆盖
>>
:追加重定向,不会覆盖原来文件的内容,而是追加到文件的尾部
ls -l > a.txt
echo test text > b.txt
ls -al /home/ > c.txt
说明:如果使用命令重定向到文件,当该文件不存在时会创建该文件并且写入
ls -l > a.txt
echo test text > b.txt
ls -al /home/ > c.txt
echo
指令输出内容到控制台
echo [选项] [输出内容]
ln
指令建立链接,类似于windows中的快捷方式,主要粗放了链接其他文件的路径
# 硬链接
ln [源文件或目录] [链接名]
# 软连接
ln -s [源文件或目录] [连接名]
/home/test
下建立到/etc/httpd/conf
的软连接history
指令查看已经执行过的历史指令,也可以执行历史指令
history
# 查看指定格式的历史指令
history 10
在刚开始学习Linux的时候,我们难免会对某个指令不熟悉,此时可以查看Linux的用户手册,也可以使用Linux中自带的帮助命令查看对该指令的解释
man
指令获得帮助信息man [命令或配置文件]
查看ls
命令的帮助信息
help
指令help [命令]
查看cd
命令的帮助信息
可以百度直接查找该命令,例如ifconfig 的使用
或者是查看菜鸟教程的Linux命令手册
我更推荐第二种方法,可以过滤很多参差不齐的教程信息
date
指令显示当前日期
# 显示当前时间
date
# 显示当前年份
date +%Y
# 显示当前月份
date +%m
# 显示当前是哪一天
date +%d
# 显示年月日时分秒
date "+%Y-%m-%d %H:%M:%s"
运行上面的程序
date
指令设置日期date -s 字符串时间
cal
指令查看日历指令
cal [选项]
显示本月日历
显示2022年的日历
find
指令find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name <查询方式> | 按照指定的文件名查找模式查找文件 |
-user <用户名> | 查找属于指定用户名的所有文件 |
-size <文件大小> | 按照指定的文件大小查找文件(+n 大于;-n 小于; n 等于) |
查找/home路径下名称为a.txt的文件
查找/home路径下,属于test的文件
查找整个系统中大于20M的文件
locate
指令locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻
locate 搜索文件
由于locate指令基于数据库进行查询,所以第一次运行前必须使用updatedb
指令创建locate数据库
使用locate指令定位run.sh
文件所在的位置(需要先使用updatedb
指令更新locate数据库)
grep
指令和管道符号|
grep 过滤查找 ,管道符|
,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep [选项] 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显示匹配行及行号 |
-i | 忽略字母大小写 |
在hello.txt文件中查找yes所在行
在hello.txt文件中查找yes所在行并忽略大小写
gzip
和 gunzip
指令gzip
用于压缩文件, gunzip
用于解压文件
# 压缩文件,只能将压缩为*.gz文件
gzip 文件
# 解压命令
gunzip 文件.gz
压缩文件
解压文件
zip
和unzip
指令zip用于压缩文件,unzip用于解压文件,在项目打包发布中很有用
# 压缩指令
zip [选项] XXX.zip
# 解压缩指令
unzip [选项] XXX.zip
选项 | 功能 |
---|---|
zip -r | 递归压缩 |
unzip -d <目录> | 指定解压目录 |
将/home/test下的所有文件压缩成package.zip
将package解压到/opt/tmp目录下
tar
命令tar是打包指令,打包完后的文件是.tar.gz
文件
tar [选项] XXX.tar.gz 目录或文件
# 压缩命令,可以压缩多个文件或文件夹
tar -zcvf a.tar.gz a.txt b.txt c.txt
# 解压命令
tar -zxcf a.tar.gz
# 解压指定路径(注意指定的解压路径一定要存在,不然会报错)
tar -zxvf a.tar.gz -C /opt/tmp
压缩/home/test目录
将刚刚创建的压缩包解压到/opt/tmp
目录
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。
chown
指令修改文件所有者
chown 用户名 文件名
使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 tux
chgrp
指令chgrp 组名 文件名
使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 police 组
chmod
指令通过 chmod 指令,可以修改文件或者目录的权限
chmod u=rwx,g=wx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
chmod 755 文件目录名
给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限
以下两个命令是等价的
chmod u=rwx,g=rx,o=rx abc
chmod 755 abc
将abc的执行权限去掉