我们都有光明的未来。
今天是一个特殊的日子:2021.12.02,一个对称日,我要在今天做一件很重要的事情。
常用命令整理,以后持续更新
Linux的常见命令有很多,最常用的诸如:ls/cd/cat/rm等等,还有一个最常用的rm -rf / (删除文件系统然后跑路)以下将仔细的讲述相关命令的用法 :
操作技巧与基础
- 命令的组成 command options argument
- 参数选项可以组合使用
- 命令 参数 选项区分大小写
- command --help 可以查看帮助 ,确认参数选项的使用方式
- man command 也是获取参数解析的方式
- 支持tab键补齐命令
导航命令
- ls
- cd
- pwd
目录操作
- mkdir 选项 参数 目录
选项:-m 指定访问权限 -p如果指定目录的父目录不存在,一同创建父目录
mkdir 支持一次创建多个目录 - rmdir 同理 支持 删除空目录,支持删除多级空目录
- rm 用于删除 文件
- rm -f 强制删除文件或者目录,无需用户确认
- rm -i 删除文件 目录前,需要用户确认
- rm -r 递归删除 ,删除指定目录和其以下的文件
- -v 显示删除过程
文件操作
- touch 创建空文件
- vi 也可以创建文件,(当打开一个不存在的文件时可以创建它,在其中写入文件内容)
- echo conent > file可以将相关内容写入指定文件
- file 文件 可以查看文件的类型,用于读取文件头,并且识别文件类型,还可以查看二进制可执行文件的详细信息,包括所运行的处理器体系结构
- more less 浏览文件内容,分页查看,空格翻页,q退出
- head/tail查看看,-n [行数] 查看指定的行数(文件的前/后 n行) -c [字节数]查看指定的字节数 文件的前/后 c个字节
- cat查看: cat文件也可以进行文件的合并,cat [选项] 文件 1 文件 2 >文件 3
- cat 选项:-n 从 1 开始对输出行进行编号 -b 类似于-n,从 1 开始编号,但是忽略空白行 -s 遇到连续两行或以上的空白行,就替换为一行空白行
- mv 源文件/目录 目的文件/目录
- cp [选项] 源文件/目录 目的文件/目录
cp的 相关选项:
-a 保留链接、文件属性并递归复制,等同于-dpR 组合,常用语复制目录
-d 复制时保留链接
-f 若目标文件已经存在,则直接删除而不提示
-i 若目标文件已经存在,需要用户确认操作,与-f 相反
-p 除复制文件内容外,把访问权限和修改时间也复制到新文件中
-r 递归复制,递归复制指定目录下的文件和目录
-v 显示文件复制过程 - 创建链接:ln 选项 源文件/目录 目标文件 默认是创建硬链接,加-s选项会创建软连接
硬链接通过索引节点进行链接,相当于源文件的镜像,占用源文件一样大小的空间,修
改其中任何一个,另外一个都会进行同样的改动。给一个文件创建硬链接后,文件属性的硬
连接数会增加。
软链接和硬链接不同,软链接是产生一个新文件,这个文件指向另一个文件的位置,类
似于 Windows 下的快捷方式。通常用的更多的是软链接,软链接可以跨文件系统,且可用
于任何文件,包括目录文件 - 改变权限:chmod 参数 文件/目录
参数说明:比如最高权限777,就对应着
拥有者 群组 其他都有读 写执行的权限,
而400,则意味着只有拥有者有读权限,群组和其他用户没有权限 - 其他方式改变权限:
更常用的是用字符方式设定文件/目录的权限,分别用 u/g/o 表示文件的拥有者/组内用
户/其它用户,如果同时设置三种用户,可以用a(all)指代;用 rwx 分别表示读/写/执行权限,用+/-表示增加或去除某种权限。
chmod o-x hello # 其他用户减少执行权限
chmod a+x hello #全部用户增加执行权限
文件压缩
- tar 选项 文件
- 相关选项:
-c 创建存档文件,与-x 相斥
-t 列出档案文件的文件列表
-x 解包存档文件,与-c 相斥
-A 合并存档文件
-d 比较存档文件与源文件
-r 追加文件到存档文件末尾
-u 更新存档文件
-f 指定存档文件,与其它选项同时使用时,必须在最后,如 tar -xjvf a.tar.bz2
-v 显示详细处理信息
-C 转到指定目录,常用于解开存档文件
-j 调用 bzip2 程序
-z 调用 gzip 程序
-Z 调用 compress 程序
–exclude=PATH 排除指定文件/目录,常用于打包文件
示例:
tar -cjvf drivers.tar.bz2 drivers
tar -xjvf drivers.tar.bz2 -C /home/lcy/
网络操作命令
- ifconfig: ifconfig 网络接口 [选项] 地址/参数
- 参数说明:
-a 查看系统拥有的全部网络接口 ifconfig -a
网络接口 指定操作某个网口 ifconfig eth0 192.168.1.136
broadcast 设置网口的广播地址 ifconfig eth0 broadcast 192.168.1.255
netmask 设置网口的子网掩码 ifconfig eth0 netmask 255.255.255.0
hw ether 设置网卡物理地址(如果驱动不支持则无效) ifconfig eth0 hw ether 00:11:00:00:11:22
up 激活指定网卡 ifconfig eth0 up
down 关闭指定的网卡 ifconfig eth0 down - ping 192.168.1.100
文件挂载和卸载
- 挂载命令:mount mount [-参数] [设备名称] [挂载点]
- 挂载简述:Linux 允许多个文件系统存在于同一个系统中,也允许用户在系统运行时安装内核所支持的文件系统。例如,将一个 FAT 格式的 U 盘插入到 Linux 系统中。往 Linux 系统安装文件系统需要用到 mount 命令,并且需要 root 权限。
- 说明:挂载点必须是一个已存在的目录;如果挂载点为非空,则在mount后,以前的内容将不再可用,卸载后方可使用;一个挂载点可以被多个设备/文件重复挂载,只是后一次挂载将覆盖前一次挂载的内容,卸载后可用;
mount -t nfs 192.168.1.138:/home/chenxibing/lpc3250 /mnt -o nolock
卸载:umount /mnt
使用内核模块和驱动
- 简介:Linux 是一个具有模块化特性的操作系统,允许在内核运行时插入模块或者卸载不再需要的模块。能够动态加载和卸载模块是 Linux 引以为豪的特性之一,如果某些功能平时用不到,可以不将它们编译编进内核,而是以模块的方式编译,需要的时候再插入到内核中,不再需要的时候就卸载,这样可以精简内核、提高效率,并提高系统的灵活性。Linux 中最常见的模块是内核驱动,掌握模块的加载和卸载。
- 通过 insmod 命令可以往正在运行中的内核插入某些模块而无需重启系统。
- insmod [选项] 模块 [符号名称=值]
相关参数:
-f 强制将模块载入,不检查目前 kernel 版本与模块编译时的 kernel 版本是否一致
-k 将模块设置为自动卸载
-p 测试模块是否能正确插入
-x 不导出模块符号
-X 导出模块所有外部符号(默认)
-v 显示执行过程
示例:insmod beepdrv.ko - 查看系统中已经加载了哪些模块,也可以使用ismod命令查看:lsmod 命令结际上就是列出了/proc/modules 的内容
- 卸载驱动模块:rmmod 选项 模块
- 相关参数
-f 强制卸载正在被使用的模块,非常危险!需要内核支持(CONFIG_MODULE_FORCE_UNLOAD 使能),否则无效
-w 通常情况下不能卸载正在被使用的模块,加上-w 选项,指定模块将会被孤立,直到不再被
使用
-s 将错误信息写入 syslog,而不是标准错误
-v 显示执行过程
可以这样理解:加载模块 相当于查看有哪些模块就是ls+mod 卸载模块就是将某个模块卸载,也就是rm+mod,将某个模块卸载 - 自动处理可加载模块:
前面提到的 insmod/rmmod 分别用于加载和卸载模块,但是每次只能加载/卸载一个模块,如果一个模块依赖于多个模块,则需要进行多次操作,比较繁琐。modprobe 命令集加载/卸载功能于一身,并且可以自动解决模块间的依赖关系,将某模块所依赖的其它模块全部加载。
用法:modprobe [选项] 模块 [符号=值]
常用选项:
-C <文件> 不使用默认配置文件,使用指定文件作为配置文件
-i 忽略配置文件中的加载和卸载命令
-r 卸载指定模块,包括依赖模块
-f 强制安装
-l 显示所有匹配模块
-a 安装所有匹配的模块
–show-depends 显示模块的依赖关系
-v 显示执行过程
-q 不显示任何信息
-V 显示版本信息 - 创建设备节点:mknod
- 如果系统不能自动创建设备节点,加载驱动后,则需要为驱动建立对应的设备节点,否
则无法通过驱动来操作设备。