Linux常用命令

一、基础知识

1.Linux系统的文件结构

bash 复制代码
/bin        二进制文件,系统常规命令
/boot       系统启动分区,系统启动时读取的文件
/dev        设备文件
/etc        大多数配置文件
/home       普通用户的家目录
/lib        32位函数库
/lib64      64位库
/media      手动临时挂载点
/mnt        手动临时挂载点
/opt        第三方软件安装位置
/proc       进程信息及硬件信息
/root       临时设备的默认挂载点
/sbin       系统管理命令
/srv        数据
/var        数据
/sys        内核相关信息
/tmp        临时文件
/usr        用户相关设定

2.Linux系统命令行的含义

bash 复制代码
示例:[root@wxxx ~]# 
root    //用户名,root为超级用户
@       //分隔符
wxxx    //主机名称
~       //当前所在目录,默认用户目录为~,会随着目录切换而变化,例如:[root@wxxx bin]# ,当前位置在bin目录下
#       //表示当前用户是超级用户,普通用户为$,例如:[aqgl@wxxx home]$" ,表示使用用户"aqgl"访问/home文件夹

3.命令的组成

示例:命令 参数名 参数值

二、常用命令

1.系统相关

1.1关闭系统

(1)立刻关机

shutdown -h now 或者 poweroff

(2)两分钟后关机

shutdown -h 2

1.2关闭重启

(1)立刻重启

shutdown -r now 或者 reboot

(2)两分钟后重启

shutdown -r 2

1.3iptables和防火墙

service iptables status //查看iptables服务的状态

service iptables start //开启iptables服务

service iptables stop //停止iptables服务

service iptables restart //重启iptables服务

chkconfig iptables off //关闭iptables服务的开机自启动

chkconfig iptables on //开启iptables服务的开机自启动

##centos7 防火墙操作

systemctl status firewalld.service //查看防火墙状态

systemctl stop firewalld.service //关闭运行的防火墙

systemctl disable firewalld.service //永久禁止防火墙服务

1.4uname

uanme -a //显示一些重要的系统信息,例如内核名称、主机名、内核版本号、处理器类型之类的信息

2.帮助命令

ps --help //查看 ps 命令的用法

man grep //查看命令说明书

3.目录相关命令

3.1切换目录(cd)

cd / //切换到根目录

cd /bin //切换到根目录下的bin目录

cd ../ //切换到上一级目录 或者使用命令:cd ..

cd ~ //切换到home目录

cd - //切换到上次访问的目录

cd xx //切换到本目录下的名为xx的文件目录

cd /xxx/xx/x //输入完整的路径,直接切换到目标目录

3.2查看目录(ls:list files)

ls //查看当前目录下的所有目录和文件

ls -a //查看当前目录下的所有目录和文件(包括隐藏的文件)

ls -l //列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)同ll命令

ls /bin //查看指定目录下的所有目录和文件

3.3 创建目录(mkdir)

mkdir data //在当前目录下创建data的目录

mkdir /home/data //在指定目录下创建data的目录

mkdir -p {ssl,config,logs} //在当前目录下创建ssl,config,logs目录

3.4 删除目录与文件(rm)

rm 文件名 //删除当前目录下的文件

rm -f 文件名 //删除当前目录的的文件(不询问)

rm -r 文件夹名 //递归删除当前目录下此名的目录

rm -rf 文件夹名 //递归删除当前目录下此名的目录(不询问)

rm -rf * //将当前目录下的所有目录和文件全部删除

rm -rf /* //将根目录下的所有文件全部删除【慎用!相当于格式化系统】

3.4 修改目录(mv)

mv 当前目录名 新目录名 //修改目录名,同样适用与文件操作

mv /home/data/pkg /opt //将/home/data目录下的pkg目录剪切到 /opt目录下面

mv -r /home/data/pkg /opt //递归剪切目录中所有文件和文件夹

3.5 拷贝目录(cp)

cp //home/data/pkg /opt //将/home/data目录下的pkg目录复制到 /opt目录下面

cp -r /home/data/pkg /opt //递归剪复制目录中所有文件和文件夹

3.6 搜索目录(find)

find / -name '*.iso' //查找根目录(/)下的所有以.iso结尾的文件或者目录

find /home -name '*.iso' //查找/home目录下的所有以.iso结尾的文件或者目录

rpm -qa |grep java //查看安装包软件

3.7 查看当前目录(pwd)

pwd //显示当前位置路径

3.8查看目录大小

df -h

du -m -s logs :看一个文件夹大小,-m表示MB,-k表示KB,logs是文件夹

4.文件相关命令

4.1新增文件(touch)

touch a.txt //在当前目录下创建名为a的txt文件(文件不存在),如果文件存在,将文件时间属性修改为当前系统时间

4.2编辑文件(vi、vim)

vi 文件名 //打开需要编辑的文件

--进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

命令模式

-刚进入文件就是命令模式,通过方向键控制光标位置,

-使用命令"dd"删除当前整行

-使用"yy"+"p"复制一行

-使用命令"/字段"进行查找

-按"i"在光标所在字符前开始插入

-按"a"在光标所在字符后开始插入

-按"o"在光标所在行的下面另起一新行插入

-按":"进入底行模式

插入模式

-此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""

-按"ESC"进入底行模式

底行模式

-退出编辑: :q

-强制退出: :q!

-保存并退出: :wq

补充

vim +10 a.txt //打开文件并跳到第10行

vim -R /etc/passwd //以只读模式打开文件

4.3查看文件

cat a.txt //查看文件最后一屏内容

less a.txt //PgUp向上翻页,PgDn向下翻页,"q"退出查看

more a.txt //显示百分比,回车查看下一行,空格查看下一页,"q"退出查看

tail -100 a.txt //查看文件的后100行,"Ctrl+C"退出查看

5.打包与解压

5.1说明

.zip、.rar //windows系统中压缩文件的扩展名

.tar //Linux中打包文件的扩展名

.gz //Linux中压缩文件的扩展名

.tar.gz //Linux中打包并压缩文件的扩展名

5.2tar打包文件( tape archive磁带归档)

tar -zcvf 打包压缩后的文件名 要打包的文件

说明:z:调用gzip压缩命令进行压缩; c:打包文件; v:显示运行过程; f:指定文件名;

例子:tar -zcvf a.tar file1 file2,... //多个文件压缩打包

5.3解压文件

tar -zxvf a.tar //解包至当前目录

tar -zxvf a.tar -C /usr //指定解压的位置

unzip test.zip //解压*.zip文件

unzip -l test.zip //查看*.zip文件的内容

6.其他命令

6.1find

find . -name "*.c" //将目前目录及其子目录下所有延伸档名是 c 的文件列出来

find . -type f //将目前目录其其下子目录中所有一般文件列出

find . -ctime -20 //将目前目录及其子目录下所有最近 20 天内更新过的文件列出

find /var/log -type f -mtime +7 -ok rm {} \; //查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们

find . -type f -perm 644 -exec ls -l {} \; //查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件

find / -type f -size 0 -exec ls -l {} \; //为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径

6.2grep

grep -i "the" demo_file //在文件中查找字符串(不区分大小写)

grep -A 3 -i "example" demo_text //输出成功匹配的行,以及该行之后的三行

grep -r "ramesh" * //在一个文件夹中递归查询包含指定字符串的文件

6.3date

date -s "2024-04-01 13:59:53" //设置系统时间

hwclock -w //将硬件时钟设置为当前的系统时间

date //查看

6.4ftp

ftp IP/hostname //访问ftp服务器

mls *.html - //显示远程主机上文件列表

6.5scp

scp /home/data.txt 192.168.3.101:/home/ //将本地home目录下的data文件发送到192.168.3.101服务器的home目录下

6.6远程主机

ssh IP //远程主机,需要输入用户名和密码

6.7配置域名映射

修改文件: vi /etc/hosts

在文件最后添加映射地址,示例如下:

192.168.1.101 node1

192.168.1.102 node2

192.168.1.103 node3

配置好以后保存退出,输入命令:ping node1 ,可见实际 ping 的是 192.168.1.101

6.8查看连接

ping IP //查看与此IP地址的连接情况
netstat -an //查看当前系统端口
netstat -an | grep 8080 //查看指定端口

ln -s log2013.log link2013 //l创建软链接,相当于创建快捷方式

6.10查看cpu物理个数

grep 'physical id' /proc/cpuinfo |sort -u | wc -l

cpu核心数: grep 'procesor' /proc/cpuinfo |sort -u | wc -l

线程数:grep 'processor' /proc/cpuinfo |sort -u | wc -l

6.11 \n 换行,\c 不换行, -e开启转义

原样输出用''

显示命令执行的结果`` ,例如:echo`date`

> :结果定向至文件

7.shell相关

7.1shell变量

name="wx"

使用变量:${name}

只读变量:readonly name

删除变量:unset name,删除后不可以再次使用,unset不可以删除只读变量

整数变量:declare -I my_integer =42

数组变量:my_array=(1 2 3 4 5) 或者关联数组 declare -A associative_array \n associative_array'name'="John" associative_array'age'=30

环境变量:echo $PATH

特殊变量:0表示脚本名称,1,2表示脚本参数,#表示传递给脚本的参数数量,$?表示上一个命令的退出状态

获取字符串长度:str="wx" echo ${#str}

提取字符串:

查找字符串:

7.2.Shell数组

数组名=(值1 值2 值3)

读取数组:${数组名下标} 读取所有元素:

获取数组长度:

获取数组单个元素的长度:

相关推荐
AOwhisky9 小时前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
imc.119 小时前
linux基础IO
linux·运维·服务器
躺不平的理查德9 小时前
让Ubuntu 的第二块网卡 ens37 永久固定为 192.168.30.111
运维·服务器
bitbrowser10 小时前
Facebook 验证反复回到原页面,应该从哪里排查
运维·服务器·facebook
Land032910 小时前
AI网页元素变化无法自动修复?自带元素自愈的自动化解决方案
运维·人工智能·ai·自动化·rpa
fengyehongWorld10 小时前
Jenkins 安装与简单配置
运维·jenkins
云智慧AIOps社区10 小时前
2026 国产化 ITSM 替代指南:横向测评 ServiceNow、轻帆云、Jira等五款主流IT服务管理平台
运维·人工智能·运维开发·it服务管理·itsm平台
Urbano11 小时前
针织卫衣全流程生产工序科普:自动化替代、产能优化与设备选型实战方案
运维·自动化
BelongPanda11 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
AC赳赳老秦11 小时前
招投标公开数据自动化采集实战:基于 OpenClaw 的定时抓取与业务关键词精准推送
运维·服务器·数据库·自动化·测试用例·deepseek·openclaw