堵赫然 发表于 2025-6-11 14:26:12

Linux系统命令大全

Linux,Linux Is Not UniX 的递归缩写,一般指GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个遵循POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议站,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
一、Linux目录结构

目录内容/binbin是Binary的缩写, 这个目录存放着最经常使用的命令,由系统、系统管理员和用户共享/boot这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件/devdev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的/etc大多数重要的系统配置文件都在/etc目录下,该目录包含的数据类似于Windows控制面板中的数据/home普通用户的家目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的/lib库文件,包括系统和用户所需要的各种程序的文件/lost+found每个分区在其上目录中都有一个lost+found。故障期间保存的文件在这里/medialinux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下/mnt外部文件系统的标准挂载点,例如CD-ROM(光驱)或数码相机/opt通常包含额外的和第三方软件。这是给主机额外安装的大型应用程序所放置的目录/proc包含有关系统资源信息的虚拟文件系统。这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件/root该目录为系统管理员,也称作超级权限者的用户家目录。注意根目录 / 和根用户的主目录 /root 之间的区别/sbins就是Super User的意思,这里存放的是系统管理员root使用的系统管理程序/tmp系统使用的临时空间,在重新启动时清理,所以不要使用它来保存任何工作!该目录对于所有用户都可以访问,不要把重要文件放置于该目录/usr这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录/var用户创建的所有可变文件和临时文件的存储空间,如日志文件(一般是/var/log)、邮件队列、打印假脱机程序区、从Internet下载的文件的临时存储空间,或在刻录CD之前保存它的映像。二、Linux基本命令操作

1.目录操作命令

cd:切换到另一个目录,可以是绝对路径,也可以是相对路径

[*]cd /home:进入 ‘/home’ 目录
[*]cd ..:返回上一级目录
[*]cd ../..:返回上两级目录
[*]cd /: 返回根目录
[*]cd -: 返回上次所在的目录
[*]cd~:切换到当前用户的主目录。
pwd:打印当前所在目录 (print working directory)
ls:列出目录内容

[*]ls -l: 列出的文件以长格式输出,一个文件显示一行(可简写为ll)
[*]ls -a: 显示以 “.”开头的文件,“.”开头的为隐藏文件,默认不显示
[*]ls -h:将文件大小以人类可读的格式显示(如K、M、G)。
[*]ls -d: 显示目录本身而不显示目录下的文件,默认ls 后面的参数如果是目录,则会显示目录下的文件,如:ls /root
[*]ls -lh: 长格式输出的文件字节数转换为K,M,G的形式方便人来阅读
[*]ls -t: 列出的文件按照修改时间的晚和早排序(最近修改的先显示)
[*]ls -tr: 列出的文件按照修改时间的早和晚排序(最近修改的后显示)
[*]ls -R: 列出当前目录下的所有文件,如果有目录遍历所有目录及其子目录下的文件
[*]ls -lSr:查看⽂件和⽬录列表(以⽂件⼤⼩升序查看)
[*]tree查看⽂件和⽬录的树形结构 (如果没有需要先安装 yum install tree)
[*]ls -al /proc/pid/exe:通过pid查询程序正在运行的路径
ls -l 长格式输出字段说明
以 -rw-r--r--. 1 root root 46478 8月13 2018 install.log 为例
第一字段第一位:
-rw-r--r--. 1 root root 46478 8月13 2018 install.log
第一位代表文件类型:
1.“-”:代表普通文件
2.“d”:代表目录
3.“l”:链接文件(符号链接;小写的L)或软链接
4.“c”:字符设备文件
5.“b”:块设备文件
6.“s”:套接字文件
7.“p”:命名管道文件
第一字段后9位:
-rw-r--r--. 1 root root 46478 8月13 2018 install.log
代表相关用户、组、其他用户的权限
第二字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
如果文件是普通文件:硬链接的个数(访问该文件的路径数)
dr-xr-xr-x. 25 root root 4096 8月 13 2018 /
如果文件是目录:目录下的一级子目录的个数
第三字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
文件的属主(文件所属的用户名)
第四字段:
-rw-r--r--. 1 root root 46478 8月13 2018 install.log
文件的属组(文件所属的用户组名)
第五字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
文件的字节数(大小)
第六字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
文件最近一次的修改日期
第七字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
文件名称
Linux绝对路径和相对路径
绝对路径:以根目录“/”开始的路径,表示从Linux目录结构的最顶点算起,特点是路径以“/”开头
相对路径:不以根目录“/”开始的路径,以当前目录作为起始点,特点是不以“/”开头
每个目录下都有”.”和”..”2个目录:
一个点“ . ”代表当前目录,写全了“ ./ ”
二个点“ .. ”代表上一级目录,写全了“ ../ ”
mkdir:创建目录,使用 -p 选项可以级联创建目录

[*]mkdir  创建目录
[*]mkdir dir1 dir2 同时创建两个目录
[*]mkdir -p /tmp/dir1/dir2 递归创建目录树
[*]mkdir -p /home/user/documents/newdir:递归创建目录
rm - :删除文件或目录
常用参数:

[*]-r:递归删除目录及其内容。
[*]-f:强制删除文件或目录,不提示确认。
[*]-i:删除前提示确认。
rmdir:删除空目录,必须是空目录,否则用rm -rf filename删除

[*]rm -f file1 删除’file1’⽂件


[*]rmdir dir1 删除’dir1’⽬录


[*]rm -rf dir1 删除’dir1’⽬录和其内容


[*]rm -rf dir1 dir2 同时删除两个⽬录及其内容
du:显示目录或文件的磁盘空间使用情况。
du 常用选项

[*]-h:以人类可读的格式显示,转换字节数为K、M、G的形式,便于阅读
[*]-s:只显示所有文件字节数总数,显示总计大小。
[*]-c:显示各目录或文件的总计。
通常用法:du -sh
 2.文件操作命令

which:
which 后面的命令字在磁盘的什么位置
例如:which cd、which ls、which date
touch:
 创建一个空文件,如果文件已经存在修改文件的修改日期
例如:/root目录下创建aaa、bbb、ccc三个空文件
          touch /root/aaa /root/bbb /root/ccc
cp:
1、cp 复制文件
例如:复制 /root/install.log 文件到 /tmp
cp /root/install.log /tmp
例如:复制 /root/install.log 文件到 /tmp并改名为 abc.log
cp /root/install.log /tmp/abc.log
2、cp 复制目录
例如:复制整个 /root 目录到 /tmp
cp -R /root /tmp
例如:复制整个 /root 目录到 /tmp并改名为 abc
cp -R /root /tmp/abc
-a 将文件的特性一起复制
-p 连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i 若目标文件已经存在时,在覆盖时会先询问操作的进行
-r 递归持续复制,用于目录的复制行为
-u 目标文件与源文件有差异时才会复制
-v:显示正在复制的文件,显示复制过程。
-cp dir/* . 复制某目录下的所有文件至当前目录
cp -a dir1 dir2 复制目录
cp -a /temp/dir1 . 复制一个目录至当前目录
 mv:
1、mv 移动或重命名文件或目录
例如:移动 /root/install.log.bak 文件到 /tmp
mv /root/install.log.bak /tmp
2、mv 给文件或目录改名
例如:给/tmp下的root目录改名为root1
mv /tmp/root /tmp/root1
-f force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i 若目标文件已经存在,就会询问是否覆盖
-u 若目标文件已经存在,且比目标文件新,才会更新
mv old_dir new_dir 重命名/移动⽬录
 rm:
1、rm 删除文件
例如:删除/root/install.log.bak
rm /root/install.log.bak
2、rm 删除目录 (root用户操作一定要小心)
例如:给/tmp下的root1目录
rm -rf /tmp/root1
常用选项:
-r 级联删除目录下的所有文件,递归删除,最常用于目录删除,它是一个非常危险的参数
-f 就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
file:
file 查看文件的类型
3.查看登录用户命名

who:当前用户登录的信息,显示当前登录系统的用户
w:当前用户登录的信息,以什么程序登录的
who am i:显示登陆时的用户名
whoami:显示当前用户名,显示当前用户的用户名
4.文件内容查看命令

cat:
查看文本文件内容,将文本文件内容全部打印到标准输出
-n:显示行号。
cat filename | head -n 3000 | tail -n +1000 显示1000行到3000行
cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000(即显示3000~3999行)
tac:
查看文本文件内容,倒序输出,从最后一行开始反向查看一个文件的内容,按照行号倒序打印文本文件的内容
more:
查看一个长文件的内容,分页显示文件内容,例如:more /root/install.log
默认显示进度百分比
空格往下翻页,b往上翻页,f往下翻页,q退出
less:
分页显示文件内容,例如:less /root/install.log
选项 -m 显示进度百分比
可以用“/”后跟关键字搜索文件内容
空格往下翻页,b往上翻页,f往下翻页,q退出
tail:
查看文件的最后几行内容,默认显示最后10行。查看文件尾部10行,例如:tail /root/install.log
选项-N (N为正整数)可以指定显示末尾N行内容
tail -f /log/msg 实时查看添加到⽂件中的内容
tail -n 2 file1 查看一个文件的最后两行
tail -n +1000 file1 从1000行开始显示,显示1000行以后的
-n:指定显示的行数。
-f:持续监视文件内容的变化,特别适合用于查看实时日志文件的更新。
head:
查看文件的前几行内容,默认显示前10行。查看文件头部10行,例如:head /root/install.log
选项-N (N为正整数)可以指定显示头部N行内容
head -n 2 file1 查看一个文件的前两行
-n:指定显示的行数。
 5.系统管理类命令

shutdown:
关机命令
shutdown -h now 立刻关机
shutdown -h +10 "10分钟后关机",每个登录用户收到“10分钟后关机”的消息,并于10分钟后关机
shutdown -h 10 10分钟后关机
shutdown -c 取消关机
shutdown -h 11:0011:00 关机
shutdown -f now 重启
shutdown -r 1010分钟后重启
shutdown -r 11:00   定时重启
reboot:重启系统
lscpu:查看系统cpu信息
6.日期时间管理类命令

date:
打印操作系统时钟,显示系统时间
date -s 20190101 按照指定日期重新设定日期和时间
clock:
打印硬件时钟(主板中依靠纽扣电池保存在芯片中的时钟)
clock -s 按照硬件时钟设置操作系统时钟
clock -w按照操作系统时钟设置硬件时钟
三、bash通配符介绍

*匹配任意长度的任意字符?匹配任意单个字符[]匹配指定字符范围内的任意单个字符,简化写法不区分大小写[[:upper:]]大写字母 [[:lower:]]小写字母[[:alpha:]]大小写所有字母[[:digit:]]匹配数字,可以写成[[:alnum:]]字母+数字[[:space:]]空格[[:punct:]]标点符号 特殊字符[^]匹配指定字符范围外的任意单个字符列出a开头的所有文件
ls a*
列出a开头一共3个字母的文件
ls a??
列出三个大写字母文件名的文件
ls [[:upper:]][[:upper:]][[:upper:]]
列出一个字母后跟三个数字的文件
ls
列出不以a字母开头后跟三个数字的文件
ls [^a]
拓展:Bash中的组合键
 
键或组合键 功能Ctrl+A将光标移动到命令行开头Ctrl+C结束正在运行的程序并返回提示符Ctrl+D 退出当前shell会话,相当于键入exit或logoutCtrl+E将光标移动到命令行末尾Ctrl+H Generate backspace characterCtrl+LClear this terminalCtrl+R查询命令历史记录Ctrl+Z暂停一个程序ArrowLeft and ArrowRight将光标在命令行上向左或向右移动一个位置,这样就可以在其他位置插入字符,而不仅仅是在开头和结尾ArrowUp and ArrowDown浏览历史。转到要重复的行,如果需要编辑详细信息,按Enter键以节省时间Shift+PageUp and Shift+PageDown浏览终端缓冲区(查看已“滚屏”的文本)Tab命令或文件名补全;当有多种选择时,系统会发出声音或视觉铃声,如果选择太多,则会询问你是否都想看Tab Tab显示文件或命令补全的可能性四、用户和权限管理

Linux是多用户操作系统,通过用户、用户组和权限实现用户认证和系统资源的分配
 1.用户组

(1)存放文件:/etc/group

文件中一个组一行记录
一个用户可以属于多个用户组
一个用户组可以包含多个用户
(2)组文件格式,共4个字段

第一字段:组名
第二字段:组密码位
第三字段:gid 组编号
第四字段:以本组作为附加组的用户名,用逗号分隔

新建用户组 groupadd grpname
例如:
groupadd g1
cat /etc/group
删除用户组 groupdel grpname
例如:
groupdel g1
cat /etc/group
查看系统所有组:
cut -d: -f1 /etc/group
修改用户的组:
usermod -g group_name user_name
将用户添加到组:
usermod -aG group_name user_name
修改用户 ss 的登录 Shell、主目录及用户组:
usermod -s /bin/ksh -d /home/codepig –g dev ss
查看 ss 用户所在的组:
groups ss
2.用户

(1)存放文件:/etc/passwd
文件中一个用户一行记录
(2)用户文件格式,共7个字段
第一字段:用户名
第二字段:用户密码位
第三字段:uid 用户编号
第四字段:gid 主组编号
第五字段:用户备注信息
第六字段:家目录位置
第七字段:用户使用shell解释器的位置,若为/sbin/nologin,用户不能登录
例如: linux1:x:1000:1000:linux1:/home/linux1:/bin/bash
创建用户 useradd ss
查看所用系统用户 cut -d: -f1 /etc/passwd
删除用户 userdel -r ss
 修改用户的组
usermod -g group_name user_name
 将用户添加到组
usermod -aG group_name user_name
 修改用户 ss 的登录 Shell、主目录及用户组
usermod -s /bin/ksh -d /home/codepig –g dev ss
查看 ss 用户所在的组
groups ss
 切换到另一个用户环境
su user_name
3.用户类型

(1)超级用户root 权限特别大
uid=0,gid=0生产环境建议不要使用
(2)普通用户
uid>=500一般权限系统管理,权限有限

(3)程序用户
1
页: [1]
查看完整版本: Linux系统命令大全