linux基础命令
本文摘录了一些比较常用的命令,是基础中的基础
文件管理命令
$ ls # 指定目录内的文件列表
# -a 显示指定目录内的所有内容(包含隐藏文件和特殊目录)
# -l 显示每一个文件的详细信息(权限、所有者、所属组、修改时间等)
# -h 显示文件大小
# -d 用来显示目录本身信息
# -i 显示文件索引节点号(inode),每个文件都拥有一个独一无二的索引节点号
$ cd # 切换到指定的目录下
# ~ 切换到当前所在用户的家目录下
# - 切换到刚才所在目录
# . 当前目录
# ..切换到上一级目录(父目录)
$ pwd # 显示当前所在路径
$ mkdir # 创建目录
# -p:递归创建多级目录
$ rm # 删除指定文件或者目录
# -i:删除已有文件或目录之前先询问用户
# -f:不询问,强制删除
# -r:递归处理,将指定目录下的所有文件与子目录一并处理
$ rmdir # 删除指定的空目录
$ alias # 查看已经生效的别名
$ touch # 已存在文件的时间标签更新为系统当前的时间,不存在时,创建新的空文件。
# 批量创建文件
# touch {a..z}.txt
# 批量创建目录:
# touch abc{0..9}
$ stat # 用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细
# -f:显示文件所在文件系统的信息(文件系统类型、Block数量、Inode数量等)
$ cat # 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容
# -n:为每一行内容进行编号
# -b:主动忽略掉空白行
$ more # 以全屏分页的方式显示文本内容
# 空格space:向下翻页
# 回车enter:向下翻行
# b:向上翻页
# q:退出文本
$ less # 查看文本内容
# -N:显示文本内容并显示行号
$ head # 显示指定文件的开头内容(默认显示前10行)
# -n:显示指定文件的前n行(n换成数字)
$ tail # 显示指定文件的结尾内容(默认显示后10行)
# -n:显示指定文件的后n行
# -f:显示文件最后10行,并且对文件处于监听状态,实时更新和通知文件尾部的变化(tailf = tail -f)
$ cp # 将一个或多个源文件复制到指定位置,默认情况下保留源文件名称,也可以改名
# -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
# -p:复制文件时,保留源文件的属性
# -r:递归处理,复制时将指定目录下的所有文件和子目录,子文件全部复制到指定位置
# -a:相当于-dpr的集合,拥有三个选项的所有功能
$ mv # 将指定文件移动(剪切)到指定目标位置,默认情况下保留源文件名称,也可以改名
# -b:在进行文件移动时,若目标位置有同名文件存在,则将同名文件备份(备份文件名结尾有~标识)
# -i:该选项的作用是在对文件操作时是否询问用户
# -f:该选项的作用是在对文件操作时直接跳过询问用户的步骤
$ ln # 为指定文件创建软链接(符号链接)或者硬链接
# o-s:为指定的源文件创建一个符号链接文件(软链接),不加“-s”则创建硬链接
# 注意:创建链接时,要使用绝对路径
$ wc -l # 统计文件行数
权限管理
$ file # 查看文件具体详细类型的命令
$ chmod # 修改文件指定位置的rwx权限
# -R:将设置的权限递归到该目录下的子文件上(一般针对目录使用)
# chmod [augo] [+-=] [rwx] file
# chmod 644 file
$ chown # 修改文件的所有者或所属组
# 命令格式:chown user:group 文件或目录名
# -R:将设置的递归到该目录下的子文件上
# :是分隔符可以用.代替
$ chgrp # 仅修改文件所属组
# chgrp group file
# -R:将设置的递归到该目录下的子文件上(一般针对目录使用)
$ umask # 查看或设置文件的权限掩码值
# umask:以八进制的数值显示文件的权限掩码值
# umask 002:按照给定的八进制数值覆盖掉原有的掩码值
# 文件默认权限的计算方式(对位相减)
# 目录类文件:777-掩码=默认权限
# 文件类文件:666-掩码=默认权限
# 管理员用户:umask为:022
# 普通用户: umask为002
查询相关命令
$ which # 显示命令的绝对路径/别名
$ whereis # 定位指定命令的二进制文件程序、源码文件和帮助手册页面等资源的位置
# -b:定位指定命令的绝对路径
# -m:定位指定命令的帮助手册路径(即man帮助手册文档位置)
# -s:定位指定命令的源码文件路径
$ locate # 通过文件名进行文件位置查询, {locate命令进行文件查询并不是使用遍历的方式进行查找,而是事先创建好一个数据库,将所有文件的名称和对应路径保存在了其中,当查询文件时,只需要对数据库查询即可,速度上来说非常迅速}
# -i:忽略查询对象的大小写
# 数据库文件:/var/lib/mlocate/mlocate.db
# 数据库更新:updatedb #建议每次查询前先更新下数据库
# 更新规则文件:/etc/updatedb.conf #配置文件中记录一些忽略不更新的文件类型和目录
$ find # 在目录树种进行文件查询
# 根据名称查询:find /etc/ -name "*.txt"
# -name 模式下默认精确查询,可以使用通配符进行模糊查询:* ? [];使用通配符查询时,查询对象必须用单双引号
# 根据大小查询:find /etc/ -size -10K
# -size 模式下默认使用精确大小查询,可以使用- +进行范围查询 { 常见单位:c:字节;w:子(2字节);b:块(512字节);k,M,G }
# 根据归属查询:find /etc/ -user zhangsan
# -user|-group模式下,可以查询属于某用户或某组的文件
# -nouser|-nogroup 模式可以查询出没有所有者或所属组的文件(异常文件)
# 根据权限查询:find /etc/ -perm 777
# -perm 模式可以查询出指定权限的文件,一般用来查询权限过大的普通文件
# 根据类型查询:find /etc/ -type f
# o-type模式下可以查询出指定类型的文件 [ f:普通文件;d:目录文件;l:链接文件等 ]
# find / -perm 777 -a -type f 查询系统中权限过高的普通文件
# 根据inode查询:find /etc/ -inum 262149
# -inum 模式可以查询出所有inode相同的文件(查询硬链接文件)
# 根据时间查询:
# 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
# 修改时间(-mtime/天,-mmin/分钟):文件最后一次内容修改时间。
# 变化时间(-ctime/天,-cmin/分钟):文件数据元(权限等)的最后一次修改时间。
# 多条件同时查询:find /etc/ -name -a -type f
# -a:and的意思,将两个或两个以上的查询条件结合在一起进行文件查询(必须同时符合所有条件)
# -o:or的意思,多个条件结合后,其中一条条件符合就算符合查询要求
# 查询结果批处理:将 find 查询到的结果交给指定命令继续操作
# -exec|-ok:格式固定,稍复杂
# find /etc -name "*.txt" -exec rm {} \;(将find查询的结果打包在{}中来执行
# {} :存储了find查询的结果集
# \;:固定格式,;作为结束符号
# |xargs:格式较简单,但不支持带空格的文件
# find /etc/ -name "*.txt" |xargs rm(将查询到的结果一个一个的传递到命令2来执行)
$ "|" 和 "|xargs" 的作用
# 管道符:| 作用:将前一个命令的结果,作为后一个命令的输入(可以理解为把查询结果保存成了一个文本)
# 举例:find /var/log/ -name "*.log" | grep --color=auto da
# xargs命令:|xargs 作用:将前一个命令的结果,作为后一个命令的参数(所有符合条件的文件逐个传递给后面的命令)
# 举例:find /var/log/ -name "*.log" |xargs grep --color=auto da
find、locate、grep的对比
# find 和 locate 都是用来在系统内查询文件位置的命令
# find 是通过对所有目录进行遍历的方式进行查找的,结果精准,但消耗大量系统资源和时间
# locate 是通过实现创建数据库保存文件位置,再查询数据库的一种快速索引方式,节省资源速度快,但是精准度稍差
# grep 是用来在指定文件内查询符合条件的关键词的命令,操作对象是指定某文件
# find 默认情况下是精确匹配,可以使用通配符进行模糊匹配
# grep 默认情况下是包含匹配,要想精确匹配需要使用正则表达式
通配符
*通配符* | *作用* |
---|---|
? | 匹配一个任意字符 |
* | 匹配0个或任意多个任意字符 |
[ ] | 匹配括号内的任意一个字符,[aoe] |
[-] | 匹配括号内字符串范围内的任意一个字符,[a-z] [0-9] |
压缩相关命令
# Linux中常见的压缩格式有以下几种:.zip .gz .bz2 .tar .tar.gz .tar.bz2 等
# 解压到指定位置: -C(大)
# tar -xvf *.tar.* -C 目录
# 一般使用 tar -xvf 压缩包名 即可
帮助相关命令
$ man # 通过帮助手册显示命令的使用方式
# -f:显示该命令有哪几个级别 的帮助
$ help # 显示Linux内置命令相关帮助信息
$ info # 查看指定命令的帮助信息等
*帮助等级* | *含义* |
---|---|
1 | 查看命令的帮助信息(多数位普通用户能执行的命令) |
2 | 查看可以被内核调用的函数的帮助信息 |
3 | 查看C语言相关函数的帮助信息 |
4 | 查看设备和特殊文件的帮助信息(主要存在于/dev/目录下) |
5 | 配置文件的帮助信息 |
6 | 游戏的帮助信息(主要存在于个人版Linux) |
7 | 查看其他杂项的帮助信息 |
---|---|
8 | 查看超级管理员能执行的命令的帮助 |
9 | 内核信息的帮助文档 |
关机与重启
$ sync # 强制将缓冲区中的数据写入磁盘中
$ shutdown # 用来关机或者重启的命令
# -h:halt,发送关机信号,后面指定倒计时时长(now,1200)
# -r:reboot,发送重启信号,后面指定倒计时时长(now,1200)
$ reboot # 重启当前操作系统
$ init # 临时修改操作系统的运行级别,可用来关机或重启
# init 0 : 关机
# init 6 :重启
网络管理命令
$ ifconfig # 查看网卡的相关信息,最小化没有此命令,需要安装net-tools软件
# 临时修改网卡的网络参数(ifconfig 网卡名 IP/24 或ifconfig 网卡名 IP nermask 子网掩码)
$ ip # 查看ip等网络资源信息( ip address show)
# 临时配置(增加/删除)ip等网络参数(ip address add/del IP/24 dev 网卡名)
# 查看当前生效的网关信息(ip route show)
$ ifup & ifdown # 单独针对某一网卡的启动关闭命令(ifup/ifdown 网卡名)
$ ping # 通过ICMP协议探测网络中的主机是否能正常通信
# -c :用于指定ping的次数
# -s :指定探测时使用的数据包大小(最大65507)
$ netstat # 查看网络连接状态的命令,可以查看本机开启的端口(TCP/UDP),最小化是没有安装的。
# -a:列出所有网络状态
# -n:以数字方式显示IP和端口信息
# -t:显示TCP协议对应信息
# -u:显示UDP协议对应信息
# -p:显示进程的进程号和进程名
# -l:显示监听状态的连接
# 常用组合: -antp -tlunp
$ write # 向指定的在线用户发送信息
$ wall # 向所有在线用户发送信息(ctrl + d #使用组合键才能发送信息)
$ mail # 给指定用户发送邮件信息,以及接收邮件信息(mail 用户名)(ctrl + d 发送邮件)
系统资源查看
$ w # 查询当前登录服务器的用户
# 第一行当前时间 持续运行时间,登录用户数量,1分钟,5分钟,15分钟 前的平均负载
# 第二行:用户名 TTY:登录终端 FROM:来源IP 登录时间 IDLE:用户闲置时间 JCPU:所有进程占用cpu时间 PCPU:当前进程占用cpu时间 WHAT:用户正在进行的操作
$ who # 查询登录用户
# 用户名 登录终端 时间
$ last # 列出所有登录过系统的相关信息
$ lastlog # 显示所有账户最后一次的登录时间
$ lastb # 查看登录错误的信息(登录失败信息)
挂载命令
$ mount # 查询系统中已经挂载的设备
# 挂载格式:mount [-t 文件系统类型] [-o 特殊选项] 设备文件名 挂载点
# -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660 等文件系统。
# -o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步异步等,如果不指定则默认值生效。
# 挂载硬盘分区、移动硬盘(创建挂载点,挂载)
# 挂载光盘 mount -t iso9660 设备名 挂载点
# 挂载镜像文件 mount -o loop 镜像名 挂载点
# 挂载U盘 mount -t U盘格式(vfat)
# 是挂载永久生效 /etc/fstab(文件系统列表)
$ umount # 卸载(卸载时不能在挂载目录下, 卸载时可以卸载挂载点,也可以卸载目录)
注:本文为博主查阅多方资料整理而成,如有侵权请留言联系博主删除。
注:本文为博主查阅多方资料整理而成,如有侵权请留言联系博主删除。
学习新东西,不要忘记复习旧知识,这样你才能更好!