Linux指令大全 学习Linux系统必学指令

Linux指令

软件管理相关命令

Debian平台代表

  • Ubuntu命令

    • dpkg:可以离线或在线安装软件,并且自动安装依赖
    • apt:可以离线或在线安装软件,并且自动安装依赖
    • .deb基于Debian平台的软件安装包后缀名

Fedora平台代表

  • CentOS命令

    • rpm:用来安装离线安装包,不会自动安装依赖
    • yum:可以离线或在线安装软件,并且自动安装依赖
    • .rpm基于Fedora平台的软件安装包后缀名

windows的软件安装包后缀名

  • .exe
  • .msi

安装软件的三种方式

  • 1.下载离线安装包

    • dpkg/rpm
  • 2.直接在线安装

    • apt/yum
  • 3.把代码的源代码下载下来,然后编译安装。下载源码.tgz文件,是一个压缩包,相当于windows里的zip / rar

      1. 从官网上下载源代码,一般都是c语言的
      1. tar -zxvf 打包文件名.tgz 将 .tgz 文件 进行解压并拆包
      1. 进入解压后的文件夹,执行./configure --prefix=<安装路径> 进行配置文件
      • –prefix 用来指定安装路径

      • 配置的目的是为了查看当前系统是否能够安装此软件。在此过程中,可能会出现错误提示,提示需要安装第三方的依赖包。

        • 此时需要手动的运行命令安装依赖包
      • 依赖包安装完成后 再次执行./configure --prefix=<安装路径> 进行配置文件

      1. configure 命令执行成功后,会生成一个Makefile文件
      1. 执行 sudo make && sudo make install 来进行编译和安装

CentOS软件安装的相关命令

  • rpm安装方式

    • rpm -ivh <包名.rpm> (只能安装离线安装包)

      • 不会自动依赖,一般会安装失败
    • rpm -qa

      • 列出已安装的所有软件
    • rpm -e <包名> 卸载已安装的软件

      • 也不会卸载成功,不会自动删除依赖
  • yum安装方式

    • yum install <包名.rpm> (在线、离线 安装都可,会自动依赖)

    • yum list installed

      • 列出已安装的所有软件
    • yum remove <包名>

      • 卸载已安装的软件,会自动删除依赖关系
    • yum check-update

      • 查看可更新的软件
    • yum update <包名>

      • 更新软件
  • wget 网址/软件包

    • 从网址软件包

CentOS查看正在运行的软件

  • ps -aux|grep 进程名

    • 查看指定进程的运行状况及信息

Linux目录结构

/ 根目录

  • bin

    • 是binary的缩写 包含了一些二进制文件,即可执行文件。即可执行命令。
  • sbin

    • 存储了一些需要root权限的命令,使用这些命令需要root权限,要么使用root用户,要么在命令前加上sudo。
  • etc

    • 用于存储软件的配置文件
  • home

    • 用于存储用户的家目录,Linux支持多用户模式,每新建一个用户,home中就会多一个家目录,目录名即用户名
  • opt

    • 此文件夹是第三方软件的默认安装位置
  • root

    • root用户的家目录
  • usr

    • 用于存储用户的配置信息和用户相关的可执行文件。

~ 当前用户的家目录

  • 在root用户代表 /root
  • 在一般用户中代表 /home/<用户名>

添加新用户

useradd <用户名> -m -s /bin/bash

  • 创建用户

passwd <用户名>

  • 修改指定用户密码

sudo gpasswd -a <用户名> root

  • 将指定用户加入到root分组中

文件(夹)操作相关命令

cd

  • cd -

    • 返回上次跳转的目录
  • cd …

    • 返回上级目录
  • cd /

    • 返回根目录
  • cd ~

    • 返回家目录
  • 直接cd 等价于 cd ~

  • 相对路径,不以 / 开始

    • cd xxx

      • 进入当前文件夹里的xxx文件夹里
    • cd …/xxx

      • 进入上级文件夹里的xxx文件夹里
  • 绝对路径,以 / 开始

pwd

  • 打印当前工作目录

ls

  • 多个选项可同时使用

  • 列出当前文件夹里的所有文件(夹)(不包含隐藏的文件(夹))

  • ls /文件夹名

    • 列出指定文件夹里的文件(夹)(不包含隐藏的文件(夹))
  • ls -a /文件夹名

    • 列出指定文件夹里所有文件(夹)(包含隐藏的文件(夹))
  • ls -l

    • 用来显示当前文件夹的详细信息

      • drwxrwxr-x. 2 myuser myuser 6 8月 20 09:41 test

        • drwxrwxr-x

          • 第一个字母表示文件类型

            • d:表示为一个文件夹
            • -:表示为一个普通的文件
            • l:表示为一个链接文件(快捷方式)
            • c:表示为一个字符设备文件。即串行端口的接口设备,如鼠标、键盘等。
            • b:表示为一个块设备文件,存储数据的接口设备,即硬盘。
            • s:表示为一个套接字文件,用于网络数据连接
            • p:表示为一个管道文件,用于解决多个文件同时存取同一个文件所发生的错误。
          • rwxrwxr-x

            • 表示权限,9个字符三个一组,分别表示所有者,所属组和其它权限

            • 第一个rwx

              • r:读取权限
              • w:写入权限
              • x:执行权限
              • -:表示没有该权限
            • 第二个rwx

              • 表示所属组的权限,组名与用户名一致

                • 创建的文件(夹)所属当前所登录用户的组
        • 2

          • 如果是一个文件夹,表示这个文件夹里有几个子文件夹

            • 创建文件夹里默认有两个子文件夹

              • .

                • 记录当前目录位置
                • 记录上级目录位置
          • 如果是一个文件,表示用来表示文件硬链接的个数

        • 第一个myuser

          • 表示所有者
        • 第二个myuser

          • 表示所属组
        • 4096

          • 文件夹显示的都是4096,4kb
          • 文件显示文件的大小
        • 6 8月 20 09:41

          • 表示该文件(夹)最后一次修改的时间
        • test

          • 表示文件(夹)的名称

mkdir

  • mkdir

    • 创建一个文件夹
  • mkdir .

    • 创建一个隐藏文件夹
  • mkdir -p /xxx/yyy/zzz

    • 创建一个多级目录 创建一个文件夹xxx,在xxx中创建一个文件夹yyy,在yyy中创建一个文件夹zzz。

touch

  • touch

    • 创建一个空文件

alias

  • 查看命令的别名

  • alias la=‘ls -a’

    • 给ls -a 命令 起别名la
  • alias 别名=‘命令 选项’

    • 给指定命令的指定选项起别名
    • 如果直接在终端输入,那么‘这个别名是临时的,终端关闭后别名自动清除。

命令 --help

  • 查看指定命令的解释文档

rmdir

  • 删除指定空文件夹,若文件夹不为空,会报错

rm

  • rm -rf

    • 强制、递归删除指定文件(夹)
  • rm -r

    • 递归删除指定文件(夹)
  • rm -f

    • 强制删除指定文件(夹),文件(夹)不存在删除不会报错。
  • rm -rf *.txt

    • 强制删除所有后缀名为.txt的文件
  • rm -rf *

    • 强制删除所有文件(夹)

cp

  • cp 源文件 目标路径/新文件名

    • 复制源文件到指定路径

mv

  • mv 文件(夹) 目标路径

    • 将指定文件(夹)移到目标路径

查看文件相关的命令

  • cat

    • 从上到下,查看指定文件的所有的内容
  • tac

    • 从下到上,查看指定文件的所有的内容
  • head -

    • 查看指定文件前num行内容,默认为10行
  • tail -

    • 查看指定文件后num行内容,默认为10行
  • nl

    • 从上到下,带行号的查看指定文件的所有内容
  • more

    • 查看指定文件一页内容,Enter查看下一行,空格查看下一页,查看完毕后自动退出。
  • less

    • less -N

      • 查看指定文件一页内容,带行号,Enter查看下一行,空格查看下一页,查看完毕后,按q退出

chgrp <组名> 文件(夹)名

  • 将指定的文件(夹)的所属组修改为指定组(需要root权限)

chown <用户名> 文件(夹)名

  • 将指定的文件(夹)的所有者修改为指定用户(需要root权限)

用户管理的相关的命令

useradd <选项> <用户名>

  • 新建一个用户

  • 选项-m:创建用户的家目录,会在/home文件下创建一个与用户名同名的文件夹。

    • Ubuntu需要加上此选项才会创建同名文件夹。CentOS不加此选项会自动创建。
  • 选项-M:不创建用户的家目录

  • 选项-d:指定用户的家目录的名称

  • 选项-s:指定用户登录时的shell解析脚本,一般指定 /bin/bash

userdel <选项> <用户名>

  • 删除指定用户(需要root权限)
  • 选项-r:删除用户的同时,删除用户的家目录等信息
  • 选项-f:强制删除

su

  • 切换到指定用户
  • su 或 su -:切换到root用户

passwd

  • 修改指定用户的密码
  • 直接 passwd 表示修改当前用户的密码
  • 只有root用户或者本用户才能修改本用户的密码

kill -9 进程号

  • 强制杀死指定进程(需要root权限)

在命令前加上sudo

  • 表示使用root用户的权限执行当前命令

    • is not in the sudoers file. This incident will be reported.用户不在sudoers文件中,此事件将被上报。
  • 只有被添加到了 /etc/sudoders 文件中的指定用户才能申请执行root对应的权限。

  • 如果一个用户想要有sudo权限,必须先使用root用户把此用户添加到 /etc/sudoers 文件中。

  • 将用户添加到有sudo权限的组

    • Ubuntu:groups -a <用户名> sudo/admin
    • CentOS:groups -a <用户名> wheel

用户组的概念

  • 当创建用户时,会自动创建一个和它同名的分组

  • groups

    • 查看当前用户所在的分组
    • groups <用户名> 查看指定用户所在分组
  • gpasswd

    • -a <用户名> <组名> 将指定用户添加到指定的分组中
    • -d <用户名> <组名> 将指定组里的指定用户删除

用户和组相关的一些文件

  • /etc/passwd ==> 存储了系统中所有的用户信息myuser❌1001:1001::/home/myuser:/bin/bash用户名:密码:用户ID:组ID:主机名:/home/家目录:用户登录的脚本
  • /etc/shadow ==> 存储了用户的密码
  • /etc/group ==> 存储了分组相关的信息

vim的使用

vim是一个文件编辑工具,相当于记事本。第一步应该安装这个软件 yum install vim

vim有三种模式

  • 命令模式

    • 默认模式,只能接收命令,不能编辑文件内容

      • shift+z+z 保存并退出

      • dd 删除当前行的数据

      • ndd 持续删除当前行数据n次

      • u 撤销上一次操作

      • ctrl+r 取消上次的撤销动作

      • x

        • 删除当前光标所在字符
      • nx

        • 删除持续当前光标所在字符n次
      • yy

        • 复制当前行
      • nyy

        • 复制当前行以及后n-1行
      • p

        • 粘贴当前所复制或剪切的内容
      • np

        • 粘贴当前所复制或剪切的内容n次
      • shift+g 定位到最后一行

      • gg 定位到第一行

      • ngg 定位到第n行

      • shift+4 / end 定位到行尾

      • 0 / home 定位到行首

      • ctrl+b 上翻一页

      • ctrl+f 下翻一页

      • ctrl+u 上翻半页

      • ctrl+d 下翻半页

  • 插入模式

    • i 在当前光标位置前插入数据

      • 退出必须先按 Esc 进入命令模式才能退出
    • I 在当前行第一个非空字符前面插入数据

    • a 在光标的下一个字符插入数据

    • A 在当前行的行尾插入数据

    • s 删除当前光标所在位置字符,并插入数据

    • S 删除当前光标所在位置行,并插入数据

    • o 在光标所在行的下一行插入数据

    • O 在光标所在行的上一行插入数据

  • 底线命令模式

    • :w 保存

    • :q 退出

    • :q! 不保存,强制退出

    • :wq 保存并退出,等价于shift+z+z

    • :e! 放弃修改,恢复到上次保存后的状态

    • :set nu 设置行号

    • 在命令后加上 ! 表示强制执行

    • :n 光标定位到第n行

    • :/内容 查找指定内容,查找后,n查看下一次匹配的内容,N查看上一个匹配的内容

    • :%s/原内容/新内容

      • 默认查找所有行的第一个匹配到的内容进行替换
      • 加上/g 表示查找所有匹配到的内容替并替换
    • m,ns/原内容/新内容

      • 默认查找从第m到第n行中每行的第一个匹配到的内容进行替换
      • 加上/g 表示从第m到第n行中查找所有匹配到的内容替并替换

vim

  • 使用vim打开指定文件进行编辑
  • 在后面加上 +n 表示在第n行打开文件
  • 如果编辑了一个不存在的文件,会先创建文件再打开。

vim的配置文件

  • /etc/vimrc

    • 使用vim 打开vimrc文件,在最后一行添加 set nu 即可永久设置 vim打开后显示行的序号。
    • 在此文件修改可对所有用户生效
  • ~/.vimrc

    • 修改此文件只对当前登录的用户生效,对其它用户不生效

Linux里的配置文件介绍

/etc/bashrc

  • 修改此文件可进行某些操作,在此文件修改可对所有用户生效。
  • 进入root用户 vim /etc/bashrc 在最后一行输入alias 别名=‘命令 选项’ 然后退出终端再打开即可永久配置命令别名。

~/.bashrc

  • 在普通用户的家目录添加代码,代码只会在此用户生效

每次打开终端,都会自动执行配置文件里的代码

文件(夹)权限管理

chmod

  • 用来修改文件(夹)的权限

    • o:其他用户

      • chmod o+w 文件(夹)名 给指定文件(夹)的其他用户添加写入权限
    • u:所有者

      • chmod u+x 文件(夹)名 给文件(夹)的所有者添加执行权限
    • g:所属组

      • chmod g-w 文件(夹)名 去除指定文件(夹)所属组的写入权限
    • a:全部用户

      • chmod a-r 文件(夹)名 去除指定文件(夹)在全部用户的可读权限
    • chmod 775 文件(夹)名

权限值

  • r对应数字4,表示可读

    • 子主题 1
  • w对应数字2,表示可写

  • x对应数字1,表示可执行

默认权限

  • 文件:-rw-rw-r-- 664

  • 文件夹:drwxrwxr-x 775

  • umask 命令用来查看文件夹的默认权限,默认值是 0002,只看后三位,转换为九位数的二进制然后取反,即文件夹的权限。

    • umask 0022

      • 修改默认权限为755

压缩解压命令

zip / uzip

  • zip <压缩文件名> <[路径]/文件名>

    • 将指定文件进行压缩,并指定压缩文件名称,若指定路径,那么会将文件名前的文件夹包含指定文件进行压缩。
  • unzip <压缩文件名>

    • 将压缩文件进行解压

gzip / gunzip

  • gzip <文件名>

    • 将原来替换成 .gz 文件
    • 加上-k:保留原有的文件,生成一个新的压缩文件
    • 加上-r:将文件夹内所有文件替换成 .gz 文件
  • gunzip <文件名>

    • 将 .gz 文件替换会原来压缩前的文件

tar 打包命令,不会将内容进行压缩,反而还会变大。

  • 三种模式,不能同时使用

    • -c

      • 打包文件
    • -x

      • 拆包
    • -t

      • 查看文件内容
  • -f 指定文件

  • -v 查看过程

  • -z 使用gzip压缩、解压

    • tar -czvf 打包文件名.tgz 文件(夹)名

      • 将文件(夹)打包后压缩成一个 .tgz 文件
    • tar -zxvf 打包文件名.tgz

      • 将 .tgz 文件 进行解压并拆包
  • -j 使用bzip2进行压缩、解压

    • tar -cjvf 打包文件名.tbz 文件(夹)名

      • 将文件(夹)打包后压缩成一个 .tbz 文件
    • tar -jxvf 打包文件名.tbz

      • 将 .tbz 文件 进行解压并拆包
  • tar -cf 打包文件名 文件(夹)名

    • 将文件(夹)打包成一个 .tar 文件
  • tar -xf 打包文件名

    • 将打包好的 .tar 文件进行拆包
  • tar -tvf 打包文件名

    • 查看打包文件内的内容

nginx服务器

1. yum install nginx 安装nginx服务器

  • 或者

      1. 在官网下载源码 http://nginx.org/en/download.html
      1. 使用 tar -zxvf nginx-1.21.1.tar.gz 将文件 进行解压并拆包
      1. 进入解压后的文件夹,执行./configure --prefix=/usr/local/nginx进行配置
      • –prefix 用来指定安装路径

      • 配置的目的是为了查看当前系统是否能够安装此软件。在此过程中,可能会出现错误提示,提示需要安装第三方的依赖包。

        • 此时需要手动的运行命令安装依赖包
      • 依赖包安装完成后 再次执行./configure --prefix=/usr/local/nginx进行配置文件

      1. configure 命令执行成功后,会生成一个Makefile文件
      1. 执行 sudo make && sudo make install 来进行编译和安装
      1. 启动nginx
        1. cd /usr/local/nginx/sbin
        1. 执行 nginx文件 sudo ./nginx

2. systemctl start nginx.service 启动nginx服务器

  • firewall-cmd --zone=public --add-port=80/tcp --permanent 防火墙开放80端口的服务
  • systemctl restart firewalled.service 重启防火墙服务

3. 读取 /etc/nginx/nginx.conf 这个配置文件,此文件存放了nginx的配置信息。

  • 有两行配置信息非常重要

    • listen 80 default_server ==> 设置监听的端口
    • root /usr/share/nginx/html ==> 静态页面的存放路径

4. 当访问此主机IP时,会读取 /usr/share/nginx/html 里的文件。

管道和重定向

重定向

  • 操作符1 ’ > ':

    • 将指令的查询结果重定向到文件中,python环境所用的模块规定重定向到requirements.txt文件中。如果文件已存在,会将其覆盖。
  • 操作符2 ’>>‘

    • 将指令的查询结果重定向到文件中,如果文件已存在,会将执行结果追加到指定文件的最后方。
  • 分类

    • 标准输出,> / 1> 默认重定向标准输出
    • 错误输出,2> 将错误信息重定向到文件中
    • 全部输出,&> 将全部信息重定向到文件中

管道

  • 管道操作符是 ’ | ‘

    • 处理前一个指令传出的正确信息,并将其传递给管道符后的指令,作为这个命令的标准输入

    • 例如:ps -aux|grep nginx

      • 从正在运行的进程中,查询nginx服务

多个命令先后执行

命令1;命令2;命令3

  • 以’ ; ’ 分号分隔,执行完分号前的命令后再执行分号后的命令,按先后顺序执行命令

命令1 || 命令2

  • 先执行前面的命令,前面的命令执行失败后,才会执行后面的命令

命令1 && 命令2

  • 前后命令同时执行,如果前面的命令出错,那么后面的命令不会执行,前面的命令执行成功才会执行后面的命令。

服务监听

netstat:用来监听网络链接状态

  • -a 显示所有socket,包括正在监听的

  • -n 以网络IP地址代替名称,显示出网络连接情形

  • -o 显示与网络计时器相关的信息

  • -t 显示TCP协议的连接情况

  • -u 显示UDP协议的连接情况

  • -p 显示建立相关连接的程序名和PID

  • -anop[|grep :<端口号>]

    • 查看[指定端口号]网络连状态显示详细信息

Linux中的命令都对应了一个可执行文件

基本命令都在 /bin 目录下,python命令也在 /bin 目录下

ln 软件名 链接名

  • 给软件起别名

source <脚本文件名>

  • 执行脚本文件

ps -aux

  • 查看所有正在运行的进程

  • |grep <软件名>

    • 查看指定软件名正在运行的进程

Python3的安装

1. sudo yum install epel-release 安装epel扩展软件库

2. sudo yum -y install python3

  • -y 所有问题默认yes

python3 包的默认地址 /usr/local/lib/pyhton3.6/site-packages

sudo pip3 uninstall <模块名> 卸载已安装的指定python模块

配置python虚拟环境

    1. 执行 sudo pip3 install virtualenv 安装virtualenv
    1. 执行 sudo pip3 install virtualenvwrapper 安装virtualenvwrapper
    1. 使用sudo vim 编辑 ~/.bashrc 这个文件,在文件最后面添加
      1. export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6
      • 指定新虚拟环境默认的python版本为python3.6
      1. export WORKON_HOME=~/.envs
      • 指定创建新的虚拟环境保存的位置
      1. source /usr/local/bin/virtualenvwrapper.sh
      • 执行 virtualenvwrapper.sh 脚本
    1. 执行mkvirtualnev <文件夹名> 就能创建一个新的虚拟工作环境,放在了~/.envs中
    • 若文件夹虚拟环境已存在,那么会开启此文件夹的虚拟环境
    1. workon <虚拟环境文件夹名>
    • 切换指定文件夹的虚拟环境
    • 运行文件夹内的文件时,需要先运行同名文件夹的虚拟环境
    1. 使用 deactivate 退出虚拟环境
    1. rmvirtualenv <虚拟环境名> 移除指定虚拟环境

在Linux中默认

  • python == python2 == python2.7
  • python3 == python3.6

pip install -r requirements.txt

  • 下载文件内所列出的模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰忆往昔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值