Linux常用命令

2023-02-16 16:10:49 浏览数 (1)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。

代码语言:javascript复制
date     #显示或设定系统的日期与时间。
ls       #列出文件名或目录名
ll       #列出该文件下的所有文件信息,包括隐藏的文件  ls -l的一个别名
cd       # 进入指定目录, cd / 跳转到根目录
pwd      #显示当前工作目录
vim      #编辑或创建文件
cat      #显示文件内容
ifconfig #显示或设置网络设备
ip       #加强版的的网络配置工具,用于代替 ifconfig 命令。
top      #显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等
watch    #周期性执行命令/定时执行命令
rm       #删除一个目录中的一个或多个文件或目录
cp       #将源文件复制至目标文件,或将多个源文件复制至目标目录
mv       #移动文件或修改文件名
more     #功能类似于 cat, more 会以一页一页的显示方便使用者逐页阅读
less     #与 more 类似
head     #用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。
tail     #用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
find     #用于在文件树中查找文件,并作出相应的处理  -name 按照文件名查找文件
chmod    #改变linux系统文件或目录的访问权限
chown    #将指定文件的拥有者改为指定的用户或组
df       #显示磁盘空间使用情况 -h 以方便阅读的方式显示信息
du       #对文件和目录磁盘使用的空间的查看 -s 仅显示总计 -m 以MB为单位显示文件大小
cal      #显示公历(阳历)日历
grep     #查找文件里符合条件的字符串
wc       #统计指定的文件中字节数、字数、行数,并将统计结果输出
ps       #查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top
kill     #删除执行中的程序或工作  kill -9 $(ps -ef | grep tomcat)
free     #显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
du       #显示指定的目录或文件所占用的磁盘空间。
firewalld #设置防火墙

命令 --help,查看帮助

ls

代码语言:javascript复制
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出

cd

代码语言:javascript复制
cd / 跳转到根目录
cd /usr/bin 跳到 /usr/bin/
cd ../..  跳到目前目录的上上两层

vim 启动 vi/vim,便进入了命令模式,此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。

代码语言:javascript复制
i 切换到输入模式,以输入字符。
: 切换到底线命令模式,以在最底一行输入命令。

vim 输入模式

代码语言:javascript复制
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式

底线命令模式

代码语言:javascript复制
q 退出程序
w 保存文件
wq! 强制保存退出
set nu 显示行号
:set nonu 与 set nu 相反,为取消行号!
/aa  查找文件内aa的内容,高亮显示

cat

代码语言:javascript复制
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

ifconfig

代码语言:javascript复制
add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
down 关闭指定的网络设备。
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
io_addr<I/O地址> 设置网络设备的I/O地址。
irq<IRQ地址> 设置网络设备的IRQ。
media<网络媒介类型> 设置网络设备的媒介类型。
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 设置网络设备的MTU。
netmask<子网掩码> 设置网络设备的子网掩码。
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
up 启动指定的网络设备。
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
-promisc 关闭或启动指定网络设备的promiscuous模式。
[IP地址] 指定网络设备的IP地址。
[网络设备] 指定网络设备的名称。

ip

代码语言:javascript复制
ip addr show     # 显示网卡IP信息
ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1
ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址

top

代码语言:javascript复制
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内

watch

代码语言:javascript复制
-n或--interval  watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
-d或--differences  用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
-t 或-no-title  会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。

rm

代码语言:javascript复制
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。

cp

代码语言:javascript复制
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。

mv

代码语言:javascript复制
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
mv dir1 dir2 #如果dir2目录存在,该命令将把dir1移到dir2中。如果dir2不存在,dir1将被重命名为dir2:

more 参数

代码语言:javascript复制
-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
 /pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
 num 从第 num 行开始显示
fileNames 欲显示内容的文档,可为复数个数

操作命令

代码语言:javascript复制
Enter 向下n行,需要定义。默认为1行
Ctrl F 向下滚动一屏
空格键 向下滚动一屏
Ctrl B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more

less 参数

代码语言:javascript复制
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页

操作命令

代码语言:javascript复制
ctrl   F - 向前移动一屏
ctrl   B - 向后移动一屏
ctrl   D - 向前移动半屏
ctrl   U - 向后移动半屏
j - 下一行
k - 上一行
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令

head

代码语言:javascript复制
-q 隐藏文件名
-v 显示文件名
-c<数目> 显示的字节数。
-n<行数> 显示的行数。

tail

代码语言:javascript复制
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

Linux 下查看日志时,使用tail -f可以不断的刷新日志信息。 例如:tail -f logs.log 此时要想暂停刷新,使用ctrl s暂停终端 要是想继续终端,使用ctrl q 若想退出tail命令,直接使用ctrl c

代码语言:javascript复制
tail -f catalina.out | grep --line-buffer "发送邮件"

实时查看tomcat的控制台日志中,含有“发送邮件”关键字的记录: 注:–line-buffer : 每输出一行,就刷新一次。管道 | 是全缓冲的,一般来说buffer_size为4096,有些是8192。不管具体值多少,只有buffer_size满了,才会看到输出。

find

代码语言:javascript复制
-ctime n : 在过去n天内被修改过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-type c : 文件类型是 c 的文件。
find . -name "*.c" #将当前目录及其子目录下所有文件后缀为 .c 的文件列出来

chmod

代码语言:javascript复制
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

chown

代码语言:javascript复制
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
--help : 显示辅助说明
--version : 显示版本

df

代码语言:javascript复制
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以k字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
-t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T 显示文件系统类型。
-h或--human-readable:以可读性较高的方式来显示信息;
-l或--local:仅显示本地端的文件系统;

du

代码语言:javascript复制
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或--dereference-args 显示指定符号连接的源文件大小。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或--kilobytes 以1024 bytes为单位。
-l或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或--megabytes 以1MB为单位。
-s或--summarize 仅显示总计。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
--help 显示帮助。
du log4j.log 显示指定文件所占空间

cal

代码语言:javascript复制
-1, --one     只显示当前月份(默认)
-3, --three     显示上个月、当月和下个月
-s, --sunday     周日作为一周第一天
-m, --monday        周一用为一周第一天
-j, --julian         输出儒略日
-y, --year       输出整年
-V, --version    显示版本信息并退出
-h, --help          显示此帮助并退出

grep

代码语言:javascript复制
-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --invert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。

wc

代码语言:javascript复制
-c或--bytes或--chars 只显示Bytes数。
-l或--lines 显示行数。
-w或--words 只显示字数。

ps 参数

代码语言:javascript复制
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

示例

代码语言:javascript复制
ps -ef | grep 进程关键字 #查找指定进程格式
ps -u root //显示root进程用户信息
ps -ef //显示所有命令,连带命令行

kill

代码语言:javascript复制
1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。
#在使用 kill -9 前,应该先使用 kill -15,给目标进程一个清理善后工作的机会。如果没有,可能会留下一些不完整的文件或状态,从而影响服务的再次启动。

free

代码语言:javascript复制
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-g   以GB为单位显示内存使用情况
-s<间隔秒数>  持续观察内存使用状况。

du

代码语言:javascript复制
du -sh  目录  #查看单个目录大小
du -sh * #查看当前目录下文件夹和文件的大小

firewalld

代码语言:javascript复制
# 开启防火墙
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

tar

代码语言:javascript复制
# 解压到指定目录
tar -zxvf 111.tgz -C /opt/modul
# 解压 a.tar.gz 包里文件名以 one 开头的文件到 /tmp 文件夹下
tar -xzv -C /tmp -f a.tar.gz one*

0 人点赞