linux基础命令
本文最后更新于 2025-11-10,文章内容可能已经过时。
混合命令
ctrl + alt 退出虚拟机
$结尾为普通用户 #结尾为管理员用户
查看版本号 lsb_release -a
关闭虚拟机 poweroff
重启虚拟机 reboot
/dev目录主要存放设备文件
命令的执行依赖于解释器(默认解释器/bin/bash)
用户--》解释器----》内核---》硬件
绿色可以执行的程序
通配符*
ls /root/ab* 后边可以是 ls /root/abcdjjdf 可以匹配无数位
ls /root/ab? 后边只能是 ls /root/abe 只能匹配一位
ls /root/ab[0-9] 后边匹配一个0-9之间的数字
ls /root/ab{18,39,89} 后边匹配一个三个数其中一个
硬盘接口 ls /dev/sda abc代表第几块
识别当前硬盘的名字 lsblk
光盘镜像文件 ----》 虚拟光驱设备(/dev/cdrom ---> sr0)-->挂载点(目录)(只读不能干别的)
mkdir /dvd
mount /dev/cdrom /dvd 挂载 (临时挂载)
umount /dvd 卸载
一个设备可以有多个挂载点目录
挂载点目录最好自己创建
~用户的家目录:专门储存用户个性化信息的目录
/root是管理员用户的家目录
/home/用户 是普通用户的家目录
浅蓝色:表示软链接(symbolic link),它是指向另一个文件的指针。
白色:代表普通文件或硬链接。普通文件可以包含文本、数据或程序信息。
蓝色:表示目录,即包含其他文件和目录的文件夹。
红色:通常用于表示压缩文件或归档文件。如果一个文件被删除,但仍存在指向该文件的软链接,则该软链接也会显示为红色。
黄色:表示字符设备文件,如键盘和鼠标等设备文件。
绿色:代表可执行文件,即用户或系统可以执行的程序。du查看目录
du -sh 目录 #查看目录占用硬件的空间ls列出目录下的内容
-a展示所有隐藏文件 -l列表排列,展示更多信息如时间、权限 -h展示文件大小
-d(只展示目录本身不展示目录下的文件) -R(递归显示文件内容) -A(不显示隐藏文件目录 ./ ../)cd切换目录
/ 根目录是linux系统的起点
绝对路径是以根目录为起点 相对路径是以当前目录为起点
cd cd .. 切换上一级目录 cd ~ 切换到HOME路径pwd当前工作目录
pwd 显示当前所在目录mkdir创建目录
mkdir 创建新的目录 -p 如果创建目录的父级目录不存在,会自动创建父级目录touch创建文件
touch 文件名 touch intheima.txtcp复制
cp -r 参数1 参数2 将1复制到2的位置上 复制文件和文件夹
cp -r /abc/111 /opt/666 ls /opt/666 111 如果目录中有666这个文件,则复制文件过去到该文件下
cp -r /abc/111 /opt/666 ls /opt 666 如果目录中没有666这个文件,则复制文件过去并改名为666
cp -r /abc/111 /opt/111 ls /opt/111 111 如果目录中有111这个文件,则复制文件过去到该文件下mv命令
mv 参数1 参数2 将1移动到2 移动文件和文件夹 如果文件或文件夹不存在则进行改名rm命令
rm 删除文件和文件夹 -r删除文件夹时使用 -f强制删除无提示
rm加通配符 如:rm -r test* 删除当前目录下所有以test开头的文件或文件夹
rm -rf /abc/111/* 删除111文件夹下所有文件及文件夹
rm -rf /abc/111 删除111文件夹
rm删除以最后路径为主,最后出现的是什么就删除什么find查找文件
find / -name ".*" #查找隐藏数据
find / -size +10k -10M (大于10k,小于10M) 按文件大小查找文件
find / -type f 按类型查找
find / -mtime 90 (查找90天之前创建的文件)
-type 类型 (f文本、d目录、l快捷方式)
-name 文档名称
-size 文件大小
-user 文件所属用户组
-mtime 数据的修改时间
将查到的文件进行处理
find [范围] [条件] -exec 处理命令 {} \;
-exec额外操作的开始
{}前边find查找的结果
\; 额外操作的结束
find / -size +10 -exec cp {} /opt \; 复制过去的目录必须存在which查找命令
which 查找命令放在哪个文件夹了 which cd which pwdgrep过滤文件内容
grep 过滤文件内容 -n 显示行号 -i 忽略大小写进行过滤 -v取反不包含
grep -n itcast itcast.txt
grep -v ^# /opt/abc.txt | grep -v ^$ 过滤有效信息wc统计单词行数、单词数、字符数量
wc -c(字节) -m(字符) -l(行数) -w(单词) itcast.txt|管道符
gecho重定向符
重定向符 >(覆盖) >>(追加) 如下示例
echo "itheima" > itheima.txt 覆盖
echo "itheima" >> itheima.txt 追加
-e 将\t输出为tab键 -n 输出内容后不换行 例如:echo -n hello ; echo worldcat查看文件内容
cat -n(加行数) 查看文件内容 cat -n itheima.txttail查看文件尾部内容
tail 查看文件尾部内容,追踪文件的持续更改,语法如下:
tail -num(数字) -f 文件名 num不写默认 默认查看尾部后10行
tail error.log 查看后10行 tail -5 error.log查看后5行 tail -f error.log 持续查看文件更改head查看文件前几行
head -2 abc.txt 查看文件前两行 默认十行less滚动查看文件
less 文件 鼠标滚动查看 q退出 more翻页查看
more 文件 空格翻页 q退出vim编辑器
注:vim只能创建文件,不能创建目录
快捷键:
光标下r数字字母替换
命令模式 dd删除光标所在行 nyy复制当前和下边的n行 ndd删除当前和下边的n行 n是数字 p粘贴到光标之前
gg回到开头 G来到结尾 d$删除当前行光标之后的内容 d^删除光标之前当前行的内容 u撤销修改 crtl_r 取消上一次的撤销 ZZ保存并退出
crtl+n补全命令
:set nu(number) 显示行号 set nonu 取消行号 :%d删除所有内容 : /单词 回车 然后按n跳转要查找的单词所在处
将一个文件的内容上传到vim中 :r /opt/1.txt
字符串替换 :1,10s/#/new/ 将文本内前十行中的#替换为new :%s/root/new/ 将文本内所有root替换为new
同时编辑多个文件(一般用来做对比) vindiff /opt/111.txt /opt/222.txt ctrl + w 切换控制页面 :wqa 都保存并退出
vim -o /opt/111.txt /opt/222.txt 同时打开两个文件
永久性设置 vim ~/.vimrc 默认没有需自己创建
编辑模式
底线命令模式: wq保存并退出 :q仅退出 :q!强制退出 :w仅保存
ctrl + x 退出nona编辑器
当无法输入中文在xshell8属性,终端选择utf-8点击确认
使用vim编辑文件中出现故障,再次打开出现交换文件,把交换文件删除即可 为普通用户配置sudo认证
切换到root用户
vim /etc/sudoers
在文件最后添加
用户名 ALL=(ALL) NOPASSWD:ALL (使用sudo命令,无需输入密码)useradd创建用户
useradd 用户名 -m(创建home)
passwd 用户名 设置密码
切换用户: su 用户名 -(加载环境变量) 输入密码后即可切换到该用户
删除用户: userdel -r 用户名 加上-r可以删除/home/路径下的用户文件夹,否则不会自动删除该文件夹
查看用户名: cat /etc/passwd
id 用户名 查看用户id(如果不指定默认查看自身)chmod修改权限
通过ls -l 查看文件权限
chmod u=rwx,g=rx,o=x hell.txt 将文件权限修改为: rwxr-x--x
其中u表示user所属用户权限,g表示group组权限,o表示other其他用户权限
chmod u=rwx,g=rx,o=x test将文件夹test以及文件夹内全部内容权限设置为:rwx-rx--x
除此之外,还有快捷写法: chmod 751 hello.txt
r 4 w 2 x 1
r代表读权限(如:ls) w表示写权限(如:创建、删除、改名) x表示执行权限(如cd)
举例 drwxr-xr-x
d:文件夹 rwx:文件所属用户权限 r-x:所属用户组权限 r-x:其他用户权限chown修改用户组
普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行
chown root hello.txt 将hello.txt所属用户修改root
chown :root hello.txt 将hello.txt所属用户组修改为root
chown root:itheima hello.txt 将hello.txt所属用户修改为root,所属用户组修改为itheima
chown -R root test 将文件夹test的所属用户修改为root并对文件夹内全部内容进行修改,也就是递归修改文件所属用户history历史命令
history 查看历史输入过的命令 默认保留1000条
history -c #只能清除本次开机敲过的命令
history -w #将历史命令写入到硬盘中,彻底清除命令
! 编号 #重新执行
! cat #重新执行历史命令中以cat开头的最近的一条命令yum 下载程序
yum -y install 文件名 -y无需手动安装remove删除程序
yum remove jdk 删除程序jdksearch搜索程序
yum search jdk 搜索文件jdkln -s 软链接
ln -s 参数1 参数2 -s 创建软链接 参数1被链接的文件或文件夹 参数2要链接取得目的地
ln -s /etc/nginx.conf ~/nginx.conf
mkdir /etc/nginx.conf/111.txt
ls ~/nginx.conf
111.txt
删除 ~/nginx.conf 即软链接被删除
ln -s ~/nginx.conf 查看软连接详情
缺点,源文件消失,软连接失效ln 硬链接
ln /路径/文件名 /路径/链接名
优点:源文件消失,快捷方式依旧有效
缺点:只能链接文件,不能链接目录date查看时间
%Y 年 %m 月 %d 日 %H 时 %M 分 %S 秒
date 查看时间
date +%Y-%m-%d #查看当前系统年月日
date -s "2025-10-10 20:20:20" #修改时间
" +%Y-%m-%d %H-%M-%S " #年-月-日 时-分-秒
+%F %T #年-月-日 时-分-秒查看ip
ip a
ifconfig ens33
127.0.0.1这个ip地址用于指代本机,也即回环地址
0.0.0.0 所有ip
ip映射
vim /etc/hots
192.168.88.240 ubuntuwget非交互式文件下载
wget url(路径)netstat查看指定端口的占用情况
安装netstat
dnf -y install net-tools
netstat -anp | grep 8080ps查看进程
查看当前系统中的进程 ps -elf
查看进程状态 ps aux
ps -elf | grep tailkill关闭进程
kill -9 进程ID查看资源
iostat 查看cpu、磁盘的相关信息
iostat num1 num2 刷新间隔 刷新几次
df -h 查看硬盘使用情况
top 查看cpu内存使用情况
free -h 查看内存及内存使用情况,以及交换分区
uptime 查看服务器启动及15分钟内cpu平均负载
查看服务器版本 lsb_release -a
列出cpu信息 lscpu
内存详细信息 cat /proc/meminfo配置环境变量
临时设置
export 变量名=变量值
永久生效
针对当前用户 vim ~/.bashrc
针对所有用户 vim /etc/profileenv查看当前系统中记录的环境变量
envlrzsz上传下载
下安装工具包
apt -y install lrzsz
rz 上传
sz + 文件名 下载tar加解压
tar常见的压缩格式:
gzip -----------.gz
bzip -----------.bz2
xz -----------.xz
unzip -----------.zip
-z 指定压缩解压格式 -c 压缩 -x释放 -f指定tar包名字 -t查看tar包内容 -C指定路径
加压 tar -zcf /路径/压缩名称.tar.gz -C /路径/要压缩的文件
解压使用tar -xf /路径/压缩包 -C /指定路径/要放在的位置 不选z的原因是根据压缩包,自动选择解压工具
都不选v的原因是都不查看压缩进度
加压时会带着路径一块压缩,加个-C可以避免路径被压缩进去
压缩并不会删除被压缩的文件zip加解压
zip -r /opt/111.zip /opt/shell #压缩指定文件
unzip -l /opt/111.zip #查看压缩包里的内容
unzip /opt/111.zip -d /dev/null #解压到指定目录hostname查看主机名
查看主机名 hostaname
修改主机名
临时修改主机名 hostname 主机名
永久修改主机名 hostnamectl set-hostname 新的主机名
echo 新的主机名 > /etc/hostnamealias起别名
别名的定义:简化复杂的命令
alias ll='ls -l'
alias ls='ls --color=auto'
以上都为定义临时别名
将以上别名写到~/.bashrc则永久生效
source ~/.bashrc
在哪个用户下定义的别名就只能在哪个用户下使用这个别名
vim /etc/profile (centos在/etc/bashrc下写)
source /etc/profile
定义全局的别名,哪个用户都可以使用
alias查看所有别名
unalias ll 删除别名bc计算器
echo 80*2 | bc定时任务cron
systemctl status cron 查看定时器状态
/var/spool/corn/crontabs 此目录为配置文件目录 该目录下有用户定时器
cat /etc/crontab 查看结构
crontab -e 编辑当前用户定时器
crontab -l 查看当前用户配置定时任务
在cui用户下编辑定时器
crontab -e === vim /var/prool/cron/contabs
crontab -i 删除定时任务 crontab -r 删除定时任务,清除文件/var/prool/cron/crontabs/cui
crontab -u cui -l
------------------------------------------------------------------------------------------------------------
*代表每的意思 - 时间范围分隔符 ,表示分割时段 /n 每隔n的时间单位
* * * * *
分 时 日 月 周
0 * * * * #每小时执行,每小时的整点执行
01 2 * * 4 #每周执行,每周四的凌晨2点1分执行
01 2 3 * * #每月执行,每月的3号的凌晨2点1分执行
01 2 3 4 * #每年执行,每年的4月份3号的凌晨2点1分执行
01 2 * * 3,5 #每周3和周5的两点一分执行
* 13-14 * * 6,0 #每周六、周日的下午1点和2点的每一分钟都执行
0 9-18 * * 1-5 #周一到周五的每天早上9点一直到下午6点的每一个整点
*/10 * * * * # 每隔十分钟执行一次任务
0 7-11/2 * * * #每天早上7点到上午11点每两个小时运行cmd命令
31 10/2 * * * #在每天的10:31开始,每隔两小时重复一次
如果没法整除,定时任务则没意义,可以自定制脚本控制频率
定时任务最小单位是分钟,想完成秒级任务,只能通过其他方式
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员fancy
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果