Linux常用命令大全

发布时间 2023-11-27 21:22:08作者: 20218556何润东

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

1、目录操作命令 cd、pwd、ls、mkdir、rmdir、du
cd 切换到另一个目录
pwd
打印当前所在目录 (print working directory)

ls
列出目录内容

ls 常用选项
ls -l 列出的文件以长格式输出,一个文件显示一行(可简写为ll)
ls -a 显示以 “.”开头的文件,“.”开头的为隐藏文件,默认不显示
ls -d 显示目录本身而不显示目录下的文件,默认ls 后面的参数如果是目录,则会显示目录下的文件,如:ls /root
ls -lh 长格式输出的文件字节数转换为K,M,G的形式方便人来阅读
ls -t 列出的文件按照修改时间的晚和早排序(最近修改的先显示)
ls -tr 列出的文件按照修改时间的早和晚排序(最近修改的后显示)
ls -R 列出当前目录下的所有文件,如果有目录遍历所有目录及其子目录下的文件
我的用法:ll -ah

mkdir
创建目录,使用 -p 选项可以级联创建目录

rmdir
删除空目录,必须是空目录,否则用rm -rf filename删除

du
统计目录下每个文件字节数

du 常用选项
-s 只显示所有文件字节数总数
-h 转换字节数为K、M、G的形式,便于阅读
我的用法:du -sh

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个目录:

一个点“ . ”代表当前目录,写全了“ ./ ”

二个点“ .. ”代表上一级目录,写全了“ ../ ”

2、文件操作命令 which、touch、cp、mv、rm、file
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

mv
1、mv 移动文件或目录

例如:移动 /root/install.log.bak 文件到 /tmp

mv /root/install.log.bak /tmp

2、mv 给文件或目录改名

例如:给/tmp下的root目录改名为root1

mv /tmp/root /tmp/root1

rm
1、rm 删除文件

例如:删除/root/install.log.bak

rm /root/install.log.bak

2、rm 删除目录 (root用户操作一定要小心)

例如:给/tmp下的root1目录

rm -rf /tmp/root1

常用选项:

-r 级联删除目录下的所有文件

-f 不提示(不用用户键入'y'或'n'进行确认)

file
file 查看文件的类型

3、查看登录用户命名 who、w
who 当前用户登录的信息
w 当前用户登录的信息,以什么程序登录的
4、文件内容查看命令 cat、tac、more、less、tail、head
cat
查看文本文件内容,将文本文件内容全部打印到标准输出

选项 -n 输出结果带行号

tac
查看文本文件内容,倒序输出

按照行号倒序打印文本文件的内容

more
分页显示文件内容,例如:more /root/install.log

默认显示进度百分比

空格往下翻页,b往上翻页,f往下翻页,q退出

less
分页显示文件内容,例如:less /root/install.log

选项 -m 显示进度百分比

可以用“/”后跟关键字搜索文件内容

空格往下翻页,b往上翻页,f往下翻页,q退出

tail
查看文件尾部10行,例如:tail /root/install.log

选项-N (N为正整数)可以指定显示末尾N行内容

head
查看文件头部10行,例如:head /root/install.log

选项-N (N为正整数)可以指定显示头部N行内容

5、系统管理类命令 shutdown、reboot、lscpu
shutdown
关机命令

shutdown -h now 立刻关机

shutdown -h +10 "10分钟后关机",每个登录用户收到“10分钟后关机”的消息,并于10分钟后关机

shutdown -c 取消关机

reboot
重启系统

lscpu
查看系统cpu信息

6、日期时间管理类命令 date、clock
date
打印操作系统时钟

date -s 20190101 按照指定日期重新设定日期和时间

clock
打印硬件时钟(主板中依靠纽扣电池保存在芯片中的时钟)

clock -s 按照硬件时钟设置操作系统时钟

clock -w按照操作系统时钟设置硬件时钟

三、bash通配符介绍
* 匹配任意长度的任意字符
? 匹配任意单个字符
[] 匹配指定字符范围内的任意单个字符,简化写法[a-z]不区分大小写
[[:upper:]] 大写字母
[[:lower:]] 小写字母
[[:alpha:]] 大小写所有字母
[[:digit:]] 匹配数字,可以写成[0-9]
[[:alnum:]] 字母+数字
[[:space:]] 空格
[[:punct:]] 标点符号 特殊字符
[^] 匹配指定字符范围外的任意单个字符
列出a开头的所有文件

ls a*

列出a开头一共3个字母的文件

ls a??

列出三个大写字母文件名的文件

ls [[:upper:]][[:upper:]][[:upper:]]

列出一个字母后跟三个数字的文件

ls [a-z][0-9][0-9][0-9]

列出不以a字母开头后跟三个数字的文件

ls [^a][0-9][0-9][0-9]

拓展:Bash中的组合键

键或组合键 功能
Ctrl+A 将光标移动到命令行开头
Ctrl+C 结束正在运行的程序并返回提示符
Ctrl+D 退出当前shell会话,相当于键入exit或logout
Ctrl+E 将光标移动到命令行末尾
Ctrl+H Generate backspace character
Ctrl+L Clear this terminal
Ctrl+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

2、用户
(1)存放文件:/etc/passwd
文件中一个用户一行记录

(2)用户文件格式,共7个字段
第一字段:用户名

第二字段:用户密码位

第三字段:uid 用户编号

第四字段:gid 主组编号

第五字段:用户备注信息

第六字段:家目录位置

第七字段:用户使用shell解释器的位置,若为/sbin/nologin,用户不能登录

例如: linux1:x:1000:1000:linux1:/home/linux1:/bin/bash

3、用户类型
(1)超级用户root 权限特别大
uid=0,gid=0 生产环境建议不要使用

 

(2)普通用户
uid>=500 一般权限系统管理,权限有限

(3)程序用户
1<=uid<500 仅仅使用系统服务资源,不能登录系统

(4)判定程序用户能否登录到操作系统
不能登录:shell为/sbin/nologin

可以登录:shell为/bin/bash

4、添加用户 useradd
useradd [-u UID] [-g GID] [-d HOME] [-s] [-c] 用户名

-u 自定义UID用户编号,不指定系统自动编号

-g 自定义主组GID组编号或组名,前提是这个组已经存在,若不指定主组系统会创建一个和用户名一样的组作为用户主组

-G 自定义附加组GID组编号或组名,用逗号隔开,前提是这些组已经存在

-d 指定家目录,若不指定默认为/home/用户名

-s 自定义shell,若不指定默认为/bin/bash

-c 用户备注信息,若不指定默认为空

示例:创建wang用户主组为g1,附加组为zhang和root

useradd -u 600 -g g1 -G zhang,root wang

cat /etc/passwd

 

cat /etc/group

5、查看用户信息 id 用户名
(1)查看当前登录用户信息:id
(2)查看指定用户信息:id zhang、id wang
6、修改用户 usermod
usermod [-u UID] [-g GID] [-d HOME] [-s] [-l] 用户名

-l 选项修改用户名

示例:把用户名wang改为wang1, 再把wang1改成wang

 

7、删除用户 userdel [-r] 用户名
-r选项,在删除用户的同时删除其家目录和相关系统邮件

8、切换用户 su - 用户名
可以添加选项 “-”,会执行要切换用户的相关环境变量

9、给用户设置登录密码 passwd [用户名]
修改当前用户登录密码 passwd (如果普通用户设置密码需要较高密码复杂度)

修改指定用户登录密码 passwd zhang (root用户操作)

10、密码文件
/etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了/etc/shadow文件中。

/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。

存放位置 /etc/shadow 每一行对应一个用户的密码信息,共9字段

字段说明:

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

11、权限
(1)权限类别
权限分为三种,分别是读、写、执行

r (read)、w (write) 、x (execute)

(2)权限作用对象:文件 (Linux一切皆文件)
(3)显示文件的权限:ls -l 或 ll (redhat系列发行版linux,默认为ls -l创建了别名ll)
(4)用户的不拥有某位权限,则使用 “ - ” 占位
例如:r-x 表示读和执行的权限;r--表示只读权限;rw-表示读写权限

(5)Linux使用UGO权限模型进行权限控制
U 代表文件所属用户

G 代表文件所属用户组

O 代表所属用户和所属用户组的用户之外的其他用户

(6)ls -l 文件属性信息第一字段后9位代表权限
9位权限3位1组可以分成3组,分别对应文件的UGO

例如:-rw-rw-r--. 1 wang g1 0 11月 20 14:35 wangfile

文件的所属用户是wang(U),其权限是rw-

文件的所属用户组是g1(G),其权限是rw-

文件的属主wang和g1组的用户以外的其他用户(O),其权限是r--

(7)规定 4 代表 r ;2 代表 w ;1 代表 x;0 代表 -
这样不同的权限组合可以用1个8进制0到7的数字来表示

文件对应UGO的权限可以用3个数字来表示

例如:-rw-rw-r--. 1 wang g1 0 11月 20 14:35 wangfile

其权限为: 6 6 4

(8)修改权限使用chmod命令字
提供作用相同的三种方式

1.赋值法:

chmod u=rwx,g=rw,o= filename

chmod a=rwx filename

2.加减法:

chmod u+r,u-x,g+w,g-x,o+r filename

chmod a+x filename

3.权重法:

chmod 755 filename

chmod 664 filename

chmod 777 filename

chmod 000 filename

(9)可以使用-R选项级联修改目录下的所有文件的权限
例如:修改 /u01 下所有目录及文件的权限为750

chmod -R 750 /u01

(10)修改文件的属主和属组使用chown命令字
只能root用户来做

chown [-R] UserName[{:|.}GroupName] FILENAME

选项-R级联修改目录下的所有文件的属主和属组

例如:修改 /root/install.log 的属主为 zhang ,属组为 g1

chown zhang:g1 /root/install.log

例如:仅修改 /root/install.log 的属主为root,属组不变
明。