专栏首页devops_k8s01 . Linux常用命令

01 . Linux常用命令

线上查询帮助命令

命令

功能说明

man

查看命令帮助,命令的词典,更复杂的还有info,但不常用。

help

查看Linux内置命令的帮助,比如lsof

文件和目录操作命令

命令

功能说明

ls

全拼list,功能是列出目录的内容及其内容属性信息。

cd

全拼change directory,功能是从当前工作目录切换到指定的工作目录

cp

全拼copy,其功能为复制文件或目录。

Find

查找的意思,用于查找目录及目录下的文件。

Mkdir

全拼make directories,其功能是创建目录。

Mv

全拼move,其功能是移动或重命名文件。

Pwd

全拼print working directory,其功能是显示当前工作目录的绝对路径。

Rename

用于重命名文件

Rm

全拼remove,其功能是删除一个或多个文件或目录。

Rmdir

全拼remove empty directories,功能是删除空目录

Touch

创建新的空文件,改变已有文件的时间戳属性。

Tree

功能是以树形结构显示目录下的内容。

Basename

显示文件名或目录名。

Dirname

显示文件或目录路径。

Chattr

改变文件的扩展属性。

Laattr

查看文件扩展属性。

File

显示文件的类型。

md5sum

计算和校验文件的MD5值。

查看文件及内容处理命令

命令

功能说明

cat

全拼concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。

tac

tac是cat的反向拼写,因此命令的功能为反向显示文件内容。

More

分页显示文件内容。

Less

分页显示文件内容,more命令的相反用法。

Head

显示文件内容的头部。

Tail

显示文件内容的尾部。

Cut

将文件的每一行按指定分隔符分割并输出

Split

分割文件为不同的小片段。

Paste

按行合并文件内容。

Sort

对文件的文本内容排序。

Uniq

去除重复行

wc

统计文件的行数、单词数或字节数。

Lconv

转换文件的编码格式。

Dos2unix

将DOS格式文件转换成UNIX格式。

diff

全拼difference,比较文件的差异,常用于文本文件。

Vimdiff

命令行可视化文件比较工具,常用于文本文件。

Rev

反向输出文件内容。

Grep/egrep

过滤字符串,三剑客老三。

Join

按两个文件的相同字段合并。

Tr

替换或删除字符。

vi/vim

命令行文本编辑器。

文件压缩及解压缩命令

命令

功能说明

Tar

打包压缩

Unzip

解压文件

Gzip

gzip压缩工具

Zip

压缩工具

信息显示命令

命令

功能说明

Uname

显示操作系统相关信息的命令

Hostname

显示或者设置当前系统的主机名

dmesg

显示开机信息,用于诊断系统故障

uptime

显示系统运行时间及负载

Stat

显示文件或文件系统的状态

Du

计算磁盘空间使用情况

Df

报告文件系统磁盘空间的使用情况

Top

实时显示系统资源使用情况

Free

查看系统内存

Date

显示与设置系统时间

Cal

查看日历等时间信息

搜索文件命令

命令

功能说明

which

查找二进制命令,按环境变量PATH路径查找

find

从磁盘遍历查找文件或目录

whereis

查找二进制命令,按环境变量PATH路径查找

Locate

从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用updatedb更新库

用户管理命令

命令

功能说明

useradd

添加用户

usermod

修改系统已经存在的用户属性

userdel

删除用户

groupadd

添加用户组

passwd

修改用户密码

chage

修改用户密码有效期限

id

查看用户的uid,gid及归属的用户组

su

切换用户身份

visudo

编辑/etc/sudoers文件的专属命令。

Sudo

以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令。

基础网络操作命令

命令

功能说明

telnet

使用TELNET协议远程登录

ssh

使用SSH加密协议远程登录

scp

全拼secure copy,用于不同主机之间复制文件

wget

命令行下载文件

ping

测试主机之间网络的连通性

route

显示和设置linux系统的路由表

ifconfig

查看、配置、启用或禁用网络接口的命令

ifup

启动网卡

ifdown

关闭网卡

netstat

查看网络状态

ss

查看网络状态

Curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具

Curl

常用参数

-A/--user-agent <string>         #     设置用户代理发送给服务器
-b/--cookie <name=string/file>  #  cookie字符串或文件读取位置
-c/--cookie-jar <file>            #        操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>      #      断点续转
-D/--dump-header <file>        #      把header信息写入到该文件中
-e/--referer                    #              来源网址
-f/--fail                       #                   连接失败时不显示http错误
-o/--output                   #               把输出写到该文件中
-O/--remote-name             #         把输出写到该文件中,保留远程文件的文件名
-r/--range <range>          #            检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                   #                 静音模式。不输出任何东西
-T/--upload-file <file>        #          上传文件
-u/--user <user[:password]>  #    设置服务器的用户和密码
-w/--write-out [format]      #          什么输出完成后
-x/--proxy <host[:port]>     #         在给定的端口上使用HTTP代理
-#/--progress-bar                        进度条显示当前的传送状态

使用案例

下载访问的网页

curl http://www.linux.com >> baidu.html
curl -o baidu.html http://www.baidu.com
curl -O http://www.baidu.com/index.html  # 要具体到某个文件,不然不行

查看网站状态码返回值

curl -o /dev/null -s -w %{http_code} www.linux.com

保存http的response里面的cookie信息。内置option:-c(小写)

curl -c cookiec.txt  http://www.linux.com

保存http的response里面的header信息。内置option: -D

curl -D cookied.txt http://www.linux.com

网站通过监视你的cookie信息来判断你是否正常访问他们的网站的,因此我们需要使用保存的cookie信息。内置option: -b

curl -b cookiec.txt http://www.linux.com

模仿浏览器,这样服务器端就会认为是使用IE8.0去访问的

curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com

伪造referer(盗链)很多服务器会检查http访问的referer从而来控制访问。比如:你是先访问首页,然后再访问首页中的邮箱页面,这里访问邮箱的referer地址就是访问首页成功后的页面地址,如果服务器发现对邮箱页面访问的referer地址不是首页的地址,就断定那是个盗连了curl中内置option:-e可以让我们设定referer

curl -e "www.linux.com" http://mail.linux.com

利用curl下载文件,有时候下载图片可以能是前面的部分名称是一样的,就最后的尾椎名不一样

# 有时候下载图片可以能是前面的部分名称是一样的,就最后的尾椎名不一样
curl -O http://www.linux.com/dodo[1-5].JPG

# 下载重命名
curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

# 由于下载的hello与bb中的文件名都是dodo1,dodo2,dodo3,dodo4,dodo5。因此第二次下载的会把第一次下载的覆盖,这样就需要对文件进行重命名。
curl -o #1_#2.JPG http://www.linux.com/{hello,bb}/dodo[1-5].JPG

分块下载,有时候下载的东西会比较大,这个时候我们可以分段下载。使用内置option:-r

curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG
curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG
cat dodo1_part* > dodo1.JPG

curl可以通过ftp下载文件,curl提供两种从ftp中下载的语法

curl -O -u 用户名:密码 ftp://www.linux.com/dodo1.JPG
curl -O ftp://用户名:密码@www.linux.com/dodo1.JPG

下载进度条

# 显示下载进度条
curl -# -O http://www.linux.com/dodo1.JPG

# 不会显示下载进度信息
curl -s -O http://www.linux.com/dodo1.JPG

断点续传

在windows中,我们可以使用迅雷这样的软件进行断点续传。curl可以通过内置option:-C同样可以达到相同的效果

curl -C -O http://www.linux.com/dodo1.JPG

上传文件

curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/

显示抓取错误

curl -f http://www.linux.com/error

其他一些参数

-a/--append                        上传文件时,附加到目标文件
--anyauth                            可以使用“任何”身份验证方法
--basic                                使用HTTP基本验证
-B/--use-ascii                      使用ASCII文本传输
-d/--data <data>                  HTTP POST方式传送数据
--data-ascii <data>            以ascii的方式post数据
--data-binary <data>          以二进制的方式post数据
--negotiate                          使用HTTP身份验证
--digest                        使用数字身份验证
--disable-eprt                  禁止使用EPRT或LPRT
--disable-epsv                  禁止使用EPSV
--egd-file <file>              为随机数据(SSL)设置EGD socket路径
--tcp-nodelay                  使用TCP_NODELAY选项
-E/--cert <cert[:passwd]>      客户端证书文件和密码 (SSL)
--cert-type <type>              证书文件类型 (DER/PEM/ENG) (SSL)
--key <key>                    私钥文件名 (SSL)
--key-type <type>              私钥文件类型 (DER/PEM/ENG) (SSL)
--pass  <pass>                  私钥密码 (SSL)
--engine <eng>                  加密引擎使用 (SSL). "--engine list" for list
--cacert <file>                CA证书 (SSL)
--capath <directory>            CA目   (made using c_rehash) to verify peer against (SSL)
--ciphers <list>                SSL密码
--compressed                    要求返回是压缩的形势 (using deflate or gzip)
--connect-timeout <seconds>    设置最大请求时间
--create-dirs                  建立本地目录的目录层次结构
--crlf                          上传是把LF转变成CRLF
--ftp-create-dirs              如果远程目录不存在,创建远程目录
--ftp-method [multicwd/nocwd/singlecwd]    控制CWD的使用
--ftp-pasv                      使用 PASV/EPSV 代替端口
--ftp-skip-pasv-ip              使用PASV的时候,忽略该IP地址
--ftp-ssl                      尝试用 SSL/TLS 来进行ftp数据传输
--ftp-ssl-reqd                  要求用 SSL/TLS 来进行ftp数据传输
-F/--form <name=content>        模拟http表单提交数据
-form-string <name=string>      模拟http表单提交数据
-g/--globoff                    禁用网址序列和范围使用{}和[]
-G/--get                        以get的方式来发送数据
-h/--help                      帮助
-H/--header <line>              自定义头信息传递给服务器
--ignore-content-length        忽略的HTTP头信息的长度
-i/--include                    输出时包括protocol头信息
-I/--head                      只显示文档信息
-j/--junk-session-cookies      读取文件时忽略session cookie
--interface <interface>        使用指定网络接口/地址
--krb4 <level>                  使用指定安全级别的krb4
-k/--insecure                  允许不使用证书到SSL站点
-K/--config                    指定的配置文件读取
-l/--list-only                  列出ftp目录下的文件名称
--limit-rate <rate>            设置传输速度
--local-port<NUM>              强制使用本地端口号
-m/--max-time <seconds>        设置最大传输时间
--max-redirs <num>              设置最大读取的目录数
--max-filesize <bytes>          设置最大下载的文件总量
-M/--manual                    显示全手动
-n/--netrc                      从netrc文件中读取用户名和密码
--netrc-optional                使用 .netrc 或者 URL来覆盖-n
--ntlm                          使用 HTTP NTLM 身份验证
-N/--no-buffer                  禁用缓冲输出
-p/--proxytunnel                使用HTTP代理
--proxy-anyauth                选择任一代理身份验证方法
--proxy-basic                  在代理上使用基本身份验证
--proxy-digest                  在代理上使用数字身份验证
--proxy-ntlm                    在代理上使用ntlm身份验证
-P/--ftp-port <address>        使用端口地址,而不是使用PASV
-Q/--quote <cmd>                文件传输前,发送命令到服务器
--range-file                    读取(SSL)的随机文件
-R/--remote-time                在本地生成文件时,保留远程文件时间
--retry <num>                  传输出现问题时,重试的次数
--retry-delay <seconds>        传输出现问题时,设置重试间隔时间
--retry-max-time <seconds>      传输出现问题时,设置最大重试时间
-S/--show-error                显示错误
--socks4 <host[:port]>          用socks4代理给定主机和端口
--socks5 <host[:port]>          用socks5代理给定主机和端口
-t/--telnet-option <OPT=val>    Telnet选项设置
--trace <file>                  对指定文件进行debug
--trace-ascii <file>            Like --跟踪但没有hex输出
--trace-time                    跟踪/详细输出时,添加时间戳
--url <URL>                    Spet URL to work with
-U/--proxy-user <user[:password]>  设置代理用户名和密码
-V/--version                    显示版本信息
-X/--request <command>          指定什么命令
-y/--speed-time                放弃限速所要的时间。默认为30
-Y/--speed-limit                停止传输速度的限制,速度时间'秒
-z/--time-cond                  传送时间设置
-0/--http1.0                    使用HTTP 1.0
-1/--tlsv1                      使用TLSv1(SSL)
-2/--sslv2                      使用SSLv2的(SSL)
-3/--sslv3                      使用的SSLv3(SSL)
--3p-quote                      like -Q for the source URL for 3rd party transfer
--3p-url                        使用url,进行第三方传送
--3p-user                      使用用户名和密码,进行第三方传送
-4/--ipv4                      使用IP4
-6/--ipv6                      使用IP6

彩蛋

# 命令行执行:
# printf "http://me.jinchuang.org" | curl -F-=\<- qrenco.de
# 然后扫一扫

深入网络操作命令

命令

功能说明

nmap

网络扫描命令

lsof

全名list open files,也就是列举系统中已经被打开的文件

mail

发送和接收邮件

mutt

邮件管理命令

nslookup

交互式查询互联网DNS服务器的命令

dig

查找DNS解析过程

host

查询DNS的命令

traceroute

追踪数据传输路由状况

Tcpdump

命令行的抓包工具

有关磁盘与文件系统命令

命令

功能说明

mount

挂载文件系统

umount

卸载文件系统

fsck

检查并修复Linux文件系统

dd

转换或复制文件

dumpe2fs

导出ext2/ext3/ext4文件系统信息

dump

ext2/3/4文件系统备份工具

fdisk

磁盘分区命令,适用于2TB以下磁盘分区

parted

磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区

mkfs

格式化创建Linux文件系统

partprobe

更新内核的硬盘分区表信息

e2fack

检查ext2/ext3/ext4类型文件系统

mkswap

创建Linux交换分区

Swapon

启用交换分区

swapoff

关闭交换分区

sync

将内存缓冲区内的数据写入磁盘

Resize2fs

调整ext2/ext3/ext4文件系统大小

系统权限及用户授权相关命令

命令

功能说明

chmod

改变文件或目录权限

chown

改变文件或目录的属主和属组

chgrp

更改文件用户组

Umask

显示或设置权限掩码

查看系统用户登录信息命令

命令

功能说明

whoami

显示当前有效的用户名称,相当于执行id -un命令

who

显示目前登录系统的用户信息

w

显示已经登陆系统的用户列表,并显示用户正在执行的指令

last

显示登入系统的用户

lastlog

显示系统中所有用户最近一次登录信息

users

显示当前登录系统的所有用户的用户列表

Finger

查找并显示用户信息

内置命令及其他

命令

功能说明

echo

打印变量,或直接输出指定的字符串

printf

将结果格式化输出到标准输出

rpm

管理rpm包的命令

yum

自动化简单化地管理rpm包的命令

watch

周期性的执行给定的命令,并将命令的输出以全屏方式显示

alias

设置系统别名

Unalias

取消系统别名。

date

查看或设置系统时间

clear

清除屏幕,简称清屏

history

查看命令执行的历史纪录。

eject

弹出光驱

time

计算命令执行时间

nc

功能强大的网络工具。

xargs

将标准输入转换成命令行参数。

exec

调用并执行指令的命令

export

设置或者显示环境变量。

unset

删除变量或函数。

type

用于判断另外一个命令是否是内置命令。

Bc

命令行科学计算器

系统管理与性能见识命令

命令

功能说明

chkconfig

管理Linux系统开机启动项。

vmstat

虚拟内存统计。

mpstat

显示各个可用CPU的状态统计

iostat

统计系统IO

sar

全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据。

ipcs

用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。

ipcrm

用来删除一个或更多的消息队列、信号量集或者共享内存标识。

strace

用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。

Ltrace

命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。

shutdown

关机

halt

关机

poweroff

关闭电源

logout

退出当前登录的Shell。

exit

退出当前登录的Shell

Ctrl+d

退出当前登录的Shell的快捷键。

进程管理相关命令

命令

功能说明

bg

将一个在后台暂停的命令,变成继续执行 (在后台执行)

fg

将后台中的命令调至前台继续运行

jobs

查看当前有多少在后台运行的命令

kill

终止进程

killall

通过进程名终止进程

pkill

通过进程名终止进程

crontab

定时任务命令

ps

显示进程的快照

pstree

树形显示进程

nice/renice

调整程序运行的优先级

nohup

忽略挂起信号运行指定的命令。

pgrep

查找匹配条件的进程

runlevel

查看系统当前运行级别

init

切换运行级别

Service

启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 06 . Python3入门之IO编程(文件操作)

    4. f.write() f.write(string)将string写入到文件中,然后返回写入的字符数.

    常见_youmen
  • 04 . Mysql主从复制和Mycat读写分离

    从库生成两个线程,一个I/O,一个SQL线程,I/O线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志)文件中;

    常见_youmen
  • Web压测工具之Webbench和http_load

    常见_youmen
  • 相关资源

    待你如初见
  • shell 命令 干货

    onety码生
  • NodeMCU初探

    对于ESP8266模块,早就想知道如何用其脚本语言, 自己先用的这个模块测试的 ? 首先是先下载需要用到的工具和固件 链接:http://pan.baidu.c...

    杨奉武
  • PHP 文件系统完全指南

    今天我们将开启一个新的探索旅程,深入到 PHP 文件系统中,系统的学习和掌握 PHP 文件系统的基本使用。

    柳公子
  • [MarkDown] MarkDown语法小结

    HTML中 < 和 & 都要转码 但markdown不必,输入& 和 &amp; 都显示 &,< 也一样

    wOw
  • Nokia 920板砖自救(理论上通用,升级Win10成板砖也可以用这个恢复)

    异常处理汇总 ~ 修正果带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4599258.html 个人博客:http...

    逸鹏
  • JS模块加载框架 SeaJS

    SeaJS是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制,兼容所有主流浏览器 SeaJS的主要目的...

    dys

扫码关注云+社区

领取腾讯云代金券