Linux命令大全

目录

前言

一、目录介绍

1.1. 目录结构

1.2. 目录含义

二、文件、目录的创建、删除、复制、移动、重命名

三、Linux社区提供的方法

四、查找文件

五、查看、编辑文件

5.1. cat命令

5.2. less命令

5.2.1. 实操实例一

 5.2.2. 实操实例二

5.3. more命令

5.4. vi、vim命令


Linux命令在我们开发人员中是必不可少的一个东西,如果实操比较少的话,需要主动去记忆,可是就因为实操比较少,所以又容易忘记。这就形成了一个坏循环。

本文将Linux命令分门别类地整理出来,方便自己、方便大家,不用刻意记忆,收藏之后等到需要的时候直接查阅即可,就像一个字典一样。等大家用的多了,自然也就记得住了。

前言

连接Linux服务器的客户端工具有很多,一般我们使用的是XShell、SecureCRT、Putty、terminus(免费与收费都有)、tabby(免费)等,免费的一些有FinalShell(国产免费,操作命令与文件合一)、MobaXterm(操作命令与文件合一)等。

一、目录介绍

1.1. 目录结构

linux系统没有盘符,一切从根目录/开始,如下图:

根目录下所有子目录:

 

分别是:

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr var

1.2. 目录含义

目录含义
binbinary的缩写,此目录下存放的是二进制可执行文件,存放着所有的linux系统命令
boot该目录下存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
devdevice的缩写,该目录存放Linux的设备文件。在Linux中访问设备的方式和访问文件的方式是相同的
etc存储配置文件的目录,以后网卡配置文件,权限配置文件都在这里。该目录存放的是系统管理所需要的配置文件和子目录
home存放所有普通用户的主目录的位置。Linux中,每一个用户都有一个自己的目录,目录以用户的账号命名。
lib  该目录存放的是系统最基本的动态链接共享库,类似于Windows中的DLL文件
lib64
media该目录下存放的是   Linux自动识别的一些设备,如:U盘、光驱等等。。。
mnt  该目录可以让用户临时挂载别的文件系统,比如光驱。。。
opt该目录存放服务器额外安装的一些软件,比如mysql、nginx,docker.....,该目录默认是空的
proc该目录是一个虚拟目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
root超级管理员root用户的主目录
run该目录下存放系统启动以来的信息。如果系统重启,这个目录下的文件应该被删掉或清除
sbinsystem binary的缩写,此目录下存放的是用于系统管理的二进制文件,是系统管理员专用的
srv  该目录存放  服务启动之后需要提取的数据
sys  该目录下安装了Linux2.6内核中新出现的一个文件系统sysfs
tmp该目录用来存放一些临时文件
usr  (unix shared resources)资源共享目录,所有用户都可以操作的目录,以后我们安装软件就安装到这里usr/local,这样所有用户都可以使用软件
usr/bin用户使用的应用程序
usr/sbin超级用户使用的比较高级的管理程序和系统守护程序
var 该目录下存放经常被修改的东西,比如各种的日志文件
lost+found这个目录下一般是空的,当系统非法关机后,这里就存放了一些文件
符号含义
/根目录
.当前目录
..上一级目录
~返回当前用户主目录
-返回上一次目录

二、文件、目录的创建、删除、复制、移动、重命名

# 创建文件
touch test.txt

# 创建文件夹
mkdir test
# 创建多级目录,如果父目录不存在会先创建父目录再创建子目录
mkdir -p /usr/local/software
# 创建多级目录,同时创建多个目录,以英文逗号分割,中间不能有空格
mkdir -p /usr/local/{software,file,image}
# 在当前目录下创建多个目录
mkdir -p {software,file,image}

# 删除文件
rm -f file_name
# 删除当前目录下所有以test开头的文件
rm -f test*

# 删除文件夹
rm -rf dir_name
# 删除当前目录下所有以test开头的文件夹及其子文件夹
rm -rf test*

# -r 就是向下递归,无论有多少级目录,一并删除;
# -f 就是直接强行删除,不做任何提示的意思

# 复制文件
# 复制一份test文件,新文件名为test1
cp test test1
# 复制software目录及其子目录下的文件
cp -r software soft

# 移动文件
# 将test文件移动到/home/file目录下
mv test /home/file/

# 重命名
# 将test文件重命名为demo
mv test demo

注意:

不要随便使用rm -rf强制删除一些文件或者文件夹,若是产生误操做,基本不能被找回 

三、Linux社区提供的方法

# 1.删除当前目录下的文件
rm -f *blog

# 2.最经典的方法,删除当前目录下的全部类型的文件——递归
find . -type f -delete

# 或
find . -type f -exec rm -f {} \

# 3.用find命令查找普通文件并删除or用find命令的处理动作将其删除
find . -type f | xargs rm -f

# 4.用于参数列表过长,要删除的文件太多
rm -f `find . -type f`

# 5.删除所有普通文件

# 用for循环语句删除指定目录下的全部类型的文件
for delete in `ls -l`;do rm -f * ;done

四、查找文件

# 查找文件
whereis filename

# which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
# 也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

# 查看可执行文件的位置
# 查找java安装目录
which java

# 查找Nginx安装目录
which nginx

# 在指定目录下查找文件
# 从根目录开始查找test.txt文件
find / -name test.txt

# 从当前目录下开始查找test.txt文件
find ./ -name test.txt

# 定位文件
locate filename

五、查看、编辑文件

查看文件一般有三种命令,分别是:cat、less、more,编辑文件一般是vi、vim。

5.1. cat命令

# 查看test文件的内容
# cat test.txt
 
# 查看文件的内容,并对所有输出行进行编号(包括空白行)
cat -n filename
 
# 用法和 -n 差不多,但是不对空白行编号
cat -b filename
 
# 遇到有连续两行或两行以上的空白行,就代换为一行的空白行
cat -s filename
 
# 在输出内容的每一行后面加一个$符号(包括空白行)
cat -e filename

# 创建新文件
cat >test.txt

# 在原文件的末尾追加内容
cat >>test.txt

# 合并多个文件:将file1 和file2 合并成一个新的文件file
# 如果file以前有内容,则先会清除它们然后再写入合并后的内容
cat file1 file2 > file

# 合并多个文件,不清楚file文件内容
cat file1 file2 >> file

5.2. less命令

# 查看文件内容
less test.txt

# 显示行号
less -N test.txt

输入less查看文件之后的操作:

G(z)到文件末尾

g到文件开头

?字符串:向上搜索“字符串”

/字符串:向下搜索“字符串”
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页

j 下一行

k 上一行

5.2.1. 实操实例一

# 1.带行号显示test文件
less -N test.txt

# 2.显示文件末尾的内容
G

# 3.回到文件开头
g

# 4.向下搜索
/

# 5.查看下一个(自上而下搜索,此时下一个是向下的)
n

# 6.查找上一个
N

5.2.2. 实操实例二

# 1.带行号显示test文件
less -N test.txt

# 2.显示文件末尾的内容
G

# 3.向上搜索
?

# 4.查看下一个(自下而上搜索,此时下一个是向上的)
n

# 5.查找上一个
N

注意:

less的退出命令是按ESC,然后英文冒号,最后q回车。

或者ZZ

less命令的其他常用操作:

# 分页查看历史操作命令,查看之后的操作通less
history | less

5.3. more命令

Linux中 more命令功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容。

# 查看test文件内容,按分页显示
more test.txt

# 从第n行开始显示
more +n test.txt

输入more之后的操作:

空格键 (space):下一页

Enter:代表向下翻n行,需要定义,默认为1行。

q:代表立刻离开 more ,不再显示该文件内容。

=:输出当前行号

有了cat和less之后,基本上more命令就很少使用了,我个人在工作中使用最多的就是cat和less。

5.4. vi、vim命令

vi、vim命令是我们在Linux中编辑文件中最常用的命令。vim 是一个全屏幕纯文本编辑器,是 vi 编辑器的增强版。它们的操作是一样的,不同的是有一些Linux系统中并没有vim命令,或者说是没有安装vim命令,此时就要使用vi命令来操作。

vim有三种模式,分别是:命令模式、插入模式、末行模式(编辑模式)。

命令模式:是主要输入快捷键的模式。命名模式要想进入输入模式,可以使用 a i o 等快捷键来进入。

i  在当前光标前插入字符

a  在当前光标后插入字符

o  在当前光标下一行插入字符

vim命令的光标移动我们一般使用的是上下左右的箭头,其实还有比较快捷的指令:

h:左移

l:右移

j:下移

k:上移

# 编辑test文件
vim test.txt

 vim命令的退出:

都是先按ESC,然后英文冒号,接着输入不同的指令有不同的效果。

q:不报错退出,一般是文件没有修改时使用

q!:强制退出,不保存,一般是修改了文件,但是不想修改了

wq:保存退出

wq!:强制保存退出

^ 移动到行首
$ 移动到行尾

G 移动到最后一行
gg  移动到第一行

:n  移动到第n行
nG  移动到第n行

:set nu  显示行号
:set nonu 取消行号

# D和dd的区别是:D只能删除非空行,dd可以删除空行和非空行;
# D删除了空行之后必须移动光标才能删除下一行,而dd可以连续删除,
# 也就是删除了一行之后会把下方的内容移动到被删除的那一行,所以可以继续删除。
# 而D只是删除了一行内容,其他的内容未移动。

D  删除一行(非空行)
dd  删除一行
2dd  删除光标(含)所在的下方2行
3dd  删除光标(含)所在的下方3行
ndd  删除光标(含)所在的下方n行

x  删除光标所在字符
nx  删除n个字符

u  撤销,一次撤销一个操作,可以一直撤销到最开始无操作的时候
ctrl + r  反撤销,一次反撤销一个操作,可以一直撤销到最开始撤销的时候

yy  复制
nyy  复制n行

p 粘贴(小写p,在当前光标所在行下方粘贴)
P 粘贴(大写P,光标所在行上方粘贴)

r 替换光标所在处的字符
R 从光标所在处开始替换字符,按 esc 键结束

# 上下分屏编辑两个文件
vim -o test1.txt test2.txt
# Ctrl + w 然后按上下箭头切换上下两个文件

# 左右分屏编辑两个文件
vim -o test1.txt test2.txt
# Ctrl + w 然后按左右箭头切换左右两个文件

5.5. head、tail

# 查看test文件的前10行(默认是10行)
head test.txt
# 查看test文件的前30行
head -30 test.txt

# 查看test文件的后10行(默认是10行)
tail test.txt
# 查看test文件的后30行
tail -30 test.txt 

权限

# 赋予其他用户读写权限
chmod o+rw test.txt

# 赋予所有用户读写权限
chmod a+rw test.txt

# 赋予所有用户执行权限
chmod a+x test.txt

检索

# 检索进程名称为nginx的第二个参数,也就是进程号,并输出。
# awk目前普遍使用的是gawk,类似于vim
# awk是一种强大的文本处理工具
ps -ef | grep nginx | gawk '{print $2}'

# 检索进程名称为nginx的第二个参数,也就是进程号,
# 并赋值给processId变量,脚本如下
# 注意:=左右不能有空格
#! bin/bash
processId=`ps -ef | grep nginx | gawk '{print $2}'`
echo $processId

# 查看Linux版本信息
cat /etc/redhat-release

# 查看CPU信息
lscpu

# 修改主机名
hostnamectl set-hostname master
# 查看主机名
hostname
# 查看修改结果,该命令是用来查看操作系统、内核版本等信息
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1 $(hostname)" >> /etc/hosts

解压Zip文件:

 unzip jboss-as-7.1.1.Final.zip -d /opt/jboss

解压后,当前文件不做变更(解压),解压到指定目录。

rpm:Linux rpm 命令用于管理套件。

rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

参考:Linux的rpm命令

tar:Linux tar(英文全拼:tape archive )命令用于备份文件。

tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

tar -zxvf file_name.tar.gz

netstat:Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

# 查看端口使用情况
netstat -anp | grep 8080
# 查看所有已经使用的端口的情况
netstat -nultp

ps:ps命令将某个进程显示出来。PS是LINUX下最常用的也是非常强大的进程查看命令

# 查看父进程.
ps -ef | grep <进程名>
# 检查java 进程是否存在
ps -ef | grep java
# 在显示的输出中,第三列就是该进程的父进程PID,然后可以再使用ps命令来查看父进程的名称
ps -ef | grep <父进程PID>

# 查看线程
ps hH p <pid>

ps -ef | grep java的显示结果

字段含义如下:
UID       PID       PPID      C     STIME    TTY       TIME         CMD

zzw      14124   13991      0     00:38      pts/0      00:00:00    grep --color=auto dae

UID      :程序被该 UID 所拥有

PID      :就是这个程序的 ID 

PPID    :则是其上级父程序的ID

C          :CPU使用的资源百分比

STIME :系统启动时间

TTY     :登入者的终端机位置

TIME   :使用掉的CPU时间。

CMD   :所下达的是什么指令

中间的|是管道命令 是指ps命令与grep同时执行

grep:Linux grep 命令用于查找文件里符合条件的字符串。grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

# 在当前目录中,查找后缀有.log字样的文件中包含 test 字符串的文件,并打印出该字符串的行
grep test *.log

# 以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所# # 有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容
grep -r update /etc/acpi 

# 反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。
# 查找文件名中包含 test 的文件中不包含test 的行
grep -v test *test*
#查找文件名中包含test 的文件中不包含test 的行
grep-v test* 

文件输出:

文件描述符

首先,我们说一下文件描述符。

Linux中文件描述符英文简称为fd,全程为File descriptor。Linux系统预留了三个文件描述符,分别为:0、1、2。其中:

  • 0-标准输入(stdin),从键盘获得输入,/proc/self/fd/0
  • 1-标准输出(stdouot),输出到屏幕(即控制台),/proc/self/fd/1
  • 2-标准错误(stderr),输出到屏幕(即控制台),/proc/self/fd/2

也就是说,默认情况下,0是指从键盘获得输出的内容,1代表普通内容输出到屏幕上,2代表错误信息输出到屏幕上。

/dev/null代表Linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。

# 把标准输出的内容输出到null,也就是黑洞中,结果就是废弃掉所有的标准输出
1 > /dev/null

# 把错误输出的内容输出到null...
2 > /dev/null

如果1和2连起来处理:

# 把标准输出重定向到黑洞,然后把标准错误重定向到标准输出1。
# 也就是说,标准输出和错误输出都进了黑洞,等于日志全部抛弃。
>/dev/null 2>&1
# 等同于
1>/dev/null 2>&1

# 把标准错误重定向到标准输出1,也就是屏幕上。
# 把标准输出重定向到黑洞,也就是放弃了。
# 最终的意思是,标准日志都抛弃了,只把错误的信息显示到屏幕上。
2>&1 >/dev/null
# 粘贴复制代码自带空格与缩进
# 输入内容之前,先输入以下命令
:set paste
# 输入内容之后再输入以下命令结束
:set nopaste

> stdout.log

六、清空文件

6.1 cat命令

cat /dev/null > fileName

6.2 vim、vi命令

使用vi/vim命令打开文件后,输入"%d"清空,后保存即可。但当文件内容较大时,处理较慢。

vim fileName

# 打开之后输入以下命令
:%d

# 按ESC,然后保存即可
:wq

七、du

在Linux服务器上,可以使用一下命令查看du的使用说明:

du --help

不止 du 命令,很多 Linux 命令都可以使用 --help 来查看使用说明。

查看 du 的命令帮助之后,我们可以可以看到:

Usage: du [OPTION]... [FILE]...

下面介绍几个常用参数。

# 查看当前文件夹所有文件大小
du -a

# 查看当前文件夹总计大小
du -c

# 以上显示的都是kb,一般我们使用ll或者ls -l显示的是字节,也就是Byte
# 下面的参数可以以人类刻度的格式输出大小,比如,1k、2M、3G
du -h

# 分别计算命令中每个参数所占的总用量,说白了就是只计算一个总数,一般和h参数一起使用
du -s

# 以人类可读的方式输出当前文件夹下总大小
du -sh

# 显示指定层次目录的大小
du -d 数字
# 比如
du -d 1
# 这个命令等同于 --max-depth=N
# 如果 --max-depth=0,则等于 --summarize,而--summarize是s参数的长命令
# 也就是说,du --max-depth=0 等效于 du -s

# 一般地,以人类可读的参数h,如果和其他参数联合使用,而后面的参数有值要输入
# 那么就需要将需要输入取值的参数放后面,可以和取值匹配
# 如果我们输入 du -dh 2 是会报错的,应该输入
du -hd 2

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
linux-command Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。    Linux命令分类 这里存放Linux 命令大全并不全,你可以通过linux-command来搜索,它是把 command 目录里面搜集的命令,生成了静态HTML并提供预览以及索引搜索。 文件传输 bye、ftp、ftpcount、ftpshut、ftpwho、ncftp、tftp、uucico、uucp、uupick、uuto 备份压缩 ar、bunzip2、bzip2、bzip2recover、compress、cpio、dump、gunzip、gzexe、gzip、lha、restore、tar、unarj、unzip、zip、zipinfo 文件管理 diff、diffstat、file、find、git、gitview、ln、locate、lsattr、mattrib、mc、mcopy、mdel、mdir、mktemp、mmove、mread、mren、mshowfat、mtools、mtoolstest、mv、od、paste、patch、rcp、rhmask、rm、slocate、split、tee、tmpwatch、touch、umask、whereis、which、cat、chattr、chgrp、chmod、chown、cksum、cmp、cp、cut、indent 磁盘管理 cd、df、dirs、du、edquota、eject、lndir、ls、mcd、mdeltree、mdu、mkdir、mlabel、mmd、mmount、mrd、mzip、pwd、quota、quotacheck、quotaoff、quotaon、repquota、rmdir、rmt、stat、tree、umount 磁盘维护 badblocks、cfdisk、dd、e2fsck、ext2ed、fdisk、fsck.ext2、fsck、fsck.minix、fsconf、hdparm、losetup、mbadblocks、mformat、mkbootdisk、mkdosfs、mke2fs、mkfs.ext2、mkfs、mkfs.minix、mkfs.msdos、mkinitrd、mkisofs、mkswap、mpartition、sfdisk、swapoff、swapon、symlinks、sync 系统设置 alias、apmd、aumix、bind、chkconfig、chroot、clock、crontab、declare、depmod、dircolors、dmesg、enable、eval、export、fbset、grpconv、grpunconv、hwclock、insmod、kbdconfig、lilo、liloconfig、lsmod、minfo、mkkickstart、modinfo、modprobe、mouseconfig、ntsysv、passwd、pwconv、pwunconv、rdate、resize、rmmod、rpm、set、setconsole、setenv、setup、sndconfig、SVGAText Mode、timeconfig、ulimit、unalias、unset 系统管理 adduser、chfn、chsh、date、exit、finger、free、fwhois、gitps、groupdel、groupmod、halt、id、kill、last、lastb、login、logname、logout、logrotate、newgrp、nice、procinfo、ps、pstree、reboot、renice、rlogin、rsh、rwho、screen、shutdown、sliplogin、su、sudo、suspend、swatch、tload、top、uname、useradd、userconf、userdel、usermod、vlock、w、who、whoami、whois 文档编辑 col、colrm、comm、csplit、ed、egrep、ex、fgrep、fmt、fold、grep、ispell、jed、joe、join、look、mtype、pico、rgrep、sed、sort、spell、tr、uniq、wc 网络通讯 dip、getty、mingetty、ppp-off、smbd(samba daemon)、telnet、uulog、uustat、uux、cu、dnsconf、efax、httpd

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北冥牧之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值