1、基本命令
1.1 关机重启
- 关机
关于关机的指令很多,大家可以参考
linux下常用的关机命令有:shutdown、halt、poweroff、init
shutdown -h now 即可关机
- now (现在)
- shutdown(关机)
shutdown -h 10 10分钟关机
-
shutdown -h 11:00 11:00关机<可以设定时间关机>
-
shutdown -h +10 预定时间关机(10分钟后)
-
shutdown -c 取消指定时间关机
-
init 0 立刻关机
-
telinit0 关机(关闭系统)
-
poweroff 立刻关机
-
halt 关机
- 重启
shutdown -r now 重启
reboot 重启
init 6 重启
shutdown 参数说明:
[-r] 重启计算器。
[-k] 并不真正关机,只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init而是自己来关机。不鼓励使用这个选项,而且该选项所产生的后果往往不总是你所预期得到的。
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
2、帮助命令
在 Linux 环境中,如果遇到困难,可以使用帮助命令来取得帮助。
常见的帮助命令有:man 命令、help 命令、info 命令
2.1 man命令
--man命令
man 是Manual pages的缩写。
man工具是显示系统手册中的内容,也是一本电子字典,这些内容大多数都是对命令的结束信息,还有一些向相关的描述,通过查看系统文档中man还可以得到程序的更多的相关的信息和Linux的更多特征
man通常用来获得某个命令的说明书和使用方式的详细结
2.2 help 命令
--help 命令
help 命令是用于显示 shell 内建命令的简要帮助信息,帮助信息中显示有该命令的简要说明以及一些参数的使用以及说明。
内部使用: help
外部使用:
ls --help
外部命令基本上都有一个参数 --help,通过这个参数可以得到相应的帮助。
这种方法非常简单,输出的帮助信息基本上是 man 命令的信息简要版。
2.3 pwd命令
-- pwd命令
pwd 命令是 print work directory 的缩写 执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
语法: pwd 参看所在路径
# pwd
/root/test
2.4 ls命令
-- ls命 令 ls 是list files的缩写
命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
ls常用参数
- -a 显示当前文件夹下所有的子目录和文件
- -l 显示文件详细信息
- -r 将件以相反次序显示(原定依英文字母次序)
- -t 将文件依建立时间之先后次序列出
- -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
- -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
- -R 若目录下有文件,则以下之文件亦皆依序列出
2.4 cd命令
--cd 命令
cd命令 是 change directory的缩写
- 参数说明
| 参数 | 说明 |
|---|---|
| cd/ | 根目录 |
| cd | 切换到当前用户的主目录(/home/用户)默认目录就是当前用户主目录 |
| cd~ | 切换到当前用户的主目录 |
| cd. | 切换到当前目录 |
| cd.. | 切换到上级目录 |
| cd- | 切换到上次进入的目录 |
| ./ | 当前目录下 |
3 关于Linux 目录
| 参数 | 说明 |
|---|---|
| / | 根目录,有且只有一个 |
| /home | 用户目录(加目录) |
| /root | (超级管理员)系统管理员root的目录 |
| /usr | 应用程序存放的文件夹 |
| 树形结构的文件系统 ,其中/是根目录,不能更改,其他文件都是他的子文件分支 |
3目录操作命令
3.1 目录切换 cd
命令:cd 目录
cd / 切换到根目录
cd /usr 切换到根目录下的usr目录
cd ../ 切换到上一级目录 或者 cd ..
cd ~ 切换到home目录
cd - 切换到上次访问的目录
3.2 目录查看 ls -nema
命令:ls name
ls 查看当前目录下的所有目录和文件
ls -a 查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 或 ll 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /dir 查看指定目录下的所有目录和文件 如:ls /usr
3.3 目录、文件的增、删、改、查
3.3.1 mkdir
- 创建目录 (增) mkdir
mkdir 目录名(你要创建的目录名)
mldir 测试 # 创建测试这个目录
cd 测试 # 进入测试这个目录
[root@VM-4-11-centos ~]# mkdir 测试 创建测试这个目录
[root@VM-4-11-centos ~]# cd 测试 进入测试这个目录
[root@VM-4-11-centos 测试]# mkdir 测试70 在测试文件
3.3.2 mkdir -p
- 创建层级目录 mkdir -p
mkdir -p 目录民/目录民(你要创建的目录名)
层级创建目录
[root@VM-4-11-centos ~]# mkdir -p 测试/测试90 #层级创建目录
[root@VM-4-11-centos ~]# cd 测试 #查找创建的目录
[root@VM-4-11-centos 测试]# cd 测试 #进入测试目录
[root@VM-4-11-centos 测试]# cd 测试90 #进入测试90 目录
[root@VM-4-11-centos 测试90]#
3.3.3.rm
- 删除目录或文件 rm
命令:rm -rf 目录
删除文件:
rm 文件 删除当前目录下的文件
rm -r 文件名 递归删除文件夹及文件夹下的所有内容
rm -f 文件 删除当前目录的的文件(不询问)
删除目录: rm rm -r aaa 递归删除当前目录下的aaa目录 rm -rf aaa 递归删除当前目录下的aaa目录(不询问)
3.3.4 rmdir
删除目录 rmdir
命令: rmdir 目录名
rmdir 删除目录名 (可以删除多个目录)
rmdir -f 目录名 强制删除
-f 强制删除
全部删除:
rm -rf* 将当前目录下的所有目录和文件全部删除
rm -rf /* 将根目录下的所有文件全部删除
注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包
4 mv 和cp
目录修改 mv(move) 和cp
4.1 mv
move 需要移动的文件夹 目标文件夹
一、重命名目录 命令:mv 当前目录 新目录 例如:mv aaa bbb 将目录aaa改为bbb 注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作 二、剪切目录 命令:mv 目录名称 目录的新位置 示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 mv /usr/tmp/aaa /usr 注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作。如果usr目录不存在,则这个命令会把aaa改名为usr 三、拷贝目录 cp(复制) 命令: cp 原文件 目标文件 cp -r 目录名称 目录拷贝的目标位置 -r代表递归 示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp /usr/tmp/aaa /usr 注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包等,如果目标文件存在同名文件,会覆盖 cp 参数说明:
| 参数 | 说明 |
|---|---|
| -i | 交互式,提示询问是否覆盖文件 |
| -r | 将目录以及目录下所有的目录以及文件复制并且移动 |
| -f | 强制 |
| -v | 显示进度 |
5、 创建文件 touch
命令: touch 文件名 如果文件不存在,创建一个新的文件 如果文件存在,不会覆盖原始文件,但是修改文件的时间 示例: 在当前文件夹下创建一个name.txt文件 touch name.txt
5.1、删除文件 rm rmdir
命令: rm 文件名 rmdir 文件名
5.2修改文件 vi
命令: vi 文件名 vi name.txt 打开name.txt文件进入 进入后点击i进入可编辑模式进行修改
5.3 保存文件或退出
保存文件并退出:
第一步:点击ESC进入命令行模式 第二步:: 进入底行模式 第三步:wq!保存并退出编辑
取消编辑: 第一步:ESC进入命令行模式 第二步::进入底行模式 第三步:q!撤销本次修改并强制退出
5、搜索目录 【查】find
find 命令是查找,目录以及所有的子目录 语法: find 文件名 find [参数] 文件名 find 路径 -name 文件名或目录名 路径不确定可以用通用符.来替代 find在硬盘上查找,比较消耗硬盘资源 参数说明: | 参数 | 说明 | | -type c | 文件类型是c的文件| | d | 目录 | | c | 字型装置文件 | | b | 区块装置文件 | | f | 一般文件 | 将当前目录及其子目录下所有文件后缀为 .c 的文件列出来
# find . -name "*.c"
将当前目录及其子目录中的所有文件列出:
# find . -type f
案例: 在当前文件夹下,寻找包含test的文件或者目录
6.1 locate
locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。 语法: locate 文件名 查找 passwd 文件
locate passwd
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
updatedb
7、查看文件
7.1 cat
命令: -n 展示的是文件的行数 cat 【可选参数】 文件名 cat -n(行数)文件名 [root@VM-4-11-centos 测试]# cat -n c.txt 1 hello woerld 2、hello woerldhello woerld 3、hello woerld
cat 文件名 [root@VM-4-11-centos 测试]# cat c.txt hello woerld hello woerldhello woerld hello woerld hello woerld hello woerld hello woerld
7.2 more
more指令和cat指令一样,more展示一页内容以后,等待用户手动翻看 也可以设置文件的行数和位置 命令: more 文件名 more name 查看文档内容 more +num 文件名 more +20 name 从第 20 行开始显示 name 之文档内容。
手动翻看的方式:
| 参数 | 说明 |
|---|---|
| 回车 | 一行一行的翻看 |
| q | 结束观看,退出 |
| 空格 | 一页一页的看 |
| b | 回退 |
| 设置文件扥行数和位置 | |
| 参数 | 说明 |
| +num | 定位,从哪一行开始展示 |
| -num | 规定页面展示多少条 |
7.3 less 翻页查看
less 手动翻页方式 语法: less 文件名
|参数 | 说明 | | 回车 | 一页一页的向下翻看 | | 空格 | 一页一页的翻看 | | f | 向前一页翻看 | | b | 向后一页 | | N | 显示行号 | | q | 退出 |
7.4 head
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容
语法:
head 文件名 <没有参数默认查看10行>
head [参数] 文件名
参数说明:
|参数 | 说明 |
| -q | 隐藏文件名 |
| -v | 显示文件名 |
| -c | 显示字节数 |
| -n | 显示行数 |
查看开头第几行
head -n 5 name
显示name文件前5行
查看开头第几个字节
head -c 20 name
显示name前的20个字节
7.5 tail
tail命令用于查看尾部数据,从尾部查找多少条数据 语法 : tail 文件名 <没有参数默认是10行> tail [参数] 文件名 查看name后10行数据
tail name
显示name后10行数据
查看后20行数据
tail -n +20 name
显示name后20行数据
查看后20个字符
tail -c 20 name
c查看name后的20个字符
8、搜索
8.1、where
windowl 里的命令
8.2、which
which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
which 文件名 查找可执行文件
用法:
which python
[root@VM-4-11-centos ~]# which python
/usr/bin/python
[root@VM-4-11-centos ~]# which python3
/usr/bin/python3
8.3、whereis
whereis 查找全部 语法: whereis 文件名 whereis [参数] 文件名 参数说明: | 参数 | 说明 | | -b | 只查找二进制文件 | | -m | 只查找说明文件 | | -s | 只查找原始代码文件 | 查找文件
whereis bash
查看bash文件的位置
查看二进制文件
$ whereis -b bash #显示bash 命令的二进制程序
bash: /bin/bash /etc/bash.bashrc /usr/share/bash # bash命令的二进制程序的地址
查看说明文件
$ whereis -m bash #显示bash 命令的帮助文件
bash: /usr/share/man/man1/bash.1.gz #bash命令的帮助文件地址
9 文本查找工具
9.1、grep
grep 命令用于查找文件里符合条件的字符串。 语法: grep [可选参数] 正则规则 [文件]
参数说明: | 参数 | 描述 | | -i | 不区分大小写 | | -n | 展示行号 | | -c | 展示匹配到的数据的次数 | | -l | 只展示匹配到的数据 | | -H | 展示的时候,展示文件名+匹配数据 | | -h | 展示的时候,不展示文件名,只展示匹配数据 | | -v | 匹配除了目标字符串外,所有的内容 | | -s | 不显示错误信息 |
案例:
在y.txt中匹配除了hello world以外所有的内容
grep -v 'hello world' y.txt
1.在所有的以D开头的文件中,查找包含test的行
grep 'test' D*
2.在文件aa bb cc 中查找包含test的行
grep 'test' aa bb cc
3.在文件y.txt中,寻找至少有5个字母的行
grep '[a-zA-Z]\{5,\}' y.txt
4.在文件中查找只有单词hello的行
grep '\<hello\>' y.txt
5.找到y.txt中,以world开头的行
grep '^world' y.txt
6.找到所有的以d开头的文件中,所有包含字符的行
grep '.' d* 匹配所有包含字符的行
grep '.*' d* 匹配所有包含字符的行和空行
7.在y.txt中,匹配3-5个小写字母
grep '[a-z]\{3,5\}' y.txt
案例2:
1.找出包含Java的行
grep 'java' y.txt
2.找出以Java开始的行
grep '^java' y.txt
3.找出以Java结尾的行
grep 'java$' y.txt
4.找出包含单词Java的行
grep '\<java\>' y.txt
5.显示Java所在行的行标
grep -n 'java' y.txt
10、grep 正则表达
元字符集:
-
^ 以什么开头:如: '^java''匹配所有以java开头的行。
-
'匹配所有以java结尾的行
-
. 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
-
"*" 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
- [] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
-
[^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
-
.... 标记匹配字符,如'lovelove',love被标记为1。
-
\ 锚定单词的开始,如:'\匹配包含以grep开头的单词的行。
-
> 锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。
-
x{m} 重复字符x,m次,如:'0{5}'匹配包含5个o的行。
-
x{m,} 重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。
-
x{m,n}重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5--10个o的行。
-
\w 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
-
\b 单词锁定符,如: '\bgrep\b'只匹配grep。
11、用户文件权限管理
如图:
11.1 概念
rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。
| 符号 | 权限 | 对应英文 | 数字表现形式 |
|---|---|---|---|
| r | 读 | read | 4 |
| w | 写 | write | 2 |
| x | 执行 | excute | 1 |
| 无权限 | 0 |
11.2 chmod
11.2.1 字母法
chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
语法规则: chmod <u+r>(参数) 文件名 chmod < 参数 > 文件名
chmod abc file
参数说明
| 用户类型 | 用户类型(英文) | 说明 |
|---|---|---|
| u | user | 文件所有者 |
| g | group | 文件所有者所在组 |
| o | others | 所有其他用户 |
| a | all | 所用用户,相当于ugo |
| 权限设置 |
| 参数 | 说明 |
|---|---|
| + | 增加权限 |
| - | 撤销权限 |
| = | 重新赋值权限 |
11.2.2 数字法
语法:
chmod 777 a.txt
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
-
r=4,w=2,x=1
-
若要 rwx 属性则 4+2+1=7;
-
若要 rw- 属性则 4+2=6;
-
若要 r-x 属性则 4+1=5。
| 符号 | 权限 | 对应英文 | 数字表现形式 |
|---|---|---|---|
| r | 读 | read | 4 |
| w | 写 | write | 2 |
| x | 执行 | excute | 1 |
| 无权限 | 0 |
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行
| # | 权限 | rwx | 二进制 |
|---|---|---|---|
| 7 | 读 + 写 + 执行 | rwx | 111 |
| 6 | 读 + 写 | rw- | 110 |
| 5 | 读 + 执行 | r-x | 101 |
| 4 | 只读 | r-- | 100 |
| 3 | 写 + 执行 | -wx | 011 |
| 2 | 只写 | -w- | 010 |
| 1 | 只执行 | --x | 001 |
| 0 | 无 | --- | 000 |
案例: 将文件 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将文件 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 :
chmod 777 file
12、管道(pipe)
定义:将一个命令的输出作为一个命令的输入
语法 : 命令1 | 命令2.。。。
案例:在y.txt中,寻找以hello为开头的行,并且在屏幕上打印出来
案例 将当前页面的文件详细信息分页展示
ll | more
案例 查看当前的网络信息,分页展示
ifconfig | more
ifconfig | less
13、打包和压缩
13.1、tar
Linux tar(英文全拼:tape archive )命令用于备份文件。
13.2、定义:
tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
是一个打包工具,打包与压缩是不一样:打包是将一组相关的资源放到一个文件夹下,便于管理
压缩:目的是为了节约资源
语法: tar [可选参数] 打包名 <需要打包的文件> 参数说明:
| 参数 | 描述 |
|---|---|
| -c | 创建一个新的包 |
| -t | 查看包中的文件 |
| -v | 打包的过程中红色显示被打包的文件 |
| -f | 指定压缩文件名 |
| -x | 解开一个包 |
| -z | 同时使用gzip工具进行压缩 |
| 案例: |
1.将shanghui进行打包,打包成shanghui.tar
tar -cvf shanghui.tar shanghui
2.将shanghui.tar进行解包
tar -xvf shanghui.tar
3.查看包里面的文件
tar -tvf shanghui.tar
4.将x.txt 和y.txt打包成test_grep.tar
tar -cvf test_grep.tar x.txt y.txt
13.3、zip
zip 命令用于压缩一个文件或者多个文件,window最常见有个zip格式的压缩文件
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。 语法: zip 压缩文件名 需要压缩的文件(文件或者目录)
13.4解压缩
命令:tar [参数] 压缩文件
其中:x:代表解压
unzip 压缩文件名
13.5 gzip
13。6 定义
用于文件的压缩
后缀.gz