目录
一、管道命令 |
(一)功能
前面命令的输出结果,作为下一个命令的输入内容
(二)使用
命令1 | 命令2
命令1的结果写入到| ,命令2的输入就是这个文件
二、统计命令 wc
(一)功能
对文件的行数、单词数、字符数进行统计
(二)使用
wc filename
示例:
输出结果分别是:行数 单词数 字符数 文件名
(三)参数
-l(小写的L): 查看行数
-w :查看单词数
-c :查看字符数
三、检索文件内容命令 grep
(一)功能
在指定文件中检索指定字符串
(二)使用
grep "<字符串>" <filename>
示例:
- 注:经常配合管道符使用
(三)参数
-n : 查看行号
-i :忽略大小写检索
-v :反向检索
-w :精确查找,以单词形式进行检索
-R :以递归方式依次检索目录中的所有文件
特殊用法:
grep “^hello” demo //检索以hello开头的行
grep “hello$” demo //检索以hello结尾的行
grep “^hello$” demo //检索以hello单独的行
示例:
四、查找命令 find
(一)功能
在路径下查找指定文件
(二)使用
1. 根据文件名查找
find path -name <filename>;
示例:
2. 根据文件类型查找
find path -type <type>;
示例:
- 注:文件类型:
b:块设备文件,如硬盘
c:字符设备文件
s:套接字文件
l:链接文件
-:普通文件 -f 在find使用时表示普通文件
p:管道文件
d:目录文件 - 注:经常配合管道符使用
五、通配符
1. ‘*’:通配任意个数任意字符
2. ‘?’:通配一个任意的字符
3. ‘[字符1字符2字符3…字符n]’:通配’[]'中的任意一个字符
4. ‘[起始字符-终止字符]’:通配这个区间中的任一字符
六、修改权限chmod
(一)通过八进制数字修改
chmod 0777 <filename> //0可以省略,但不建议
通过三位二进制数分别代表rwx的权限,有权限为1,无权限为0;
三位二进制为一组,分为三组,分别是所属用户权限,所属组权限,其他用户权限
- 注:除了管理员,只有文件所属用户可以修改该文件的权限
(二)通过 +/- 符号修改
权限:
当前用户 组权限 其他权限
u: user 所属用户
g: group 所属组
o: other 其他用户
a: all 所有用户
chmod <u/g/o/a> +/- <r/w/x> <filename>
七、修改文件所属关系
(一)chown命令
1. 功能
修改文件的所属用户
- 注:只有root用户才可以进行文件所属的修改
2. 使用
sudo chown 新用户 文件名
将文件所属用户修改为新用户
(二)chgrp命令
1. 功能
修改文件的所属组
- 注:只有root用户才可以进行文件所属组的修改
2. 使用
sudo chgrp 新组名 文件名
将文件所属组修改为新的组
八、链接命令 ln
(一)软链接
1. 功能
类似于windows中的快捷方式。
ln -s 被链接文件 生成的链接文件
- 注:
-
- 被链接文件 和 生成的链接文件 是两个不同的文件(inode号不同)
-
- 软链接文件里存放的是被链接文件的路径,因此创建软链接时被链接文件尽量采用绝对路径
-
- 当被链接文件删除或者移动时,链接文件就会失效
-
- 目录文件可以创建软链接
(二)硬链接
1. 概念
相当于给文件另起了一个别名
ln 被链接文件 生成的链接文件
- 注:
-
- 被链接文件 和 生成的链接文件 是同一个文件(inode号相同)
Linux识别文件只要看inode号
- 被链接文件 和 生成的链接文件 是同一个文件(inode号相同)
-
- 文件每增加一个硬链接,该文件的硬链接数会自动加1。只有硬链接数为0时,才会释放该块空间。
-
- 被链接文件 和 生成的链接文件 所指向的存储内容的是同一块空间
-
- 目录文件不能创建硬链接
补充:
目录创建后,系统会自动在新创建的目录下创建一个.
的硬链接,所以目录创建后其硬链接数就是2,可以根据硬链接数计算出该目录的子目录数(即减2)
九、关机/重启命令
(一)关机
sudo shutdown -h 14:35
sudo shutdown -h +30 //30分钟后关机
sudo shutdown -h now
(二)重启
sudo shutdown -r 14:40
sudo shutdown -r +30 //30分钟后重启
sudo shutdown -r now
reboot //重启
shutdow -c //取消重启
十、 管理用户的相关命令
Linux是一个多用户的操作系统
(一)增加用户
sudo adduser 用户名
示例:
新添加的用户信息在/etc/passwd
文件中
组信息在etc/group
文件中
新用户默认没有添加管理员权限,必须到目录/etc/sudoers
下修改
新用户直接使用sudo命令会显示如下信息:
需要到目录/etc/sudoers
下添加如下信息:
然后就可以正常使用
(二)切换用户
su 用户名 //切换到指定的用户
(三)退出用户
exit //退出用户
(四)删除用户
dudo deluser 用户名
- 注:删除时要退出准备删除的用户
十一、cut命令
(一)功能
将文件中的内容按指定字符切割
cut -d <字符> -f <域> <filename>
- 注:如果分隔符是特殊的符号,需要使用转义字符进行转义
(二)参数
-d :按照哪个字符切割
-f :选中的域 1,3 或者 2-4
十二、环境变量
环境变量本质也是变量,变量里面保存系统启动的相关配置变量。
查看所有环境变量:env
输出指定的环境变量:echo $<环境变量名>
检索以PATH开头的行数:env | grep "^PATH"
(一)常见的环境变量
当前所在路径
PWD = /home/linux/day2
用户的家目录
HOME = /home/linux
路径
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/linux/toolchain/gcc-7.5.0/bin
':'是分隔符
当系统执行可执行文件时,系统会首先去PATH环境变量记录的路径中寻找。当希望自己的程序可以在任意路径中执行时,有两种方式:
① 可以将生成的可执行文件放到PATH中的任一路径中
② 将可执行文件的路径添加到环境变量PATH中
(二)修改环境变量
1. 只对当前终端生效
格式:
export 环境变量名=value
//'='后面注意不要添加空格
- 注:这种方式会将原来的值覆盖操作,所以尽量不要直接通过这种方式进行赋值
追加的方式:export PATH=$PATH:/home/linux/day2
- 注:‘$’ :获取原来PATH变量里面的值
2. 对当前用户生效
在用户登录过程中和打开终端的过程中,linux操作系统会执行一系列文件,其中~/.bashrc
文件也会执行。因此添加修改环境变量的代码即可
修改完成后,需要重新打开终端,或者使用source ~/.bashrc
3. 对所有用户生效
当操作系统启动过程中也会自动执行一些脚本文件,/etc/profile
文件,因此在该文件中修改环境变量的代码即可,每次开机时都会自动执行该文件。
修改后,使用source /etc/profile
或者重启电脑
十三、磁盘相关命令
(一)
sudo fdisk -l //查看磁盘信息
sda1 表示是(sda)系统盘第1个分区
如果有外盘接入,后面盘的名字sdb1 sdc1,如下图:
(二)查看磁盘使用情况
df -h //查看磁盘使用情况
(三)磁盘的挂载
一个磁盘只能挂载在一个目录中,尽量是空目录
挂载设备:
sudo mount <设备名,如:/dev/sdb> <需要挂载的目录>
解除设备挂载:
sudo umont <挂载的目录名>
- 补充:如果挂载在一个非空目录下,在挂载时无法读取原目录中的内容,但是挂载结束后,原内容并不会消失
关于挂载(以下内容来自于百度):
挂载是指由操作系统使一个存储设备(诸如硬盘、CD-ROM或共享资源)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。
在Linux系统中,挂载(mount)的主要作用是连接文件系统与目录结构,从而使得用户可以访问和管理这些文件系统。
系统启动时加载文件系统。在Linux系统启动时,可以通过/etc/fstab文件配置需要自动挂载的文件系统,确保系统启动时能够正确加载所需的文件系统。