Linux常用命令大全
目录
一、Linux 目录结构
目录 | 作用 |
---|---|
/root | 管理员用户root的宿主(家)目录 |
/home | 普通用户的宿主(家)目录 |
/boot | 存放系统内核、启动文件 |
/dev | 存放设备文件(硬盘、光盘等) |
/etc | 存放配置文件 |
/bin | 存放所有用户可执行的命令文件 |
/sbin | 存放管理员可执行的命令文件 |
/usr | 存放系统用户工具和应用程序 |
/var | 存放可变化的文件、日志等文件 |
/lib | 存放系统程序的的动态链接共享库文件(依赖等) |
/media | 存放可卸载的的媒介挂载点(u盘、光驱等) |
/proc | 存放映射系统信息的文件 |
/mnt | 存放临时挂载储存设备 |
/opt | 第三方应用程序安装的目录 |
/tmp | 存放系统临时文件 |
二、目录操作命令
cd、pwd、ls、mkdir、rmdir、du
cd | 切换到另一个目录 |
pwd | 打印当前所在目录 |
ls | 列出目录内容 常用选项:
|
mkdir | 创建目录,使用 -p 选项可以级联创建目录 |
rmdir | 删除空目录,必须是空目录,否则用rm -rf filename删除 |
du | 统计目录下每个文件字节数 常用选项
|
具体说明:
以 drwxr-xr-x. 2 root root 31 2月 21 2024 conf 为例
- 第一部分
代表文件类型:
“-” | 普通文件 |
“d” | 目录 |
“l” | 链接文件(符号链接;小写的L)或软链接 |
“c” | 字符设备文件 |
“b” | 块设备文件 |
“s” | 套接字文件 |
“p” | 命名管道文件 |
- 第二部分
后9位每3位为一组代表相关用户、组、其他用户的读,写,执行权限
- 第三部分
如果文件是普通文件:硬链接的个数(访问该文件的路径数)
如果文件是目录:目录下的一级子目录的个数
- 第四部分
文件的属主(文件所属的用户名)
- 第五部分
文件的属组(文件所属的用户组名)
- 第六部分
文件的字节数(大小)
- 第七部分
文件最近一次的修改日期
- 第八部分
文件名称
三、Linux绝对路径和相对路径
绝对路径:以根目录“/”开始的路径,表示从Linux目录结构的最顶点算起,特点是路径以“/”开头
相对路径:不以根目录“/”开始的路径,以当前目录作为起始点,特点是不以“/”开头
每个目录下都有”.”和”..”2个目录:
一个点“ . ”代表当前目录,写全了“ ./ ”
二个点“ .. ”代表上一级目录,写全了“ ../ ”
四、文件操作命令
which、touch、cp、mv、rm、file
which | 命令字在磁盘的什么位置 例如: |
touch | 创建一个空文件,如果文件已经存在修改文件的修改日期 例如: touch /root/aaa /root/bbb /root/ccc |
cp |
例如:复制 /root/install.log 文件到 /tmp cp /root/install.log /tmp 例如:复制 /root/install.log 文件到 /tmp并改名为 abc.log cp /root/install.log /tmp/abc.log
例如:复制整个 /root 目录到 /tmp cp -R /root /tmp 例如:复制整个 /root 目录到 /tmp并改名为 abc cp -R /root /tmp/abc |
mv |
例如:移动 /root/install.log.bak 文件到 /tmp mv /root/install.log.bak /tmp
例如:给/tmp下的root目录改名为root1 mv /tmp/root /tmp/root1 |
rm |
例如:删除/root/install.log.bak rm /root/install.log.bak
例如:给/tmp下的root1目录 rm -rf /tmp/root1 常用选项: -r 级联删除目录下的所有文件 -f 不提示(不用用户键入'y'或'n'进行确认) |
file | 查看文件的类型 |
五、查看登录用户命名
who、w
who | 当前用户登录的信息 |
w | 当前用户登录的信息,以什么程序登录的 |
六、文件内容【查看】命令
cat、tac、more、less、tail、head
cat | 查看文本文件内容,将文本文件内容全部打印到标准输出 选项 -n 输出结果带行号 |
tac | 查看文本文件内容,倒序输出 倒序打印文本文件的内容 |
more | 分页显示文件内容,默认显示进度百分比 空格往下翻页,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行内容 |
七、系统管理类命令
shutdown、reboot、lscpu
shutdown | 关机命令
|
reboot | 重启系统 |
lscpu | 查看系统cpu信息 |
八、日期时间管理类命令
date、clock
date | 打印操作系统时钟 date -s 20190101 按照指定日期重新设定日期和时间 |
clock | 打印硬件时钟(主板中依靠纽扣电池保存在芯片中的时钟) clock -s 按照硬件时钟设置操作系统时钟 clock -w按照操作系统时钟设置硬件时钟 |
九、bash通配符介绍
* | 匹配任意长度的任意字符 |
? | 匹配任意单个字符 |
[] | 匹配指定字符范围内的任意单个字符,简化写法[a-z]不区分大小写 |
[[:upper:]] | 大写字母 |
[[:lower:]] | 小写字母 |
[[:alpha:]] | 大小写所有字母 |
[[:digit:]] | 匹配数字,可以写成[0-9] |
[[:alnum:]] | 字母+数字 |
[[:space:]] | 空格 |
[[:punct:]] | 标点符号 特殊字符 |
[^] | 匹配指定字符范围外的任意单个字符 |
1、列出a开头的所有文件
ls a*
2、列出a开头一共3个字母的文件
ls a??
3、列出三个大写字母文件名的文件
ls [[:upper:]][[:upper:]][[:upper:]]
4、列出一个字母后跟三个数字的文件
ls [a-z][0-9][0-9][0-9]
5、列出不以a字母开头后跟三个数字的文件
ls [^a][0-9][0-9][0-9]
拓展:Bash中的组合键
键或组合键 | 功能 |
Ctrl+A | 将光标移动到命令行开头 |
Ctrl+C | 结束正在运行的程序并返回提示符 |
Ctrl+D | 退出当前shell会话,相当于键入exit或logout |
Ctrl+E | 将光标移动到命令行末尾 |
Ctrl+H | 向前删除 |
Ctrl+L | 清空当前屏 |
Ctrl+R | 查询命令历史记录 |
Ctrl+Z | 暂停一个程序 |
十、用户和权限管理
Linux是多用户操作系统,通过用户、用户组和权限实现用户认证和系统资源的分配
1、用户组
(1)存放文件:/etc/group
文件中一个组一行记录
一个用户可以属于多个用户组
一个用户组可以包含多个用户
(2)组文件格式,共4个字段
第一字段:组名
第二字段:组密码位
第三字段:gid 组编号
第四字段:以本组作为附加组的用户名,用逗号分隔
- 新建用户组 groupadd 组名
例如:
groupadd g1
cat /etc/group
- 删除用户组 groupdel 组名
例如:
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字段
字段说明:
root:$6$ktBL/HO4k8qN9yzK$aOokjpdjFY8hm53P90OPXddo2rtbZ3q5FLy/cXKljv.6OiG0anhIXKKCwafp83mni.oc/bHO9iXdD1JMx3lDf/::0:99999:7:::
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
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,属组不变
chown root: /root/install.log
(11)权限对于目录和非目录文件有所区别
创建目录默认权限为755,普通文件为644
目录至少要有 r 和 x 权限才能正常进入目录
十一、压缩与解压缩命令
1、压缩与解压缩命令 zip unzip
(1)zip 压缩文件或目录
-r 压缩目录
-y 把软链接作为文件压缩,但不压缩软链接所指向的文件
示例:压缩/etc下的所有文件到/tmp下的etc.zip文件中
zip -ry /tmp/etc.zip /etc
(2)unzip解压缩zip压缩的文件
-d 指定解压缩的路径
示例:解压缩/tmp下etc.zip到/root
unzip -d /root /tmp/etc.zip
2、压缩与解压缩命令 gzip gunzip
(1)gzip 压缩文件或目录
-N N为数字1到9,为压缩率,9最高,默认6
-r 压缩目录
默认压缩之后不会保留源文件,源文件变为*.gz格式
示例:压缩/root/install.log文件
gzip /root/install.log
ls /root/install.log*
(2)gunzip解压缩gzip压缩的文件
示例:解压缩/root下install.log.gz
gunzip /root /install.log.gz
3、压缩与解压缩命令 bzip2 bunzip2
(1)bzip2 压缩文件(压缩率比gzip高)
-N N为数字1到9,为压缩率,9最高,默认6
默认压缩之后不会保留源文件,源文件变为*.bz2格式
示例:压缩/root/install.log文件
bzip2 /root/install.log
ls /root/install.log*
(2)bunzip2解压缩bzip2压缩的文件
示例:解压缩/root下install.log.bz2
bunzip2 /root /install.log.bz2
4、归档命令 tar
tar将多个离散文件或目录进行打包为一个普通文件
1.归档
tar 选项 归档文件名 源文件名或目录
2.释放归档
tar 选项 归档文件名 -C 目标目录
3.常用选项
-f 如果使用tar命令,必须要用-f选项,而且要放到最后面
-c 创建新归档
-x 释放归档 extract
-z 使用gzip的方式进行压缩或解压缩
-j 使用bzip2的方式进行压缩或解压缩
-v 归档进度可视化 (verbose)
示例1:将/etc整个目录归档为/tmp/etc.tar文件
tar -cvf /tmp/etc.tar /etc
示例2:将/etc整个目录归档为/tmp/etc.tar.gz文件,用gzip压缩文件
tar -zcvf /tmp/etc.tar.gz /etc
示例3:将/etc整个目录归档为/tmp/etc.tar.bz2文件,用bzip2压缩文件
tar -jcvf /tmp/etc.tar.bz2 /etc
示例4:将归档文件/tmp/etc.tar还原到/root目录下
tar -xvf /tmp/etc.tar -C /root
示例5:将归档文件/tmp/etc.tar.gz还原到/root目录下
tar -zxvf /tmp/etc.tar.gz -C /root
示例6:将归档文件/tmp/etc.tar.bz2还原到/root目录下
tar -jxvf /tmp/etc.tar.bz2 -C /root
十二、链接、网络连接命令
1、链接命令 ln
ln命令用来给文件或目录创建链接文件,类似于windows系统的快捷方式
常用选项
-s 创建软链接
-v 可视化
示例:在/root下为目录/var创建软链接link_var
ln -sv /var /root/link_var
2、测试网络连通性命令 ping
ping命令可以用来测试网络的连通性
常用选项
-c 次数
-w 等待秒数,优先级高于-c
示例:测试百度网址的连通性,发生4个ping包
ping -c 4 www.baidu.com
示例:测试百度网址的连通性,发生4个ping包,2秒后停止ping
ping -c 4 -w 2 www.baidu.com
十三、vi 编辑器 (最常用)
(1)vi三种模式
1.一般模式(normal mode),默认即为一般模式。
2.插入模式(insert mode)。
3.末行模式(last line mode)。
(2)三种模式的切换:
1.一般模式-->插入模式
i:当前光标处输入内容。
I:在当前光标所在行的行首。
a:在当前光标所在处的后面。
A: 在当前光标所在行的行尾输入。
o:在光标所在行的下方新增一行空白行。
O:在光标所在行的上方新增一行空白行。
2.插入模式-->一般模式
使用:ESC键
3.一般模式-->末行模式
使用:“:”(英文状态下)
4.末行模式-->一般模式
使用:ESC键
(3)退出编辑器
末行模式下,输入下述内容可退出:
1. q!:强制退出,不保存并退出。
2. wq:保存修改并退出。
3. x:保存并退出。
(4)vi操作流程
1. 新建或编辑文件:vi filename
2. i或insert键,即可进入插入模式。
3. 编辑内容。
4. ESC键,退出到一般模式。
5. 键入英文“:”进入末行模式,按wq(保存并修改)后回车。
6. 查看编辑内容是否正确:cat filename
(5)拓展
在一般模式下:
d 删除。dd 删除一行
y 复制。yy 复制一行
p 粘贴
x 清除
g 行跳转;gg 行跳转:如10gg,表示跳转到第10行。
/或? 查找
n/N 上下翻
v 可视化模式。可视化模式中,可移动光标选择文本。键入y复制选中文本,键入d删除选中文本,键入v回到一般模式。
u 撤销之前的操作
十四、安装应用程序 rpm
redhat、centos、oracle linux使用rpm命令字安装制作为rpm格式的应用程序
(1)rpm命令安装rpm软件包:rpm -i [选项] 包名
rpm命令安装软件包时常用选项(与选项 -i 结合使用)
-v 显示安装过程中的详细信息
-h 以 # 显示安装进度
-U 升级包(如没安装就安装)
-F 升级包(没安装放弃安装)
--test 测试能否被安装 try run
--nodeps 忽略包之间的依赖关系
常用安装命令:rpm -ivh 包名1 包名2 ......
示例:rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm
(2)查询RPM包 :rpm -q[子选项] 包名关键字
常用子选项
a 已安装的所有软件包
i 查看指定软件的详细信息
l 查询软件包的安装目录
f 查询文件或目录属于哪个程序包安装生成的
p 尚未安装的包做查询操作
示例1:查看所有已安装rpm包
rpm -qa
示例2:查看所有已安装rpm包中有没有mysql
rpm -qa | grep mysql
示例3:查看已安装的mysql-libs-5.1.73-7.el6.x86_64包的信息
rpm -qi mysql-libs-5.1.73-7.el6.x86_64
示例4:查看mysql-libs-5.1.73-7.el6.x86_64包中文件安装位置
rpm -ql mysql-libs-5.1.73-7.el6.x86_64
示例5:查看/bin/ls和根目录“/”是由哪些包安装的
rpm -qf /bin/ls
rpm -qf /
示例6:查看安装光盘中mysql-server-5.1.73-7.el6.x86_64.rpm的信息
rpm -qip /media/CentOS_6.8_Final/Packages/mysql-server-5.1.73-7.el6.x86_64.rpm
示例7:查看安装光盘中mysql-5.1.73-7.el6.x86_64.rpm的内容
rpm -qlp /media/CentOS_6.8_Final/Packages/mysql-5.1.73-7.el6.x86_64.rpm
(3)删除RPM包:rpm -e 包名
示例:删除刚刚安装的zsh包
首先需要获得准确完整的包名:rpm -qa | grep zsh
然后删除该包:rpm -e zsh-4.3.11-4.el6.centos.2.x86_64
再次查询确认:rpm -qa | grep zsh
(4)RPM命令安装软件包存在的问题:rpm包和包存在一定的依赖关系
可能的情况:
安装包A,提示需要先安装包B,安装包B,提示先要先装包C,安装包C,提示需要先装包D.......,导致安装过程漫长不顺利
安装包A,提示需要先安装包B,安装包B,提示先要先装包C,安装包C,提示需要先装包A。最后只能包A、B、C一起安装
以上情况导致rpm安装软件过程复杂繁琐,因而后来推出了yum方式安装软件包,解决了包间相互依赖的问题。推荐使用yum方式安装软件包
十五、安装应用程序 yum
相对于rpm安装方式yum解决rpm包间依赖关系使安装方便和快捷
安装rpm包时仍然使用rpm
(1)yum原理
仓库配置文件:/etc/yum.repos.d/*.repo
根据*.repo后缀的yum配置文件中指定的RPM包来源构建本地缓存(数据库),包含包间的依赖关系
安装软件包时检查安装包所依赖的相关包,先安装依赖包,最后再装目标软件包
注:网络yum源可以考虑使用网速快的yum源,如:aliyun
(2) yum用法
1.选项:
-y 自动回应 yes 不用手工输入‘Y’
-q 静默模式 不显示包安装进度条等信息
2.安装:yum [选项] install 包1 包2....
3.卸载:yum [选项] remove 包1 包2....
4.更新:yum [选项] update 包1 包2....
5.检查更新:yum check-update
6.查看指定特性(可以是文件) 由哪个程序包提供::yum provides */关键字
7.清除缓存:yum clean all
8.构建缓存:yum makecache
9.模糊搜索:yum search 关键字
10.查看指定包依赖的包关系:yum deplist 包1 包2.....
十六、ls的特性
每个文件类型都有自己的颜色。
颜色 | 文件类型 |
蓝色 | 目录 |
红色 | 压缩档案 |
白色 | 文本文件 |
粉红色 | 图片 |
蓝绿色 | 链接 |
黄色 | 设备 |
绿色 | 可执行文件 |
闪烁的红色 | 破碎链接 |
原文地址:https://blog.csdn.net/hk000001/article/details/142972614
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!