运维人常用linux命令--吐血整理(持续更新)

不常用但实用命令

  • 查看操作系统版本:cat /etc/os-release
  • 实时显示系统中各个进程的资源占用状况:top
  • 查看每个cpu的详细信息,包括型号、主频、内核信息等:cat /proc/cpuinfo
  • 查看cpu的核数:cat /proc/cpuinfo | grep processor
  • 显示内存的使用情况(使用、未使用、共享内存、缓存区):free <–>free -m --以MB为单位显示内存使用情况
  • 查看python命令的位置:which python(windows上是where)
  • 查看yum仓库中所有软件包:yum list
  • 查看已安装的安装包:yum list installed
  • 永久关闭防火墙:systemctl stop firewalld && systemctl disable firewalld
  • 关闭selinux: sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
  • 查看selinux状态:getenforce
  • 设置自己的主机名:hostnamectl set-hostname NEW_HOSTNAME

sysctl

sysctl命令 被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。它包含一些TCP/IP堆栈和虚拟内存系统的高级选项
例子

  • syctl -a --打印当前所有可用的内核参数变量和值
  • sysctl net.ipv6.neigh.lo.locktime --查看指定的变量
  • sysctl net.ipv6.neigh.lo.locktime=1 --修改指定的变量

替换文本的方法:sed、vim时命令模式替换

  • vim 打开文件后按esc进入命令模式,输入":"后,键入“%s#hello#hi”–此时把文本所有hello替换为hi
  • sed是stream editor的简称,也就是流编辑器
    例子
  • sed -i ‘s/yl/te/g’ a.txt --在a.txt中将yl替换为te。s表示替换命令,g表示全局替换,中间/是分割

“~”、“/”、“./”、“…”

  • 为home目录。登录用户时为当前用户的home目录,没登录用户(root权限登录)时为/root目录
  • /为根目录,所以目录的最顶层目录(也是root目录的根目录)
  • .表示当前目录。

grep

用于查找文件里符合条件的字符串或正则表达式
例子

  • grep -v DB –不显示带有DB两个字母的行数
  • grep -i db yl.txt –忽略大小写去查询yl.txt中含有“db”的行

ss

Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效
例子:ss -tunlp

netstat

用于显示网络状态。利用netstat指令可得知整个Linux系统的网络情况
例子

  • netstat -tuln --会列出当前系统中所有的TCP和UDP端口,并显示它们的状态。其中,-t参数表示显示TCP端口,-u参数表示显示UDP端口,-l或–listening参数表示只显示监听状态的端口,-n或–numeric直接使用IP地址参数表示以数字形式显示端口号.
  • netstat -tlnp –
  • netstat -anp –

su

su指令的主要功能是切换用户身份,使当前用户暂时拥有目标用户的权限
例子

  • su [用户名]–系统会要求输入目标用户的密码。成功输入密码后,当前用户将切换为目标用户
  • su --当不指定目时标用户时,默认切换为超级用户(root)。输入超级用户密码后,当前用户将切换为root用户.

telnet

使用 Telnet 命令来远程连接到其他计算机或设备的 Telnet 服务。要使用 Telnet 命令,请按照以下步骤操作:

  • 打开终端:打开 Linux 终端或命令行界面
  • 输入 Telnet 命令:在终端中,输入以下命令的语法:telnet [目标主机或 IP地址] [端口号]。例如telnet example.com 23
  • 连接远程主机:按 Enter 键后,Telnet 将尝试建立到目标主机的 Telnet 服务的连接。
  • 进行 Telnet 会话:如果连接成功,可以在 Telnet 会话中输入命令并与远程主机进行交互。
  • 退出 Telnet 会话:要退出 Telnet 会话,可以输入 Ctrl+](按住 Ctrl 键,然后按右方括号键 ]),然后输入 quit 或 exit 并按 Enter 键。这将断开 Telnet 会话并返回到终端
  • telnet和ping的区别:
    • Telnet:Telnet 是一种用于远程登录和管理远程计算机或设备的协议和工具。它允许用户通过网络连接到目标主机,并在目标主机上执行命令和操作,就好像他们坐在目标主机前一样。Telnet 通常用于配置和管理远程服务器、路由器、交换机等设备。
    • Ping:Ping 用于测试网络中的主机或设备的可达性。它发送 ICMP(Internet Control Message Protocol)请求到目标主机,并等待响应。Ping 不会进行远程登录或管理,而只是检测目标主机是否在线,以及计算与目标主机之间的往返延迟时间

PS

ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器
例如:ps -ef——查看系统上所有的进程。其中,-e显示所有进程;-f全格式,所有的格式,即:显示全部的列(字段)。其中第一列为UID:该进程执行的用户id;第二列为PID:进程id;第三列为PPID:该进程的父级进程id。

iptables

iptables清空所有规则和恢复默认规则
iptables -I INPUT -p all -s 192.168.0.51 -j DROP
iptables -F
iptables -L

ens33配置

/etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b841150d-bab6-4e52-802d-83c990f6b00f
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.0.50
NETMASK=255.255.255.0
GATEWAY=192.168.0.2
DNS1=192.168.0.2

然后在systemctl restart network

find

用于在指定目录下查找文件和目录.如果未指定路径,则默认为当前目录.
例子

  • find / -name “*.pl” –全局搜索以.pl结尾的的文件
  • find . -name “*.pl” –当前目录下搜索以.pl结尾的的文件
  • find /var/log -mtime +7 --查找 /var/log 目录下在 7 天前修改过的文件
  • find / -type d -name “zabbix” --全局查找目录名字为“zabbix”的目录
  • find / -type d -name “zabbix*” --全局查找目录名字以“zabbix”开头的目录
  • find / -type f -name “zabbix” --全局查找文件名字为“zabbix”的目录

cp

复制文件或者目录。cp [options] source dest。
复制和删除均可以使用-r参数来递归操作
例子

  • cp file.txt /path/to/destination/ --将文件 file.txt 复制到目录 /path/to/destination/ 中
  • cp –r test/ newtest --使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest
    注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R

rm

复制和删除均可以使用-r 参数来递归操作
例子

  • rm -rf test/ --删除目录 test,不管该目录下是否有子目录或文件,都直接删除

mv

用来为文件或目录改名、或将文件或目录移入其它位置。

  • mv source_file(文件) dest_file(文件) --将源文件名source_file改为目标文件名dest_file
  • mv source_file(文件) dest_directory(目录) --将文件source_file移动到目标目录dest_directory中
  • mv source_directory(目录) dest_directory(目录) –目录名 dest_directory 已存在,将source_directory移动到目录名 dest_directory 中;目录名dest_directory不存在,则source_directory改名为目录名dest_directory
  • mv source_directory(目录) dest_file(文件) --会出错
    例子
  • mv mysql-1.61.txt mysql.txt --将文件mysql-1.61重命名为mysql–mv 原文件名 重命名文件
  • mv mysql /etc/lcoal – 将文件mysql移动到ETC的local目录下

chmod

chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。

  • *r-read-4 w-write-2 x-execute-1。r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
  • u 表示该文件的拥有者,g表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    • 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
      例子
  • chmod a+x file1.txt–将文件 file1.txt 设为所有人皆可执行
  • chmod u=rw,go= file1.txt --对file1.txt的所有者设置读写权限,清空该用户组和其他用户对file的所有权限(空格代表无权限)
  • chmod 777 file1.txt --所有者、该用户组、其他用户设置读写执行的权限(4®+2(w)+1(x)=7)

tar

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

  • tar -zcvf test.tar.gz a.c –压缩 a.c文件为test.tar.gz
  • tar -zcvf xx.tar.gz python --将执行此命令的目录下的所有python开头的文件都打成压缩包*
  • tar -zxvf test.tar.gz –压test.tar.gz为a.c
    • -z或–gzip或–ungzip 通过gzip指令处理备份文件
    • -v或–verbose 显示指令执行过程
    • -f<备份文件>或–file=<备份文件> 指定备份文件
    • -c或–create 建立新的备份文件
    • -x或–extract或–get 从备份文件中还原文件

ls

显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)
例子

  • ll是ls -l的缩写。-l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等.
    • 第一列共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、executable。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限
    • 第二列表示链接数,表示有多少个文件链接到inode号码
    • 第三列表示拥有者
    • 第四列表示所属群组
    • 第五列表示文档容量大小,单位字节
    • 第六列表示文档最后修改时间,注意不是文档的创建时间
    • 第七列表示文档名称。以点(.)开头的是隐藏文档

touch

用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。ls -l 可以显示档案的时间记录
例子

  • touch testfile --修改文件时间属性为当前系统时间 -->ls -l testfile --查看文件的时间属性
  • touch 1.txt 2.txt --当1.txt和2.txt不存在时,会创建对应的的文件

mkdir

要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
例子

  • mkdir test --创建test目录
  • mkdir –p /root/1/2/3 --创建root目录及其下面的子目录1及其1下面的子目录2及其2下面的子目录3。若不加-p,且不存在/root等目录则会报错

curl1curl2

curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输
例子

  • curl -v http://www.linux.com --测试网络是否可达并打印版本

source

通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录
例子

  • source /etc/profile --修改了profile之后,source一下直接使之生效

env1env2

env即environment,显示系统中已存在的环境变量
环境变量的规则:
* 环境变量遵循<NAME>=<VALUE>格式。
* 等号两边没有空格
* 可以通过使用冒号分隔单个变量来指定多个值:``=::`
* 环境变量区分大小写
* 习惯上,环境变量名称设置为大写。
* Shell 变量与环境变量不同。Shell 变量仅适用于当前 shell,不适用于任何子进程。
例子

  • env --显示所有环境变量
  • env path=“/usr/bin/yl” --在path中添加了路径
  • env -u LOGNAME --删除指定的环境变量LOGNAME

export

用于设置或显示环境变量.export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作
例子

  • export -p --显示所有的shell赋予程序的环境变量
  • export MYENV=7 --定义环境变量并赋值

set, export, env的区别

kill

用于删除执行中的程序或工作
例子

  • export -9 6533 --杀死进程6533

rz、sz

将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能。使用rz和sz需要安装yum install -y lrzsz

输出重定向 “>”、“>>”、“freopen”

>和>>其实都属于输出重定向,都可以输出内容到指定文件。

  • < 输入重定向
  • > 输出重定向 ,会覆盖原来文件
  • >> 输出重定向,进行追加,不会覆盖之前内容
  • << 标准输入来自命令行的一对分隔号的中间内容
    区别:
  • >会覆盖目标的原有内容,当文件存在时,会先删除原文件,再重新创建文件,然后把内容写入该文件,否则直接创建文件
  • >>会在目标原有内容后追加内容,当文件存在时直接在文件末尾进行内容追加,不会删除原文件,否则直接创建文件
    例子
  • env | grep java >> yl.txt --将筛选env打印的所有环境变量中有java的信息,并追加写入yl.txt

isql 查询sql server

需要安装unixodbc
isql -v <ODBC数据源名称><用户名><密码> --连接到数据库
具体操作看标题链接

ln

为某一个文件在另外一个位置建立一个同步的链接
例子

  • ln ./nginx /usr/sbin/nginx–>在当前目录下nginx文件建立软链接到/usr/sbin/nginx中去(类似win中设置环境变量)。全局使用“nginx"则会有指定程序响应

cat <<EOFcat、cat >file 、cat <file <<EOF、cat <<-EOF区别

EOF是END Of File的缩写,表示自定义终止符。
例子

  • cat <<EOF > yl.txt --输入此行命令后,会在接下来的命令行里输入你想写入yl.txt的内容(覆盖),并且当你在接下来的命令行中输入EOF时认为写入结束。

./configure、make、make install区别和各自介绍

  • ./configure是源代码安装的第一步,作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系。
  • make是用来编译的,它从Makefile或者makefile(Linux区分大小写中读取指令,然后编译。
  • make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
    例子
  • make && make install --编译并安装程序

echo

作用相当于C语言里面的printf。
例子

  • echo ‘Hello World’ --输出hello word到界面
  • echo ‘xxx’ >>yl.txt --将hello word输入到yl.txt中(追加,不覆盖
  • echo ‘xxx’ >yl.txt --将hello word输入到yl.txt中(覆盖原有内容
  • echo后的单引号表示强引用,单引号里面是什么内容就输出什么,而双引号弱引用,变量的值会代替变量名输出
    ![[image-20231224212306993.png]]

yum/rpm/dnf/apt-get/dpkg/brew两两间区别联系RPM与YUM区别和联系

  • RPM(RedHat Package Manager)–软件包管理器。YUM–软件包管理器的前端工具,基于rpm开发。
  • RPM无法解决软件包之间的依赖关系,yum、apt-get、dnf能解决

  • apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统

  • DNF(Dandified Yum)是Fedora Linux操作系统中的一个包管理器,它是基于Yum开发的。 它的主要特点是快速、可靠、易用和优秀的用户体验。

  • 两两间的区别主要看两个链接

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值