Linux常用命令大全,贴心为你准备好!
哈喽,大家好,我是奶茶,今天和大家分享一下,linux常用命令,比较多,大家可以收藏,方便以后查看
查询及帮助命令
- man:查看命令帮助,命令的词典,每当我们不记得某条命令的用法时,可以会输入
man <命令名>
这个也是最重要的命令,有了它,其他命令你都可以快速了解运用!
文件和目录相关
- ls: 全拼list,功能是列出目录的内容及其内容属性信息
ls -l # 以长格式显示当前目录中的文件和目录
ls -a # 显示当前目录中的所有文件和目录,包括隐藏文件
ls -lh # 以人类可读的方式显示当前目录中的文件和目录大小
ls -t # 按照修改时间排序显示当前目录中的文件和目录
ls -R # 递归显示当前目录中的所有文件和子目录
ls -l /etc/passwd # 显示/etc/passwd文件的详细信息
- cd: 功能是从当前工作目录切换到指定的工作目录
cd /home #进入 '/ home' 目录'
cd .. #返回上一级目录
cd ../.. #返回上两级目录
cd #进入主目录
cd ~user1 #进入个人的主目录
cd - #返回上次所在的目录
- cp: 复制文件或目录
cp file1 file2 #复制一个文件
cp dir/* . #复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . #复制一个目录到当前工作目录
cp -a dir1 dir2 #复制一个目录
- find: 查找,用于查找目录及目录下的文件
- mkdir:创建目录
mkdir dir1 #创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 #同时创建两个目录
mkdir -p /tmp/dir1/dir2 #-p选项用于递归创建父目录
- mv:移动或重命名文件
- pwd:显示当前工作目录的绝对路径
- rename:可用字符串替换的方式批量改变文件名
- rm:删除一个或多个文件或目录。必须非常小心地使用该命令!!!
- rmdir:删除空目录
- touch:修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件
- tree:以树状图列出目录的内容。它会列出指定目录下的所有文件,包括子目录里的文件
- basename:显示文件名。用于去掉文件名的目录和后缀
- dirname:显示给定路径的目录部分
- chattr:全拼change file attributes,改变文件的扩展属性
- lsattr:全拼list file attributes,显示文件扩展属性
- file:用来识别文件类型
- md5sum:用于生成和校验文件的md5值
查看文件及内容处理
- cat:用于连接多个文件并且打印到屏幕输出或重定向到指定文件中,可查看文件内容
cat filename 会将指定文件的内容输出到终端上。
cat file1 file2 > combined_file 可以将 file1 和 file2 的内容连接起来,并将结果输出到 combined_file 中。
可以使用 cat 命令来创建文件,例如 cat > filename,然后你可以输入文本,按 Ctrl+D 来保存并退出。
可以将 cat 与管道(|)结合使用,用来显示其他命令的输出,例如 ls -l | cat 会将 ls -l 的输出通过 cat 打印到终端上。
cat /proc/cpuinfo #显示CPU info的信息
cat /proc/interrupts #显示中断
cat /proc/meminfo #校验内存使用
cat /proc/swaps #显示哪些swap被使用
cat /proc/version #显示内核的版本
cat /proc/net/dev #显示网络适配器及统计
cat /proc/mounts #显示已加载的文件系统
- tac:cat的反向拼写,因此命令的功能为反向显示文件内容。文件内容的最后一行先显示,第一行最后显示
- more:一页一页的形式显示文件内容,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,按 h
- less:less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件
- head:显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容
- tail:查看文件尾部内容,有一个常用的参数 -f 常用于查阅正在改变的文件。可以看到最新的文件内容
- cut:将文件的每一行按指定分隔符分割并输出
- split:分割文件为不同的小片段
- paste:用于合并文件的列。paste指令会把每个文件以列对列的方式,一列列地加以合并
- sort:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序
- uniq:全拼uniqique,用于检查及删除文本文件中重复出现的行列
- wc:统计文件的行数、单词数或字节数等
- iconv:转换文件的编码格式
- dos2unix:是将
Windows DOS
格式文件转换为Unix、Linux
格式的实用命令。Windows格式文件的换行符为\r\n
,而Unix&Linux
文件的换行符为\n
.。dos2unix
命令其实就是将文件中的\r\n
转换为\n
- diff:diff以逐行的方式比较文件的差异
- vimdiff:命令行可视化文件比较工具,常用于文本文件
- rev:rev命令将文件中的每行内容以字符为单位反序输出,即第一个字符最后输出,最后一个字符最先输出,依次类推
- grep/egrep:是一种文本搜索工具,可以通过使用指定的通配符/正则表达式来实现文本搜索功能
- join:用于将两个文件中,指定栏位内容相同的行连接起来。找出两个文件中,指定栏位内容相同的行,并加以合并,再标准输出
- tr:拼translate,tr命令用于转换或删除文件中的字符。tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
- vi/vim:vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。Vim是从 vi 发展出来的一个文本编辑器,属于vi的增强版
文件压缩及解压缩
- tar:tar命令是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件
tar -cvf archive.tar file1 file2 dir1 #创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
tar -tf archive.tar #显示一个包中的内容
tar -xvf archive.tar #释放一个包
- unzip:unzip命令用于解压缩zip文件
- gzip:gzip命令用于压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名
- zip:zip命令可以用来将文件压缩成为常用的zip格式
信息显示以及系统命令
- uname:全拼Unix name,用于显示系统信息
- hostname:hostname命令用于显示和设置系统的主机名称
- dmesg:用于显示开机信息,诊断系统故障。kernel会将开机信息存储在ring buffer中。若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里
- uptime:显示系统运行时间及负载
- stat:用于显示文件和文件系统状态属性
- du:显示指定的目录或文件所占用的磁盘空间
- df:用于显示目前在Linux系统上的文件系统的磁盘使用情况统计
- top:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,
- free:free命令显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。
- date:date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式
- cal:cal命令用来显示公历日历
- shutdown:用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机
shutdown -h hours:minutes & #按预定时间关闭系统
shutdown -c #取消按预定时间关闭系统
shutdown -r now #重启(1)
- halt:用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统
- poweroff:用来关闭计算机操作系统并且切断系统电源
- logout:退出当前登录的Shell
- exit:退出当前登录的Shell
- Ctrl+d:退出当前登录的Shell的快捷键
文件搜索
- which:which命令用于查找文件。which指令会在环境变量
$PATH
设置的目录里查找符合条件的文件 - find:从磁盘遍历查找文件或目录
find / -name *xxx*.c 模糊查找这个文件
find / -name file1 #从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 #搜索属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin #在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 #搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 #搜索在10天内被创建或者修改过的文件
find / -name \*.rpm -exec chmod 755 '{}' \; #搜索以 '.rpm' 结尾的文件并定义其权限
find / -size +500M -print0|xargs -0 du -m|sort -nr #find找出500M以上的文件
- whereis:该指令会在特定目录环境变量PATH路径查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
- locate:locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。一般情况我们只需要输入 locate your_file_name 即可查找指定文件。
locate与find 不同: find 是去硬盘找,locate 只在资料库中找。locate的速度比find快,它并不是真的查找,而是查数据库
用户管理or系统权限
- useradd:建立用户帐号。使用useradd指令所建立的帐号,实际上是保存在
/etc/passwd
文本文件中 - usermod:修改系统已经存在的用户属性。
- userdel:userdel命令用于删除用户帐号。若不加参数,则仅删除用户帐号,而不删除相关文件。
- groupadd:用于创建一个新的用户工作组。新工作组的信息将被添加到系统文件中。
- passwd:全拼password,passwd命令用来更改使用者的密码。
- chage:全拼change,chage命令是用来修改帐号和密码的有效期限。
- id:显示用户以及所属群组的实际与有效ID。
- su:su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
- visudo:visudo编辑/etc/sudoers文件的专属命令。sudoers文件的默认权限是440,即默认无法修改,visudo需要超级用户权限,可以在不更改sudoers文件权限的情况下,直接修改sudoers文件。
- sudo:sudo命令可以把某些超级用户权限分类有针对性授权给指定的普通用户,并且普通用户不需要知道root密码就可以使用得到的授权
- chmod:全拼Change mode,Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。chmod命令可以控制文件如何被他人所调用
- chown:全拼Change owner,Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。chown将指定文件的拥有者改为指定的用户或组
- chgrp:全拼Change group,用于变更文件或目录的所属群组
- umask:显示或设置权限掩码。在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw- ,创建目录的默认权限 drwxrwxrwx ,而umask值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值
- whoami:显示当前有效的用户名称
- who:显示目前登录系统的用户信息
- w:显示已经登陆系统的用户列表,并显示用户正在执行的指令
- last:用于显示用户最近登录信息
- lastlog:显示系统中所有用户最近一次登录信息
- users:显示当前登录系统的所有用户的用户列表
- finger:显示本地主机现在所有的用户的登陆信息
网络相关
- telnet:telnet命令使用TELNET协议远程登录。执行telnet指令开启终端机阶段作业,并登入远端主机
- ssh:使用SSH加密协议远程登录
- scp:全拼secure copy,用于不同主机之间复制文件。, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令
- wget:用来从指定的URL下载文件
- ping:测试主机之间网络的连通性
- route:显示和设置linux系统的路由表
- ifconfig:全拼interfaces config,通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。
- ifup:启动网卡
- ifdown:关闭网卡
- netstat:显示网络状态。利用netstat指令可让你得知整个Linux系统的网络情况。
- ss:全拼Socket Statistics,用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效
- nmap:全拼Network Mapper,是Linux下的网络扫描和嗅探工具包。nmap是在网络安全渗透测试中经常会用到的强大的扫描器。
- lsof:全名list open files,列出当前系统打开文件的工具。在linux系统环境下,任何事物都可以以文件形式存在,通过文件不仅可以访问常规的数据,还可以访问网络连接和硬件
- mail:电子邮件发送和接收工具
- mutt:邮件管理命令
- nslookup:交互式查询互联网DNS服务器的命令
- dig:常用的域名查询工具,可以用来测试域名系统工作是否正常
- host:常用的分析域名查询工具,可以用来测试域名系统工作是否正常
- traceroute:显示数据包到主机间的路径。traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置
- tcpdump:免费的网络分析工具。TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析
磁盘与文件系统
- mount:用于挂载Linux系统外的文件
mount /dev/hda2 /mnt/hda2 #挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
mount /dev/fd0 /mnt/floppy #挂载一个软盘
mount /dev/cdrom /mnt/cdrom #挂载一个cdrom或dvdrom
mount -o loop file.iso /mnt/cdrom #挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 #挂载一个Windows FAT32文件系统
mount /dev/sda1 /mnt/usbdisk #挂载一个usb 捷盘或闪存设备
- umount:用于卸除文件系统
umount /dev/hda2 #卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
umount -n /mnt/hda2 #运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
- fsck:用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查
- parted: 磁盘分区命令,没有磁盘大小限制。针对大于2TB的硬盘,需要采用GPT分区,使用parted命令进行操作
- mkfs:全拼make filesystem,格式化创建Linux文件系统。常见的文件系统有ext2,ext3, ext4 , vfat等
- partprobe:从kernel重新读取分区信息
- e2fsck:检查ext2/ext3/ext4类型文件系统
- mkswap:用于设置交换区(swap area)。mkswap可将磁盘分区或文件设为Linux的交换区
- swapon:启用交换分区
- swapoff:关闭交换分区
- sync:在 linux/unix 系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync 命令则可用来强制将内存缓冲区中的数据立即写入磁盘
- resize2fs:调整ext2/ext3/ext4文件系统大小
系统监控及性能优化
- chkconfig:用于检查,设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。
- vmstat:全拼Virtual Memory Statistics,用来显示Linux系统虚拟内存状态,也可以报告关于进程、内存、I/O等系统整体运行状态。
- mpstat:全拼Multiprocessor Statistics,实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
- iostat:用于输出CPU和磁盘I/O相关的统计信息。
- sar:全拼System Activity Reporter,目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告。
- ipcs:用于报告linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。
- ipcrm:用来删除一个或更多的消息队列、信号量集或者共享内存标识。
- strace:用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
- ltrace:用来跟踪进程调用库函数的情况
进程管理
- bg:将一个在后台暂停的命令,变成继续执行
- fg:将后台中的命令调至前台继续运行
- jobs:查看当前有多少在后台运行的命令
- kill:用于删除执行中的程序或工作
- killall:用于终止某个指定名称的服务所对应的全部进程。
- pkill:通过进程名终止进程
- crontab:用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。
- ps:全拼Processes Status,用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
- pstree:将所有行程以树状图显示
- nice/renice:为未运行命令指定运行时调度优先级的,如果是已运行的命令则需要renice命令。
- nohup:全拼no hang up,让后台工作在离开操作终端时,也能够正确地在后台执行。
- pgrep:通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。
- runlevel:查看系统当前运行级别
- init:用于切换到指定的运行级别
- service:用于管理Linux操作系统中服务的命令。它可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态
其他
- echo:打印变量,或直接输出指定的字符串
echo a b c | awk '{print $1}' #查看一行第一栏
echo a b c | awk '{print $1,$3}' #查看一行的第一和第三栏
- printf:将结果格式化输出到标准输出。
- rpm:管理rpm包的命令。rpm(redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序
- yum:是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
- watch:周期性的执行给定的命令,并将命令的输出以全屏方式显示。
- alias:用于设置指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。
- unalias:用于删除别名。
- date:用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式。
- clear:清除屏幕。
- history:显示历史记录和执行过的指令命令。
- eject:弹出光驱。
- time:用于测量一个命令的运行时间。
- nc:一个功能强大的网络工具,通过它不仅可以探测端口,还能作为客户端连接服务。
- xargs:全拼extended arguments,给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
- exec:用于调用并执行指令的命令。exec命令通常用在shell脚本程序中,可以调用其他的命令。如果在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端。
- export:设置或者显示环境变量。
- unset:删除变量或函数。
- type:用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。
- bc:任意精度计算器语言,通常在linux下当计算器用