Linux基础命令

敖胤 2021-04-08 10:21:02
linux 操作系统 命令 博客园 基础


一、命令格式

Linux中命令的基本格式如下:

命令 [选项] [参数]

注:部分特殊命令不遵循此格式

二、系统信息

2.1、获取当前用户

who am i

2.2、获取当前所在目录

pwd

2.3、获取IP信息

ip a|address

2.4、连接远程地址

ping 域名|IP

三、目录命令

3.1、列出目录

ls [-aldtr] [目录名]
# 目录名缺省表示列出当前所在目录
# -a:列出所有文件和目录
# -l:列出文件和目录的详细信息
# -d:仅列出目录自身
# -t:按创建时间排序
# -r:倒序
ll [-aldtr] [目录名] # ls -l 的缩写形式,与ls用法一致

3.2、切换目录

cd [路径]
# 当目录名缺省时,切换至当前用户的home目录下

特殊目录路径:

符号 路径
. 当前目录
.. 上级目录
/ 系统根目录
~ 当前用户的home目录
- 返回上次目录

3.3、创建目录

mkdir [-mp] 目录名
# -m:指定权限
# -p:创建多级目录

3.4、删除目录

rmdir 目录名
# 只能删除空目录
rm [-rf] 资源名 # 删除资源(目录或者文件)
# -r:递归删除
# -f:不询问

3.5、复制资源

cp [-rp] 源资源路径 目标资源路径
# -r:递归复制
# -p:连同属性一起复制,而非使用默认属性

3.6、移动/重命名资源

mv 源资源 [目标路径][新资源名]
# 若目标路径不写,即重命名;若新资源名不写,则为移动;若两者都写,则为移动并重命名

四、文件命令

4.1、创建文件

touch 文件名 [文件名] [文件名] [文件名]...

4.2、编辑文件

vi | vim 文件名 # 进入查看模式
i | a | o # 进入编辑模式
# i:在当前光标处开始编辑;a:在当前光标后;o:在光标的下新起一行;
ESC # 推出编辑模式
: # 进入底行命令模式
wq! # 保存并退出
q! # 不保存退出
# 在查看模式下,按下ZZ(两次大写的z),可快速保存并退出
4.2.1、显示/隐藏行号

在底行命令模式下,输入set nu/nonu 回车,可显示或隐藏行号

4.2.2、跳转某行

在底行命令模式下,输入to n 回车,可跳转至n行

4.2.3、查找内容

在查看模式下,输入/xxx 可在文件中查找xxx内容,按n 查找下一个;按N 查找上一个

5、查看文件

5.1、查看全部
cat 文件名 # 从首行开始查看文件内容,展示全部
tac 文件名 # 从末行开始查看文件内容,展示全部
nl 文件名 # 从首行开始查看文件内容,展示全部,并显示行号
5.2、按页查看
5.2.1、more

类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示

more 文件名

常用操作命令

  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+f 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+b 向上滚动一屏
  • b 向上滚动一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • v 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more
5.2.2、less

与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。

less 文件名

常用操作命令

  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • b 向上翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
  • G 跳转至末行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页
5.3、按行查看
5.3.1、head

head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。

head [-qvcn] 文件名
# -q:隐藏文件名(默认)
# -v:显示文件名
# -c:显示多少字符
# -n:显示多少行

5.3.2、tail

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

tail [-fqvcn] 文件名
# -f:循环读取,每次有新内容添加则读出
# -q:不显示处理信息
# -v:显示处理信息
# -c <数目>:读取的字符数
# -n <数目>:读取的行数

五、压缩包命令

Linux中常用的压缩包格式为:.tar.tar.gz.gz的,但也支持.zip和.rar格式的。

5.1、tar类型

5.1.1、压缩
tar [-cvzf] 压缩文件名 目标资源名 [-C 路径名]
# -c或--create:新建压缩文件
# -v:显示指令执行过程
# -z或--gzip或--ungzip:通过gzip指令处理备份文件。
# -f <压缩文件名> 或 --file=<压缩文件名>:指定压缩文件。注意,此选项必须至于选项的最后

5.1.2、解压
tar [-xvzf] 压缩文件名 [-C 路径名]
# -x或--extract或--get:解压压缩文件

5.1.3、查看压缩文件
tar [-tvzf] 压缩文件名
# -t或--list:列出压缩文件的内容。

5.2、zip类型

Linux下默认不支持zip,所以需要安装zip和unzip软件。

安装命令如下:

yum -y install zip
yum -y install unzip

5.2.1、压缩
zip [-qr] 压缩文件名 [目标资源] [目标资源] ...
# -q:不显示指令执行过程
# -r:递归处理,将指定目录下的所有文件和子目录一并处理

5.2.2、解压
unzip [-lnv] 压缩文件名
# -l:显示压缩文件内所包含的文件
# -n:解压时,不要覆盖原有文件
# -v:查看压缩文件内容,不解压

5.2.3、gzip命令

gzip是个即可压缩也可解压的命令,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

gzip [-drl] 资源名|压缩文件名
# -d:解压
# -r:递归处理
# -l:列出压缩文件的信息

六、用户命令

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

6.1、创建用户

useradd [-dgG] 用户名
# -d:指定用户的主目录,若不指定,则在/home下创建一个与用户名相同的文件夹作为主目录
# -g:指定用户的属组
# -G:指定用户的附属组

6.2、设置密码

passwd [-dlu] 用户名
# -d:删除密码
# -l:锁住账户,使其不可用
# -u:解锁账户,使其可用

6.3、切换用户

su 用户名

说明:

[root@192 ~]# :root用户在192登录,当前处于~目录下,#代表超级管理员。

[silence@192 root]$ :silence用户在192登录,当前处于root目录下,$代表普通用户。

6.4、修改用户

usermod [-degGlLuU] 用户名
# -d <登入目录>:修改用户登入时的目录
# -e <有效期限>:修改帐号的有效期限
# -f <缓冲天数>:修改在密码过期后多少天即关闭该帐号
# -g <群组>:修改用户所属的群组
# -G <群组>:修改用户所属的附加群组
# -l <帐号名称>:修改用户帐号名称
# -L:锁定用户密码,使密码无效
# -u <uid>:修改用户ID。
# -U:解除密码锁定。

6.5、删除用户

userdel [-r] 用户名
# -r:删除用户的主目录

七、用户组命令

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

7.1、创建用户组

groupadd [-g gid] 组名
# -g gid:指定组id

groupadd 命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

相关文件:

  • /etc/group 组账户信息。
  • /etc/gshadow 安全组账户信息。
  • /etc/login.defs Shadow密码套件配置。

7.2、修改用户组

groupmod [-n gname] 组名
# -n:修改用户组名

7.3、删除用户组

groupdel 组名

八、文件权限

参考:

https://www.runoob.com/linux/linux-file-attr-permission.html

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组。

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

每个文件的属性由左边第一部分的 10 个字符来确定:

从左至右用 0-9 这些数字来表示。

0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

对于 root 用户来说,一般情况下,文件的权限对其不起作用。

8.1、修改文件属组

chgrp [-R] 属组名 文件名
# -R:递归修改

8.2、修改文件所有者

可同时修改属组

chown [-R] 用户名[:属组名] 文件名

8.3、修改文件权限

chmod [-R] xyz 文件名

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4
  • w:2
  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx--- 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

九、进程命令

9.1、查看进程

ps -ef | grep 进程关键字

查看防火墙进程ID:

9.2、关闭进程

kill [-信号量] pid
# 常用的信号量:1 (HUP):重新加载进程。9 (KILL):杀死一个进程。15 (TERM):正常停止一个进程。

版权声明
本文为[敖胤]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/wind-ranger/p/14630060.html

  1. 由浅入深吃透容器云+微服务+K8S+MQ+阿里云内部实施手册
  2. Spring 自调用事务失效,你是怎么解决的?
  3. 数据结构学习(一) --数据结构提纲
  4. 超详细280页Docker实战文档,可下载。
  5. 想要做程序员必须了解的8种通用数据结构,需熟记!
  6. 为什么不管大厂还是小厂,面试总是要提到 HashMap?
  7. 【技术分享】小乖乖的 Linux/Ubuntu 历险记
  8. autodock在linux下安装使用笔记
  9. 突然挂了!Redis缓存都在内存中,这下完了!
  10. 结合简单的控制台程序和K8S的cronjob完成定时任务
  11. 《JavaScript语法基础》练习第四章随堂练习2
  12. Java基础的方法使用详解
  13. 结合控制台程序和K8S的CronJob完成定时任务
  14. Java学习路线一张图足够
  15. 【PHP】为什么 MySQL 添加索引后就可以提高查询速度
  16. 拿到这份 Java、C++ 软件开发完整学习路线图,我面试再也没挂过..
  17. jdbc实现原理
  18. 太赞了,GitHub 上标星 115k+ 的 Java 教程!
  19. 武汉疫情系列(3)|java爬取腾讯【新型冠状病毒肺炎实时辟谣】较真查证平台数据
  20. 深入浅出AlibabaSpringCloud+K8S+jenkens学习笔记+教程+脑图
  21. 面试杀手锏之Dubbo服务调用过程
  22. 代码优化大盘点:35 个 Java 代码优化魔鬼细节
  23. 代码优化大盘点:35 个 Java 代码优化魔鬼细节
  24. 20192313 2020-2021-1 《数据结构与面向对象程序设计》 哈夫曼编码实践报告
  25. IDEA热部署插件JRebel
  26. 不讲武德!京东在双12来临之际甩出的“kafka核心学习笔记”,瞬间秒榜,登顶Top1!
  27. 如何应对大厂Linux面试?分享5个让你相见恨晚的Linux问题(实用)
  28. 图解MyBatis
  29. Linux中实用但很小众的11个炫酷终端命令
  30. 大厂面试Linux,就这5个问题!
  31. Springboot Spring拦截器实现及请求链路说明
  32. idea激活ActivateJrebel(热部署)方法
  33. IDEA使用Gradle编译Spring源码
  34. IDEA使用Gradle编译Spring源码
  35. 想学习网络协议?那你知道关于 https 的五大误区吗?赶紧补课
  36. 【夯实Java基础05】为什么面试官总喜欢问StringBuffer 和 StringBuilder 的区别
  37. Eclipse 官宣,干掉 VS Code !
  38. 什么是泛型?,Set集合,TreeSet集合自然排序和比较器排序,数据结构-二叉树,数据结构-平衡二叉树
  39. MySQL 创建数据库
  40. 电脑知识:没想到 Windows 如此给力!可以扔掉 Linux 虚拟机了
  41. Linux中文件系统分类,以及基础使用方法
  42. 我自学的200G Java实战项目视频,全给你们了
  43. 2021升级版微服务教程—为什么会有微服务?什么是SpringCloud?
  44. Java生鲜电商平台-商品数据库的设计与SQL下载(小程序/APP)
  45. Zabbix 通过 API 监控 K8s (亲测)
  46. 学习Linux的第7天
  47. Linux性能优化(八)——网络测试工具
  48. 【一天一个知识点系列】- Redis Cluser之数据分布
  49. 淘宝一面:“说一下 Spring Boot 自动装配原理呗?”
  50. Centos7下安装MySQL8.0.23-小白的开始
  51. 使用Eclipse实现自定义Jmeter函数助手
  52. Java安全之ysoserial-JRMP模块分析(一)
  53. Oracle11g下载、安装、客户端安装、PLSQL远程连接数据库(即监听配置)及环境变量配置
  54. HDFS是如何设计架构的?
  55. Redis主从复制不能实现高可用?Cluster集群来解决
  56. .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)
  57. Apache ECharts 5 系列教程(3)交互能力
  58. 短信验证码被刷怎么办?java 短信验证码防刷策略分析
  59. Spring Boot 微服务性能下降九成!使用 Arthas 定位根因
  60. Spring Boot 微服务性能下降九成!使用 Arthas 定位根因