Linux操作指令

参考链接:https://www.bilibili.com/video/BV1W4411A7yf?p=85

  1. 常见命令

    • Ctrl ++放大终端窗口,Ctrl +-缩小终端窗口
    # 查看当前文件夹下的内容,-a 显示指定目录下所以子目录和文件,包括隐藏文件。-l 显示文件的详细信息。-h显示文件大小.
    $ ls
    $ ls -lha
    # 查看当前所在文件夹
    $ pwd 
    
    # 新建文件
    $ touch a.py
    
    # 创建目录
    $ mkdir demo
    
    # 切换文件夹
    $ cd demo
    
    # 切换到上一个目录
    $ cd -
    
    # 清屏
    $ clear
    
    # 查询命令的帮助信息--help
    $ mkdir --help
    
  2. 通配符的使用
    *代表任意个字符,必须代表一个任意字符

    # 查找当前目录下所以第一个字符是1的文件
    $ ls 1*
    
  3. vim的使用
    常用命令vim a.py打开文件。进入后用i键进入编辑模式,保存退出先Esc退出编辑,再输入:wq完全退出vim页面。
    vim打开多个文件,例如vim a.py b.c -p
    切换下一个文件: :bn
    切换上一个文件: :bp

  4. 删除命令

    # 删除指定的文件名
    $ rm a.py
    
    # 删除目录
    $ rm -r demo
    
    # 删除当前位置所有文件
    $ rm -r *
    
    # 删除文件夹的内容包括文件夹
    $ rm -rf demo
    
  5. tree树状图

    # 树状图列出文件目录结构
    $ tree
    # 只显示目录
    $ tree -d
    # 家目录下结构
    $ tree ~
    
  6. cp复制文件

    # 将文件或目录复制到 另一个文件或目录中
    $ cp 源文件 目标文件
    $ cp ~/document/13.txt . #~表示家目录,. 表示当前目录
    
  7. mv移动命令

    # 移动文件或目录
    $ mv demo /home/lidan/document
    
  8. cat查看命令

    # 查看文件内容
    $ cat a.py
    
  9. grep 允许对文本文件进行模式查找

# 文件中查找abc
$ grep abc 123.txt
# 显示行号
$ grep -n abc 123.txt
# 显示不包含abc的文本
$ grep -v abc 123.txt
# 忽略abc的大小
$ grep -I abc 123.txt
# 行首查找
$ grep ^abc 123.txt
# 每一行结尾查找
$ grep abc$ 123.txt
  1. echo会在终端中显示参数指定的文字,通常回合重定向和追加联合使用,例如在终端中输入:
$ echo hello world

会将hello world输出到终端中。

  1. 重定向>和追加>>

    Linux允许将命令执行结果重定向到一个文件,也就是将本应显示在终端上的内容输出、追加到指定文件

    >表示输出,会覆盖文件原有的内容。

    >>表示追加,会将当前内容追加到已有文件的末尾。

    例如:

    $ echo hello world > file_a
    $ echo tree >>file_a
    

    首先将hello world写入到file_a文件中,然后将当前目录下的tree分支写在file_a文件中的hello world下面。

  2. 管道 |

    Linux允许将一个命令的输出可以通过管道作为另一个命令的输入

    常用的管道命令有:

    more:分屏显示内容

    grep:在命令执行结果的基础上查询指定的文本

    例如:

    $ ls -al | more
    $ ls -al | grep ros
    

    (1) 先获取文件列表,然后通过管道 | 将输出执行more命令,可以得到文件列表分屏显示。

    (2) 先获取文件列表,然后通过管道 | 将输出执行grep命令,可以查找带ros文件名的文件。

  3. 关机

    shutdown命令可以关闭或者重新启动系统

    • 直接运行shutdown默认表示1分钟之后关闭电脑
    • 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
    # 重新启动,其中now表示现在
    $ shutdown -r now
    
    # 立刻关机,其中now表示现在
    $ shutdown now
    
    # 系统在今天的20:25会关机
    $ shutdown 20:25
    
    # 取消之前的关机计划
    $ shutdown -c
    
    #立即重启
    sudo reboot
    
    #立即关机
    sudo poweroff
    
  4. IP地址

    • IP地址是设置在网卡上的地址信息

    • 每台联网的电脑上都有IP地址,是保证电脑直接正常通讯的重要设置

    注意:每台电脑的IP地址不能相同,否则会出现IP地址冲突,并且没有办法正常通讯

  5. ifconfig

    ifconfig可以查看计算机当前的网卡配置信息

    # 查看网卡配置信息
    $ ifconfig
    
    # 查看网卡对应的IP地址
    $ ifconfig | grep inet
    

    提示:一台计算机中有可能会有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通讯以ensXX表示。

    • 127.0.0.1被称为本地回环/环回地址,一般用来测试本机网卡是否正常
  6. ping

    • ping一般用于检测当前计算机到目标计算机之间的网络是否通畅,数据越大,速度越慢
    # 检测目标主机是否连接正常
    $ ping 其他主机IP地址
    
    # 检测本地网卡工作是否正常
    $ ping 127.0.0.1
    
    • 网络管理员之间也常将ping用作动词–ping一下计算机x,看他是否开着
    • 要想终止终端程序的执行,绝大多数可以使用ctrl+C

    原理:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在

  7. 远程登录和复制文件

    16.1 ssh介绍

    在Linux中ssh是常用的工具,通过ssh客户端我们可以连接到正在运行的ssh服务器的远程机器上

    • ssh客户端是一种使用Secure Shell (SSH)协议连接到远程计算机的软件程序

    • ssh是目前比较可靠,专为远程登录会话和其他网络服务提供安全性的协议

      • 利用ssh协议可以有效防止远程管理过程中的信息泄露
      • 通过ssh协议可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗
    • ssh的另一项优点是传输的数据可以经过压缩的,所以可以加快传输的速度

    16.2 域名和端口号

    域名:是由一串用点分隔的名字组成,例如:www.baidu.com,是IP地址的别名,方便用户记忆

    端口号

    • IP地址:通过IP地址找到网络上的计算机

    • 端口号:通过端口号可以找到计算机上运行的应用程序

      • ssh服务器的默认端口号是22,如果是默认端口号,在连接时可以省略
    • 常见服务端口号列表:

      序号服务端口号
      01SSH服务器22
      02Web服务器80
      03HTTPS443
      04FTP服务器21

    16.3 ssh客户端的简单使用

    $ ssh [-p port] user@remote
    
    • user是在远程机器上的用户名,如果不指定的话默认为当前用户

    • remote是远程机器的地址,可以是IP/域名,或者是后面提到的别名

    • port是ssh server监听的端口,如果不指定,就为默认值22

      提示:

      • 使用exit退出当前用户的登录
      • 在工作中,ssh服务器的端口号可能不是22,遇到这种情况需要使用-p选项,指定正确的端口号,否则无法正常连接到服务器

      注意:ssh第一次若没有运行成功,应该是没有安装

  8. scp

    • scp就是secure copy,是一个在Linux下用来进行远程拷贝文件的命令

    • 它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P而不是小写的

    # 把本地当前目录下的01.py文件复制到远程家目录下的Desktop/01.py
    # 注意:':'后面的路径如果不是绝对路径,则以用户的家目录作为参照路径,port正常是22
    $ scp -P (port) 01.py user@remote:Desktop/01.py
    $ scp -P 22 b.py lidan@192.168.1.102:demo/b.py (例如)
    
    # 把远程家目录下的Desktop/01.py文件复制到本地目录下的01.py
    $ scp -P (port) user@remote:Desktop/01.py 01.py
    $ scp -P 22 lidan@192.168.1.102:demo/a.py . (例如)
    
    # 加上-r选项可以传送文件夹
    # 把当前目录下的demo文件夹复制到远程家目录下的Desktop
    $ scp -r demo user@remote:Desktop
    
    # 把远程家目录下的Desktop复制到当前目录下的demo文件夹
    $ scp -r user@remote:Desktop demo
    $ scp -r lidan@192.168.1.102:demo
    
  9. ssh公钥 id_rsa.pub和私钥 id_rsa

    • 使用公钥加密的数据,需要使用私钥解密
    • 使用私钥加密的数据,需要使用公钥解密

    将公钥使用ssh-copy-id传给服务器后,本地将带有私钥加密的文件传给服务器,由于服务器已有了公钥就可以将私钥加密文件解密。相同,服务器使用上传的公钥加密文件进行传输,本地可以使用私钥解密。
    windows上传密钥到linux中,使用windows的git bash终端进行操作,进入.ssh文件夹中,输入以下命令就将密钥上传到远端。

     ssh-copy-id -i id_rsa.pub lidan@192.168.1.102
     ssh-copy-id lidan@192.168.1.102  #linux上传密钥到远端
    
  10. 配置别名

    配置别名可以使用ssh car代替ssh ucar@192.168.1.102,可以方便我们记忆,主要是在~/.ssh/config文件里面进行配置:

    Host car
    	Hostname 192.168.1.102
    	User ucar
    	Port 22
    
  11. 用户和权限的基本概念

    • 用户管理包括用户和组管理

    • 在Linux中,可以指定每一个用户针对不同的文件或者目录的不同权限

    • 对文件/目录的权限包括:

    序号权限英文缩写数字代号
    01readr4
    02writew2
    03执行excutex1

    :为了方便用户管理,提出了组的概念,一个组中的所有成员的权限是一致的。

  12. 通过 ls -l 看权限

    ls -l 可以查看文件夹下文件的详细信息,从左到右依次是:

    image-20210819143242590
    • 权限,第一个字符如果是d表示目录,-表示文件

    • 硬链接数,通俗地讲,就是有多少种方式,可以访问到当前目录/文件

    • 拥有者,家目录下文件/目录的拥有者通常都是当前用户

    • 组,

    • 大小

    • 时间

    • 名称

    photo

  13. chmod简单使用

    • chmod可以修改用户/组对文件/目录的权限

    • 命令格式如下

    $ chmod +/-rwx 文件名|目录名
    
    # 添加执行权限
    $ chmod +x a.py
    $ chmod +x test
    # 减少可读权限
    $ chmod -r b.py
    $ chomd -r test
    
  14. 超级用户sudo

    • 在Linux安装过程中,系统会自动创建一个用户账号,为标准用户,不具有所有访问权限

    • su是substitute user的缩写,表示使用另一个用户的身份

    • sudo命令用来以其他身份来执行命令,预设的身份为root

    • 用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限必须重新输入密码

  15. 组管理终端命令

    提示:创建组/删除组的终端命令都需要通过sudo执行

    • 组信息保存在/etc/group文件中
    • /etc目录是用来保存系统配置信息的目录
    # 添加组groupadd
    $ sudo groupadd dev
    
    # 删除组groupdel
    $ sudo groupdel dev
    
    # 确认组信息
    $ cat /etc/group
    
    # 修改文件/目录的所属组
    $ sudo chgrp -R 组名 文件/目录名
    $ sudo chgrp -R dev python学习 #如图python学习的组已改成dev
    

    2021-08-19 19-25-29屏幕截图

  16. 创建用户

    # 添加新用户,-m自动建立用户家目录,-g指定用户所在的组,否则会建立一个和同名的组
    $ sudo useradd -m -g 组 新建用户名
    $ sudo useradd -m -g dev zhangsan
    
    # 设置用户密码,如果是普通用户,直接用passwd 修改自己的密码
    $ sudo passwd 用户名
    $ sudo passwd zhangsan
    
  17. 删除用户

    # 删除用户,-r选项会自动删除用户家目录
    $ sudo userdel -r 用户名
    $ sudo userdel -r lisi
    

    创建用户时,如果忘记添加-m选项指定新用户的家目录–最简单的方法就是删除用户,重新创建

  18. 查看用户信息

    # 查看用户UID和GID信息
    $ id [用户名]
    $ id lisi
    $ cat -n /etc/passwd | grep lisi
    
    # 查看当前所有登录的用户列表
    $ who
    # 查看当前登录用户的账户名
    $ whoami
    

    2021-08-19 21-27-52屏幕截图

    2021-08-19 21-35-09屏幕截图

    passwd文件

    /etc/passwd文件存放的是用户的信息,有6个分号组成的7个信息,分别是

    • 用户名
    • 密码(x,表示加密的密码)
    • UID(用户标识)
    • GID(组标识)
    • 用户全名或本地账号
    • 家目录
  19. usermode

    • usermode可以用来设置用户的主组/附加组和登录shell,命令格式如下:

    • 主组:通常在新建用户时指定,在etc/passwd的第4列GID对应的组

    • 附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限

      提示:设置了用户的附加组之后,需要重新登录(重启终端)才能生效

    # 修改用户的主组(passwd中的GID)
    $ usermod -g 组 用户名
    
    # 修改用户的附加组(group)
    $ usermod -G 组 用户名
    # 给张三增加sudo权限
    $ cat -n /etc/group | grep lidan #查看当前用户有哪些权限
    $ sudo usermod -G sudo zhangsan
    # 修改用户登录 Shell(新建用户终端shell中只有$,没有用户名)
    $ usermod -s /bin/bash 
    $ sudo usermod -s /bin/bash zhangsan
    
  20. which

    提示

    • /etc/passwd是用于保存用户信息的文件
    • /usr/bin/passwd是用于修改用户密码的程序
    • which命令可以查看执行命令所在位置
    # 查看ls和useradd命令所在位置
    $ which ls
    $ which useradd
    

    binsbin

    • 在Linux中,绝大多数可执行文件都是保存在/bin/sbin/usr/bin/usr/sbin
    • /bin(binary)是二进制执行文件目录,主要用于具体应用
    • /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
    • /usr/bin(user commands for applications)超级用户的一些管理程序
  21. 切换用户

    # 切换用户,并且切换目录,- 可以切换带用户家目录,否则保持位置不变
    $ su - 用户名
    $ su - zhangsan
    # 退出当前登录账户
    $ exit 
    
    • su不接用户名,可以切换到root,但是不推荐使用,因为不安全

    • exit示意图如下

    image-20210820155525755
  22. 修改文件权限

    • chown:修改拥有者

    • chgrp:修改组

    • chmod:修改权限

    # 修改文件|目录的拥有者
    $ chown 用户名 文件名|目录名
    $ sudo chown zhangsan python学习
    # 递归修改文件|目录的组
    $ chgrp -R 组名 文件名|目录名
    $ sudo chgrp -R dev python学习
    # 递归修改文件权限
    $ chmod -R 755 文件名|目录名
    $ chmod 751 a.py
    $ chmod -R 777 demo
    
    • 常见数字组合有(u表示用户 / g 表示组 / o表示其他)
      • 777 ===> u=rwx, g=rwx, o=rwx
      • 755 ===> u=rwx, g=rx, o=rx
      • 644 ===> u=rw, g=r, o=r

    image-20210820161459662y

  23. 系统信息–时间和日期

    # 查看系统时间
    $ date
    
    # calendar查看日历,-y选项可以查看一年的日历
    $ cal
    $ cal-y
    
  24. 磁盘信息

    # disk free显示磁盘剩余空间,-h是可以将内存转化为kb,M,G
    $ df -h
    
    # disk usage显示目录下的文件大小
    $ du -h
    
  25. 进程信息

    • 所谓进程,通俗地说就是当前正在执行的一个程序

      # process status查看进程的详细状况
      $ ps  #显示用户终端启动的应用程序
      $ ps aux
      
      # 动态显示运行中的进程并且排序,输入q退出
      $ top
      
      # 终止指定代号的进程,-9表示强行终止
      $ kill -9 进程代号
      
      • a :显示终端上的所有进程,包括其他用户的进程

      • u :显示进程的详细状态

      • x :显示没有控制终端的进程

      提示:使用kill命令,最好只终止有当前用户开启的进程,不要终止系统进程

  26. 查找文件

    • find命令用来在特定的目录下搜索符合条件的文件
    # 查找指定路径下扩展名是.py的文件
    $ find 路径 -name "*.py"
    $ find 桌面 -name "*.py"
    
    # 查找当前目录下文件包含1的文件
    $ find -name "*1*"
    
    # 查找当前目录下,所有以.txt为扩展名的文件
    $ find -name "*.txt"
    
  27. 软链接

    # 建立文件的软链接,类似于win10的快捷方式
    $ ln -s 源文件路径 链接文件
    $ ln -s /home/lidan/桌面/demo a.py  #绝对路径
    
    • 没有-s选项建立的是一个硬链接文件,硬链接占用相同大小的硬盘空间,工作中几乎不会使用硬链接
    • 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能正常使用
  28. 硬链接

    • 使用ln创建链接时,如果没有-s选项,会创建一个硬链接,很像将文件复制,即使将源文件删除,硬链接依然可以访问文件
  29. 打包解包

    • tar可以把一系列文件打包到一个大文件中,也可以把打包的大文件恢复成一系列文件

    • tar操作并没有压缩文件

    # 打包文件
    $ tar -cvf 打包文件.tar 被打包文件 被打包文件 ...
    $ tar -cvf py.tar 01.py 02.py 03.py
    
    #解包文件
    $ tar -xvf 打包文件.tar
    $ tar -xvf py.tar
    
  30. 压缩/解压缩

    • gz压缩

    • 在Linux中,常见的压缩文件是xxx.tar.gz

    • 在tar命令中有一个选项-z可以调用gzip,从而可以方便的实现压缩和解压缩的功能

    # 压缩文件
    $ tar -zcvf 打包文件.tar.gz 被压缩文件
    $ tar -zcvf py.tar.gz *.py
    
    # 解压缩文件
    $ tar -zxvf 打包文件.tar.gz 
    $ tar -zxvf py.tar.gz
    $ tar -zxvf py.tar.gz -C 目标路径 #-C解压到目标路径
    
    • bzip2压缩

    • tar命令中有一个选项-j可以调用bzip2,实现压缩解压缩功能

    # 压缩文件
    $ tar -jcvf 打包文件.tar.gz 被压缩文件
    $ tar -jcvf py.tar.gz *.py
    
    # 解压缩文件
    $ tar -jxvf 打包文件.tar.gz 
    $ tar -jxvf py.tar.gz
    $ tar -jxvf py.tar.gz -C 目标路径 #-C解压到目标路径
    
  31. 软件安装

    • aptadvanced packaging tool ,是Linux下的一款安装包管理工具
    # 安装软件
    $ sudo apt install 软件包
    
    # 写在软件
    $ sudo apt remove 软件名
    
    # 更新已安装的包
    $ sudo apt upgrade
    
  32. 配置软件源

    镜像源就是所有服务器的内容是相同的,但是根据位置不同,国内服务器速度更快一点。

  33. .deb文件安装

    $ sudo dpkg -I package.deb
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值