Linux-7doc2-常用基本命令
常用基本命令
Shell 可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以
通过终端控制台来输入命令,由 shell 进行解释并最终交给内核执行。 本章就将分类介绍
常用的基本 shell 命令。
帮助命令
man 获得帮助信息
基本语法
man[命令或配置文件] (功能描述:获得帮助信息)
显示说明
案例实操
(1)看ls命令的帮助信息
[root@hadoop101 ~]#man ls
help 获得 shell 内置命令的帮助信息
一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell 一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令
被称为“外部命令”。
基本语法
help 命令 (功能描述:获得 shell 内置命令的帮助信息)
案例实操
(1)查看cd命令的帮助信息
[root@hadoop101 ~]# help cd
常用快捷键
常用快捷键 | 功能 |
---|---|
ctrl+c | 停止进程 |
ctrl+l | 清屏,等同于 clear;彻底清屏是:reset |
善用tab键 | 提示(更重要的是可以防止敲错) |
上下键 | 查找执行过的命令 |
文件目录类
pwd 显示当前工作目录的绝对路径
pwd:print working directory 打印工作目录
基本语法
pwd (功能描述:显示当前工作目录的绝对路径)
ls 列出目录的内容
基本语法
ls [选项][日录或是文件]
选项说明
选项 | 功能 |
---|---|
-a | 全部的文件,连同隐藏档(开头为.的文件)一起列出来(常用) |
-l | 长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll” |
显示说明
每行列出的信息依次是:文件类型与权限链接数文件属主文件属组文件大小用byte来表示建立或最近修改的时间名字
cd 切换目录
基本语法
cd[参数]
参数说明
参数 | 功能 |
---|---|
cd绝对路径 | 切换路径 |
cd相对路径 | 切换路径 |
cd~或者cd | 回到自己的家目录 |
cd - | 回到上一次所在目录 |
cd .. | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
mkdir 创建一个新的目录
基本语法
mkdir[选项]要创建的目录
选项说明
-p 创建多层目录
案例实操
创建一个多级目录
[root@hadoop101 ~]# mkdir -p xiyou/dssz/meihouwang
rmdir 删除一个空的目录
基本语法
rmdir 要删除的空目录
touch 创建空文件
基本语法
touch 文件名
案例实操
root@hadoop101 ~]# touch xiyou/dssz/sunwukong.txt |
cp 复制文件或目录
基本语法
cp[选项] source dest(功能描述:复制source文件到dest
选项说明
选项 | 功能 |
---|---|
-r | 递归复制整个文件夹 |
参数说明
参数 | 功能 |
---|---|
source | 源文件 |
dest | 目标文件 |
rm删除文件或目录
基本语法
rm [选项] deletefile (功能描述:递归删除目录中所有内容)
选项说明
选项 | 功能 |
---|---|
-r | 递归删除目录中所有内容 |
-f | 强制执行删除操作,而不提示用于进行确认 |
-v | 显示指令的详细执行过程 |
案例实操
删除目录中的某些内容
[root@erha ~]# rm kss/erha/e1.txt kss/erha/e2.txt |
删除文件夹erha和其中的所有内容
[root@erha kss]# rm -r erha/ |
mv 移动文件与目录或重命名
基本语法
- mv oldNameFile newNameFile (功能描述:重名名)
- mv /temp/movefile /targetFolder (功能描述: 移动文件)
案例实操
重命名
happy.cfg hello2 hello3 |
[root@erha temp]# mv movefile/file1.txt movefile/file2.txt |
移动文件到上一级目录
[root@erha /]# touch temp/movefile/file1.txt |
cat 查看文件内容
基本语法
cat [选项] 要查看的文件
选项说明
选项 | 功能描述 |
---|---|
-n | 显示所有行的行号,包括空行 |
案例实操
查看文件内容并显示行号
[root@erha ~]# cat initial-setup-ks.cfg -n |
more 文件内容分屏查看器
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件 的内容。more 指令中内置了若干快捷键,详见操作说明。
基本语法
more 要查看的文件
操作说明
操作 | 功能说明 |
---|---|
空格键 | 向下翻一页 |
Enter | 向下翻一行 |
q | 立刻离开more,不再显示该文件内容 |
Ctrl+F | 向下滚动一屏 |
less分屏显示文件内容
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加 强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后 才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法
less 要查看的文件
操作说明
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/字符串 | 向下搜寻字符串;n:向下查找;N:向上查找; |
?字符串 | 向上搜寻字符串;n:向上查找;N:向下查找; |
q | 离开less这个程序; |
案例实操
[root@hadoop101 ~]# less smartd.conf |
echo输出内容到控制台
基本语法
echo [选项] [输出内容]
选项说明
选项 | 作用 |
---|---|
-e | 支持反斜线控制的字符转换 |
控制字符 | 作用 |
---|---|
\\ | 输出 \本身 |
\n | 换行符 |
\t | 制表符,也就是Tab键 |
案例实操
[root@erha ~]# echo "hello\nworld" |
显示环境变量
echo $PATH |
>输出重定向 和 >>追加
基本语法
- ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
- ls -a >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
- cat file1 > file2 (功能描述:将file1的内容覆盖到file2)
- echo “内容” >> file (功能描述:将内容追加到file)
案例实操
将ls查看信息写入到文件中
ls -l > houge.txt
采用echo将hello单词追加到文件中
echo hello >> houge.txt
ln 软链接
软链接也称符号链接,类似于Windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
基本语法
ln -s [源文件或目录] [软连接名]
经验技巧
- 删除软链接:rm -rf 软链接名,而不是rm -rf 软链接名/
- 如果使用rm -rf 软链接名/ 删除,会把软链接对应的真实目录下的内容删掉
- 查询:通过ll就可以查看,列表属性第一位是1,尾部会有位置指向。
案例实操
创建链接文件
[root@erha /]# ln -s /root/kss/erha/dog2.txt dog |
创建链接目录(相当于挂载)
无链接名时系统自动命名
[root@erha /]# ln -s /root/kss/erha [root@erha /]# ll lrwxrwxrwx. 1 root root 7 9月 17 21:40 bin -> usr/bin lrwxrwxrwx. 1 root root 14 10月 20 17:58 erha -> /root/kss/erha |
history 查看已经执行过的历史命令
基本语法
history
案例实操
[root@erha /]# history 1 ls 2 cd .. 3 ls |
显示刚刚使用的10行命令
[root@erha ~]# history 10 106 date '+%y-%m-%d %H-%M-%S' 107 date '+%Y-%M-%D %H-%M-%S' 108 date '%Y-%M-%D %H-%M-%S' 109 date '+%Y-%M-%D %H-%M-%S' 110 date '+%Y-%m-%d %H-%M-%S' 111 date '+%Y-%m-%d %H:%M:%S' 112 date -d '1 days ago' 113 date -s '2035-10-20 20:26:00' 114 date 115 history 10 |
使用上述命令
[root@erha ~]# !107 date '+%Y-%M-%D %H-%M-%S' 2035-30-10/20/35 20-30-18 |
清空历史命令
[root@erha ~]# history -c [root@erha ~]# history 1 history |
时间日期类
基本语法
data [option]…[+format]
选项说明
选项 | 功能 |
---|---|
-d<时间字符串> | 显示指定的“时间字符串”表示的时间,而非当前时间 |
-s<日期时间> | 设置系统日期时间 |
参数说明
参数 | 功能 |
---|---|
<+日期时间格式> | 指定显示时使用的日期时间格式 |
data显示当前时间
基本语法
- date 显示当前时间
- date “+%Y” 显示当前年份
- date “+%m” 显示当前月份
- date “+%d” 显示当前是哪一天
- date “+%Y-%m-%d %H:%M:%S” 显示年月日时分秒
年时分秒 最好大写
案例实操
[root@erha ~]# date "+%Y-%m-%d %H:%M%S" 2022-10-20 19:5909 |
date显示非当前时间
基本语法
- date -d ‘1 days ago’ 显示前一天时间
- date -d ‘-1 days ago’ 显示明天时间
- date -d ‘1 hours ago’ 显示前一小时
案例实操
[root@erha ~]# date -d '1 days ago' 2022年 10月 19日 星期三 20:18:08 CST |
date设置系统时间
基本语法
date -s 字符串时间 将系统时间设置为字符串时间
ntpdate time.nist.gov 同步系统时间(如果同步不成功查看解决报错)
案例实操
[root@erha ~]# date -s '2035-10-20 20:26:00' 2035年 10月 20日 星期六 20:26:00 CST [root@erha ~]# date 2035年 10月 20日 星期六 20:26:29 CST |
cal查看日历
基本语法
cal [选项] 显示本月日历
选项说明
-1, —one | 只显示当前月份(默认) |
---|---|
-3, —three | 显示上个月、当月和下个月 |
-s, —sunday | 周日作为一周第一天 |
-m, —monday | 周一用为一周第一天 |
-y, —year | 输出整年 |
-V,—version | 显示版本信息并退出 |
-h, —help | 显示此帮助并退出 |
案例实操
[root@erha ~]# cal |
用户管理命令
useradd添加新用户
基本语法
useradd 用户名 添加新用户
useradd -g 组名 用户名 添加新用户到某个组
id查看用户是否存在
基本语法
id 用户名
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# id kss |
passwd设置用户密码
基本语法
passwd 用户名
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# passwd kss |
cat /etc/passwd 查看创建了哪些用户
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# cat /etc/passwd |
su 切换用户
su(swith user)切换用户
基本语法
su 用户名 (切换用户,只能获得用户的执行权限,不能获得环境变量)
su -用户名 (切换到用户并获得该用户的环境变量及执行权限)
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# su cwx |
userdel 删除用户
基本语法
- userdel 用户名 (删除用户但保存用户主目录)
- userdel -r 用户名 (用户和用户主目录,都删除)
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# userdel kss |
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# userdel -r kss |
who查看登录用户信息
基本语法
- whoami (显示自身用户名称)
- who am i (显示登录用户的用户名以及登录时间)
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# whoami |
sudo 设置普通用户具有root权限
1. 添加atguigu用户,并对其设置密码
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# useradd atguigu |
2. 修改配置文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# vi /etc/sudoers |
修改/etc/sudoers文件,找到下面一行(最下面),在root下面添加一行,如下:
# Allow root to run any commands anywhere |
或者配置成采用sudo命令时,不需要输入密码
# Allow root to run any commands anywhere |
修改完毕,现在可以用 atguigu 帐号登录,然后用命令 sudo ,即可获得 root 权限进行 操作。
3. 案例实操
[atguigu@iZj6c4qxbpnkg5sjq6r7nhZ home]$ rm -rf module |
usermod 修改用户
基本语法
usermod -g 用户组 用户名 (修改用户的初始登录组,给定的组必须存在。默认组 id 是 1)
案例实操
将用户加入到用户组
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# usermod -g root kss |
用户组管理命令
groupadd 新增组
基本语法
groupadd 祖名
案例实操
添加一个ikun组
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# groupadd ikun |
groupdel 删除组
基本语法
groupdel 组名
案例实操
删除ikun组
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# groupdel ikun |
groupmod 修改组
基本语法
groupmod -n 新组名 老祖名
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# groupmod -n jinitaimei ikun |
cat /etc/group 查看创建了哪些组
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# cat /etc/group |
文件权限类
文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做 了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属 的用户和组。
从左到右的 10 个字符表示
如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:
0首位表示类型
在Linux中第一个字符代表这个文件是目录,文件或链接文件等等
- - 代表文件
- d 代表目录(directory)
- l 链接文档(link file)
第1-3位确定属主(该文件的所有者)拥有该文件的权限。—-User
第4-6位确定属组(所有者的同组用户)拥有该文件的权限。—-Group
第7-9位确定其他用户拥有该文件的权限。—-Other
rwx作用文件和目录的不同解释
作用到文件:
- [r]代表可读(read):可以读取,查看
[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
[x]代表可执行(execute):可以被系统执行
作用到目录:
- [r]代表可读(read):可以读取,ls查看目录内容
- [w]代表可写(write):可以修改,目录内创建+删除+重命名目录
- [x]代表可执行(execute):可以进入该目录
案例实操
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# ll |
文件属性
- 如果查看到是文件:链接数指的是硬链接个数。
- 如果查看的是文件夹:链接数指的是子文件夹个数
chmod改变权限
基本语法
第一种方式变更权限
chmod [{ugoa}{+-=}{rwx}] 文件或目录
第二种方式变更权限
chmod [mode=421] [文件或目录]
经验技巧
u:所有者 g:所有组 o:其他人 a:所有人(u,g ,o的总和)
r=4 w=2 x=1 rwx=4+2+1=7
案例实操
- 修改文件使其所属主用户具有执行权限
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll |
- 修改文件使其所属组用户具有执行权限
-rwxr--r-- 1 root root 0 Nov 12 17:50 a.txt |
- 修改文件所属主用户执行权限,并使其他用户具有执行权限
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chmod u-x,o+x a.txt |
- 采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权 限
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chmod 777 a.txt |
chown 改变所有者
基本语法
chown [选项] [最终用户] [文件或目录] (改变文件或者目录的所有者)
选项说明
-R | 递归操作 |
---|---|
案例实操
- 修改文件所有者
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# chown atguigu a.txt |
- 递归改变目录内的所有文件的所有者和所有组
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ll |
chgrp 改变所属组
基本语法
chgrp [最终用户组] [文件或目录] (改变文件或者目录的所属组)
案例实操
- 修改文件的所属组
-rwxrwxrwx 1 atguigu atguigu 0 Nov 12 17:50 a.txt |
搜索查找类
find 查找文件或者目录
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端
基本语法
find [搜索范围] [选项]
选项说明
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件,单位为:b—-块(512字节)c—-字节 w—-字(2字节) k—-千字节 M—-兆字节 G—-吉字节 (默认使用的是字节作为单位) |
案例实操
- 按文件名:根据名称查找/目录下的filename.txt文件。
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# find /root/ -name "*.txt" |
- 按用户名:查找/root目录下,用户名称为atguigu的文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# find /root/ -name "*.txt" -user atguigu |
- 按文件大小:在/home目录下查找等于4k的文件(+n大于 -n小于 n等于)
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# find -size 4k |
locate 快速定位文件路径
locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给 定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确 度,管理员必须定期更新 locate 时刻。
基本语法
locate 搜索文件
经验技巧
第一次使用需要在yum商店安装:yum -y install mlocate
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创 建 locate 数据库。
- 默认为模糊查询
案例实操
查询文件夹
[root@iZj6c4qxbpnkg5sjq6r7nhZ home]# locate tmp |
grep 过滤查找及”|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法
grep 选项 查找内容 源文件
选项说明
-n | 显示匹配行及行号 |
---|---|
案例实操
查找某文件在第几行
[root@iZj6c4qxbpnkg5sjq6r7nhZ /]# ls |
压缩和解压类
gzip/gunzip 压缩
基本语法
gzip 文件 (压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (解压缩文件命令)
经验技巧
- 只能压缩文件不能压缩目录
- 不保留原来的文件
- 同时多个文件会产生多个压缩包
案例实操
- gzip压缩文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls |
- gunzip解压缩文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# gunzip a.txt.gz |
zip/unzip 压缩
基本语法
zip [选项] XXX.zip 将要压缩的内容 (压缩文件和目录的命令)
unzip [选项] XXX.zip (解压缩文件)
选项说明
zip选项 | 功能 |
---|---|
-r | 压缩目录 |
unzip选项 | 功能 |
---|---|
-d<目录> | 指定解压后文件的存放目录 |
经验技巧
zip 压缩命令在Windows/Linux都通用,可以压缩目录且保留源文件。
案例实操
- 压缩目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# zip -r test.zip test |
- 解压目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# unzip -d test/ test.zip |
tar 打包
基本语法
tar [选项] XXX.tar.gz 将要打包进去的内容 (打包目录,压缩后的文件格式为XXX.tar.gz)
选项说明
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
-C | 解压到指定目录 |
案例实操
- 压缩多个文件
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# tar -zcvf all.tar.gz a.txt b.txt |
- 压缩目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls |
- 解压到当前目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ kss-file]# ls |
- 解压到指定目录
[root@iZj6c4qxbpnkg5sjq6r7nhZ test]# ls |
磁盘查看和分区类
du 查看文件和目录占用的磁盘空间
du:disk usage 磁盘占用情况
基本语法
du [选项] 目录/文件 (显示目录下每个子目录的磁盘使用情况)
选项说明
选项 | 功能 |
---|---|
-h | 以人们较易阅读的GBytes,MBytes,KBytes等格式自行显示 |
-a | 不仅查看子目录大小,还要包括文件 |
-c | 显示所有的文件和子目录大小后,显示总和 |
-s | 只显示总和 |
—max-depth=n | 指定统计子目录的深度为第n层 |
案例实操
查看当前用户主目录占用的磁盘空间大小
[root@iZj6c4qxbpnkg5sjq6r7nhZ ~]# du -sh |