Linux操作系统命令大全

每一个命令都是linux上的一个二进制程序,例如你执行了cd其实就是在执行cd二进制文件程序

1、Linux操作系统只有一个顶级目录称为根目录 /出现在后面的/表示层次, 而Windows系统则是多个根路径 C:/ D:/等

2、什么是命令行 和 命令,命令行是linux终端,是一个命令提示符页面,以纯字符的形式操作系统

,可以使用各种字符化命令对系统发出操作指令。

命令 既Linux程序,一个命令就是一个Linux程序,命令没有图形化页面,可以在命令行终端中提供字符化的反馈,命令操作系统要不图形化操作系统效率高出很多,

3、命令基础格式

command [-options] [parameter]

 其中 command 命令本身, options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节。parameter[可选,非必填]命令的参数,多数用于命令的指向目标等

示例:

ls -l /home/ittest ,ls是命令本身 -l是选项 ./home/ittest是参数

意思是以列表的形式,显示/home/ittest目录内的内容

cp -r test1 test2, cp是命令本身,-r 是选项 ,test1和test2是参数 意思是复制文件夹test1为test2

4、cd命令的作用

cd命令可以切换当前工作目录,语法是cd [linux路径] 没有选项 没有参数

5、pwd命令的作用

pwd命令 没有选项 没有参数 直接使用即可 作用是输出当前所在的工作目录

6、绝对路径以根路径为启点 cd /home/hello ,   相对路径 cd /hello 当前目录作为起点,   切换到当前目录下的hello cd ./hello  , 上一级目录  cd ..  ,  上两级目录 cd ../..  , 回到home目录cd ~

7、创建文件夹命令 mkdir [-p ] [linux路径]文件夹  ,其中 -p 是可以自动创建不存在的路径 mkdir -p /h/k 

8、文件操作命令 

 创建文件路径  touch [linux路径]     touch index.txt 

 查看文件  cat [linux路径]  cat index.txt  显示全部内容

 查看文件 more [linux路径] 支持分页查询,通过空格翻页,按键盘q退出查看

 如何区分是文件还是文件夹呢 ,看如下 如果是d开头的就是文件夹

9、复制文件或文件夹 cp [-r]  [参数1 linux路径文件]  [参数2 linux路径文件]

10、移动文件/文件夹 mv命令  mv [参数1原文件]  [参数2目标路径]

11、删除文件、文件夹 rm[-f -F] 参数 1 参数2 参数N    -f代表强制删除

12、查找命令 which  要查找的命令   例如 which cd  就会返回 cd二进制程序的路径

13、查找文件 find命令  例如: find 起始路径 -name 被查找的文件名   find / -name index.txt ,按照文件大小搜索  find 起始路径 -size [-10kb  小于10k的文件] [+10k 大于10k的文件]

14、过滤文件grep  grep [-n可选表示匹配到的行号]  关键字 文件路径  例如:从一个文件中获取 关键字所在行信息   grep "王俊峰" index.txt   就会显示出来

15、数量统计命令wc 可以统计文件的行数,单词数量等, wc [-c统计bytes数量 -m统计字符数量 -l统计行数 -w统计单词数量] 文件路径     例如 wc -c index.txt 

16、管道符 把左边命令的结果作为右边输入 | 和 grep配合使用  例如过滤文件  cat index.txt | grep "王俊峰"  同样返回了

17、echo命令 可以在控制台输出指定的内容 echo 输出的内容,和程序中的pringt语句差不多 , echo "hello lang"  ,echo 后面如实使用 `` 飘号包裹起来 就会当做命令来执行 例如 echo `pwd`

18、重定向符配合 命令一起使用  > 将左侧命令结果 覆盖写入到符号右侧指定的文件中,>>将左侧命令的结果 追加写入到符号右侧指定的文件中 例如 覆盖写入  echo "hello linux " > index.txt  追加写入 echo "hello linux " >> index.txt 

19、tail 命令 可以查看文件尾部的内容, tail [-f持续跟踪  -num查看尾部多少行] linux路径   

20、vi/ vim编辑器 ,vim是vi的加强版本,有三种模式  命令模式  输入模式  底线命令模式

vi/vim 文件路径 不存在创建 有就修改, 进入后就变成了命令模式,然后按下键盘  i 就变成了输入模式, 使用ESC就退出了命令模式,在命令模式 按下冒号 :  然后按下 eq 就保存了,按q!就退出了不会保存 

 

 

21、Linux 的Root用户,root用户是超级管理员,

 切换成root用户  su [- 符号可选 表示是否切换用户后加载环境变量] [用户名 表示要切换的用户名]        exit 命令退回上一个用户,使用普通用户切换到root用户需要输入密码,使用root用户切换到普通用户   不  用  输入密码,例如 su - root 

 在其它用户上临时授予最高权限, sudo , 需要注意的是不是每个用户都能使用sudo 需要root用户授予某个用户,它才能使用,如果授予呢? 切换到root用户 执行 visudo,会自动通过vi 编辑

 /etc/sudoers 在文件的最后增加 一行   其它用户名 ALL=(ALL)     NOPASSWD: ALL  然后wq保存,然后切换到其它用户,就可以使用sudo了  

22、用户 和用户组,关系是N:N

创建用户组 groupadd 用户组名  ,删除用户组 groupdel 用户组名,  创建用户 useradd [可选-g用户组名  可选-d执行用户的home路径]用户名,删除用户 userdel[-r]用户名,查看用户所属组 id[用户名]

修改用户所属组 usermod -aG 用户组 用户名,将指定用户加入指定用户组 

  

23、getent 列出系统有哪些用户 和用户组   

 查看系统有哪些用户语法 getent passwd  

 显示7份信息

 

 查看系统有那些组 getent group 

 显示3份信息

 24 权限信息 我们通过ls -l可以以列表形式查看信息,并显示权限细节

  序号1 表示文件,文件夹 的权限控制信息  共计10个槽位,分为三部分  r表示读权限  w表示写权限 x表示执行权限

  槽位1 [- 表示文件,d 文件夹,l软连接] ,

    槽位2[ r或-],槽位3[w或-],槽位4[x或-], 备注 :表示用户权限

  槽位5[r或-],槽位6[w或-],槽位7[x或-], 备注 :表示用户组权限

  槽位8[r或-],槽位9[w或-],槽位10[x或-]   备注 :其它用户权限

 

  序号2表示文件,文件夹所属用户

  序号3表示文件,文件夹所属用户组

25、chmod命令 修改权限,注意:只有文件,文件夹的所属用户或root用户可以修改

语法: chmod [-R] 权限 文件或文件夹   选项-R 对文件内部应用同样的操作  

示例 chmod u=rwx , g=rwx ,  o=r-x  文件名/文件夹   其中 | u 表示 用户user | g表示所属组 group | o表示其它用户 other 

chmod u=rwx,g=rwx,o=r-x ./index.txt

 26、权限的数字序号,例如4+2=6   6就代表 rw权限   案例:chmod 666 index.txt 相当于 chmod rw-,rw-,rw- index.txt

 27、chown命令 用于修改文件/文件夹 的用户 和用户组,   语法 chown  [-R 选项 对文件夹全部内容都做相同规则]   [用户 修改所属用户]   :分隔符   [用户组 修改所属用户组] 文件或文件夹  

 示例 chown root hello.txt  将hello.txt所属用户修改成root

 示例 chown :root 将hello.txt所属用户组修改成root

28、快捷建

  Ctrl+C 强制停止 不能用于vi/vim, Ctrl+D 退出或登出,history查看历史输入过的命令, 使用   ! 加命令中的关键词 搜索历史命令 ,还可以使用Ctrl+R来搜索history列出的历史命令

29、光标移动快捷键   Ctrl+a 跳到开头,  Ctrl+e跳到命令结尾 ,Ctrl+键盘左键 向左跳一个单词,Ctrl+键盘右键 像右跳一个单词

30、清理屏幕 使用Ctrl+l 可以清空终端内容 通过命令 clear得到同样的效果 

31、软件安装CentOS  两种安装方式 第一种下载安装包自行安装,或者通过应用商店安装,

 yum命令,linux是.rpm包软件管理器,Window是.exe,用于自动化安装配置Linux软件,并可以自行解决依赖问题, 语法 yum [-y 自动确定无需手动确认安装或卸载过程]  [install 安装 |remove 卸载 |search 搜索 ]  软件名称

 yum命令需要使用root用户权限,可以su切换到root用户 或者使用sudo授权命令,并且需要连接网络 ,

 例如我们安装wget应用程序:

  第一步、我们搜索一下应用商店是否有wget 应用程序  yum -y search wget 

  第二步、我们安装wget 应用程序  yum -y install wget 

  第三步、我们卸载wget 应用程序  yum -y remove wget 

32、systemctl命令 (能够被systemctl来管理的软件 我们一般也称之为:服务)

 语法 systemctl start启动 | stop停止 | status查看状态 | enable 开启开机自启 | disable关闭开机自启 |  服务名

 我们可以通过这个命令来控制系统内置的一些服务和外部一些服务,如果是外部服务有注册功能 也可以通过systemctl来控制,或者手动注册

 系统内置服务 NetworkManager 主网络服务,network 副网络服务, firewalld 防火墙服务,sshd,ssh服务(Finalshell远程登录Linu使用的就是这个服务)

 例如: 我们查看系统的防火墙服务的状态 systemctl status firewalld 

33、软连接,通过 ln   语法 ln [-s选项创建软连接]   [参数1被链接文件或文件夹]   [参数2要连接的目的地]   例如创建 ln -d /etc/yum.conf  ~/yum.conf   

34、查看系统时间

 语法 date [-d 按照给定字符串显示日期。一般用于日期计算 ] [+格式化字符串]   格式化字符串 %Y 年 %m月 %d天 %H小时 %M分钟 %S秒 %s来自1970年到现在的秒数

 例如: date +%Y-%m-%d  返回 2023-12-20

35、IP地址 主机名

    IPV4版本  地址格式是 a.b.c.d 其中abcd元素表示0-255的数字,如 192.168.88.101 就是一个精准的地址   0.0.0.0和127.0.0.1 本意一样, 

  IPV6版本 不常用 

    主机名 hostname 查看主机名 ,修改主机名 hostnamectl set-hostname 新主机名  (修改主机名需要root用户)

36、域名解析,第一步 先检查本地文件,第二步 如果本地没有在去查询公网DNS服务器询问

37、 虚拟机配置固定IP,dhcp 修改static:动态获取IP地址,每次重启都会获取一次,

 在VMware Workstation中配置固定IP,配置固定IP分为两大步骤,

 1在VMware Workstation 中配置IP地址网管和网段 (IP地址的范围)

 2在Linux系统中手动修改配置文件,固定IP 

38、ping 命令 用于检查制定的服务器是否是可联通的状态  语法 ping [-c num 表示检查的次数 -c 3 检查3次 ] ip主机名   例如检查三次百度网络是否联通  ping -c 3 baidu.com 

39、wget命令是非交互试的文件下载器,可以在命令行中下载网络文件 语法 wget [-b 选项 后台下载会将日志写入到当前工作目录的wget-log文件  ] url 下载链接  ,

       示例 wget https://lmg.jj20.com/up/allimg/1113/051220112022/200512112022-1-1200.jpg

40、curl 命令  可以发送http网络请求,可用于下载文件,获取信息等  语法 curl [-O 选项 用于下载文件,当url是下载链接时。可以使用此选项保存文件]  url 要发起请求的网络地址

 示例 curl https://www.baidu.com  ,也可以用curl 下载 只要使用 -O就可以  示例:curl -O https://lmg.jj20.com/up/allimg/1113/051220112022/200512112022-1-1200.jpg

41、端口   两台计算机或者两个服务程序通讯 需要确定IP和端口才能够进行通讯,Linux支持65535个端口,这6万多个端口分三类进行使用

  公认端口 1-1023 用于系统内部使用的,不要占用这些端口

  注册端口1024-49151 通常可以随意使用

  动态端口49152-65535 通常不会固定绑定程序,而是程序对外进行网络连接 临时使用

   nmap 命令可以查看执行IP对外暴露端口问题 ,不是系统自带的程序,所以使用 yum安装  yum -y install nmap  语法 nmap [ip 127.0.0.1 ]  可以看到对外提供的端口

   netstat 命令查看本机端口被占用情况 不是系统自带,所以使用yum安装 yum -y install net-tools  例如 netstat -anp ,使用管道过滤一下  netstat -anp | grep 8080 

42、进程管理 操作系统会为每个进程分配进程ID,如果查看进程信息 语法  ps [-e显示出全部的进程  -f以完全格式化的形式展示信息]  一般来说 固定用法就是: ps -ef列出进程的全部信息

 UID:进程所属用户ID,  PID:进程的进程号, PPID:启动此程序的其它ID(进程的父ID), C:此进程的CPU占用率, STIME 进程的启动时间,TTY启动此进程的终端序号,如显示? 表示非终端启动 是系统启动的

TIME 进程累计占用使用CPU的时间   CMD 进程的启动路径及命令,

43、精准匹配  使用管道符 配合grep过滤  ps -ef | grep [tail 进程名]  例如

终端A  正在被tail命令阻塞

 终端B 

44、 关闭进程  语法 kill [-9 强制关闭进程]  进程ID,其中-9可选  如果不强制关闭 只会通知进程关闭,具体是否关闭看进程本身了

45、主机状态管理  查看系统资源占用情况 可以使用 top命令 默认5秒刷新一次,直接输入top既可,按q或Ctrl+C退出   语法 : top  [-p 显示某个进程id,-d 刷新间隔 单位秒,-c显示完整命令,-n 刷新次数,-b 按页输出,-i只显示当前运行的进程,-u 显示当前用户的进程 ] 

 描述:

第一行 top:程序名称,  后面是当前系统时间, up:13 days 启动时间(电脑启动了13天), 2users :两个用户登录,load average 平均负载 1、5、15分钟负载

第二行 tasks 144个进程 ,1running:1个进程在运行,143 sleeping :143个在睡眠,stopped:0个停止进程,zombie:0个僵尸进程

第三行 cpu用户使用率, cpu系统使用率,ni高优先级cpu使用率,id 空闲cpu率,wa:io等待cpu占用率,hi:cpu硬件中断率,sicpu软件中断率,st强制等待占用cpu率

第四 mem 物理内存,total 总共内存 ,free剩余内存,used使用内存, buff/cache buff和缓存占用内存

第五 swap 虚拟内存,交换空间 total 总共内存 ,free剩余内存,used使用内存, buff/cache buff和缓存占用内存  (虚拟出来的假内存 可以无线扩容,无上限)

PID 进程ID,

USER 启动的用户,

PR 进程优先级 越小越好,

NI复制表示高优先级,

整标识低优先级,

VIRT 进程使用虚拟没内存,单位KB,

RES进程使用物理内存 单位KB,

SHR进程使用共享内存,单位KB,

S进程状态 (S休眠,R运行,Z僵尸状态,N复数优先级,I空闲状态),

%CPU 进程占用CPU率,

%MEM进程占用内存率,

TIME+进程使用CPU时间总计,单位10毫秒,

COMMAND进程命令或名称或程序路径 

46、如何查看磁盘信息监控    查看磁盘命令df命令语法 df [-h更加人性化的单位显示] , 

 查看cpu,硬盘相关信息 使用iostat   语法:iostat [-x 显示更多信息] [num1 刷新间隔] [num2 刷新几次] 

 47、查看网络信息  语法 sar [-n 选项 查看网络 ]  DEV  num1 刷新间隔 num2查看次数 ,  备注:DEV表示查看网络接口  例如: sar -n DEV 3 2

 

48、环境变量 为什么无论我们当前工作目录在哪里 都能使用某些命令,这是PATH环境变量做到的,Linux 系统中使用  env 命令 就可以查看全部环境变量

 环境变量PATH , env | grep PATH ,当你执行 cd 的时候 他会按照顺序去下面这几个文件夹里面找相关的应用程序并执行

 $符号,在Linux系统中,$符号被用于取环境变量的记录信息, 例如 echo $PATH

 自行设置环境变量(临时生效)   export 变量名 和值 例如 export lang=jacklang 

 自行设置环境变量 (永久生效) 针对当前用户 配置在 ~/.bashrc 文件中 ,针对所有用户 /etc/profile文件中 并通过命令   source  [路径文件]  进行立刻生效 例如 source /etc/profile

 案例:

第一步 在Linux根路径创建一个 文件夹mkdir myenv  然后vim 创建文件 echo 郎俊楠 ,然后给langjunnan文件授予执行权限 chmod u=rwx,g=rwx,o=rwx langjunnan, 测试执行一下

 第二步 接下来我们配置到环境变量中 修改 vim /etc/profile   编写langjunnan文件夹路径,不要忘记把原有的PATH值赋予给PATH

 第三步 

刷新生效环境变量 

 第四部 测试 ,可以看到 我们在任意目录下执行 都会显示内容了

49、上传  和下载,rz 命令,sz命令  这两个命令需要安装 通过 yum -y install lrzsz 即可安装 ,rz进行上传   sz下载,  需要再工具里使用  例如 xshell ,scp 

语法 scp 本地文件路径  远程服务器用户@远程服务器地址:/远程服务器文件夹/     例如:

scp /Users/langjunnan/Desktop/ni/WechatIMG238.jpegtxt.jpeg root@42.51.41.112:/langjunnan/

50、压缩和解压  .tar .gz在Linux常用, .tar就是一个简单封装的压缩,文件体积并没有减少多少,.gz 使用了压缩算法,大大压缩的文件体积

命令 tar [-c, -v ,-x ,-f,-z ,-C] 参数1压缩出来的文件名  参数2  参数N , 注意: 这里的-c 和-x 是二选一参数  一个是压缩 一个是解压

 案例:压缩

tar -cvf test.tar 1.txt 2.txt 3.txt 意思是 把 1/2/3.txt文件压缩到 test.tar里,其中 -cvf 代表 创建压缩文件,显示压缩解压过程 要创建的文件 -f选项必须在所选位置最后一个

tar -zcvf test.tar.gz 1.txt 2.txt 3.txt 意思是 1/2/3.txt文件压缩到 test.tar.gz里,其中 -zcvf 代表 使用gzip模式创建压缩文件,显示压缩解压过程 要创建的文件 -f选项必须在所选位置最后一个  

案例:解压

tar -xvf test.tar -C [Linux路径默认当前目录] 意思是 解压 显示过程 解压位置

tar -zxvf test.tar.gz  -C [Linux路径默认当前目录] 意思是 解压 显示过程 解压位置 测试:tar -zxvf test.tar.gz -C ./test/

51、zip压缩格式,

  压缩语法 zip [-r被压缩的包含文件夹 就加-r 参数 如果没有就不包含]    [参数1压缩出来的包名称 ]  [参数2][被压缩参数N],

  解压语法 unzip [-d ] 参数 -d指的是解压去的位置 参数是被解压的zip压缩包文件

案例: 压缩 zip [-r如文件夹就带上] index.zip index.txt

案例: 解压 unzip index.zip

52、scp 命令   scp命令是cp命令的升级版,既: ssh cp,通过ssh协议完成文件复制,主要功能是在不同的Linux服务器之间,通过ssh协议胡来那个传输文件,只要知晓服务器的账号和密码 即可通过scp互传文件  语法 :scp [-r ] 参数1 参数2  ,-r选项用于复制文件夹使用,如果是文件夹必须是-r ,参数1 本机路径,或远程路径  参数2本机路径或远程路径,

示例: scp -r /export/server/jdk root@node2:/export/server  意思:把本机上的jdk文件夹 以root身份复制到node2 的/evport/server/内

53、安装MySql测试,首先 我们的MySql并不存在于我们的yum仓库中,所以需要先配置yum仓库, 需要root权限,

 第一步 去mysql官网寻找 yum的源,添加mysql的yum源, 第二步 使用yum安装mysql选择要安装的mysql版本

 下载rpm包  并且拖拽到服务器内

 第一步 添加 mysql的 yum命令中获取的 rpm 源     sudo rpm -Uvh mysql80-community-release-el7-11.noarch.rpm

 

第二步 上一步执行成功后, 选择要安装的mysql版本

 第三步 安装MySql   yum -y install mysql-community-server

 第四部 安装完毕的MySql 会自动注册到systemctl中,可能路径在/usr/bin/systemd/system/mysqld.service 所以我们直接执行 systemctl start mysqld

 第五步 设置开机自启 systemctl enable mysqld,查看当前状态 systemctl status mysqld 

 

   

posted @ 2023-12-17 16:11  郎小乐  阅读(100)  评论(0)    收藏  举报