Linux基础命令

文件和目录常用命令:

按下tab键可以自动补全或出现可能存在的命令

按上/下方向键可以在曾使用过的命令之间来回切换,按ctrl+c可以退出选择

在终端中对文件的操作都不能回撤

  • ls 查看目录下的内容【不止是当前目录下的!ls后面啥的不跟,默认就是当前目录;如果是ls py,就会显示py目录下的内容】

    • ls -a 显示隐藏文件【隐藏文件首字符为.】

    • ls -l 以列表的方式显示文件的详细信息

    • ls -h 配合-l 一起 以人性化的方式显示文件大小

    • ls 通配符的使用

      ? 只能代表一个字符

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vKTFM6nh-1596703539235)(D:\学习笔记\放在typora里的图片\1595580857466.png)]

  • cd 切换工作目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PC5YRpKJ-1596703539237)(D:\学习笔记\放在typora里的图片\1595581209332.png)]

  • pwd 查看当前所在目录

  • tree 以树状图列出目录结构

    -d 只显示目录,不显示文件

  • 创建和删除操作

    【在linux中,同一个目录下,目录与文件不能重名】

    • touch 文件不存在,则创建文件;文件存在,则修改文件的末次修改时间

    • mkdir 创建目录

      -p 可以递归创建目录

    • rm 删除文件;注意删除就不能恢复,会从磁盘中直接删除,不会进入垃圾桶;使用时一定要小心!!

      -r 递归删除目录;【用rmdir只能删除空文件夹,rm -r可以删除非空文件夹】

      -f 强制删除,文件不存在也不会报错

      rm也可以使用通配符进行删除

      【如果在根目录下执行 rm -rf * 整个系统就GG了】

  • 拷贝cp和移动mv文件

    • cp 源文件 目标文件

      -i 覆盖文件前提示

      -r 若源文件是目录,则cp -r将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名

    • mv 源文件 目标文件

      移动文件或目录;如果源文件和目标文件路径相同,则对其进行重命名;如果目标文件已存在,则会覆盖

      -i 覆盖文件前提示

  • 查看文件内容

    • cat 文件名

      concatenate 连接 查看文件内容、创建文件、文件合并、追加文件内容等;

      cat会一次显示所有的内容,适合查看内容较少的文本文件

      -b 对非空输出行编号 【Linux中还有一个命令nlcat -b效果等价】

      -n 对输出的所有行编号

    • more 文件名

      more命令用于分屏显示文件内容,每次只显示一页内容

      适合查看内容较多的文本文件

      使用more的操作键:【这个操作键和man一样】

      空格:显示下一页

      回车:显示下一行

      b:回滚一屏

      f: 前滚一屏

      q: 退出

    • grep 搜索文本 文件名

      grep命令是一种强大的文本搜索工具;【跟ctrl+f的效果一样】

      grep允许对文本文件进行模式查找,模式查找就是正则表达式

      -n 显示匹配行及行号

      -v 显示所有的不匹配行(相当于求反)

      -i 忽略大小写

      常用的两种模式查找:

      ^a 行首,搜索以a开头的行

      a$ 行尾,搜索以a结束的行

  • echo 文字内容

    echo会在终端中显示参数指定的文字,通常会和重定向联合使用

  • 重定向 > 和 >>

    Linux允许将命令执行结果重定向到一个文件

    将本应显示在终端上的内容 输出>追加>>指定文件中,如果该文件不存在则会新建

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

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

    # 覆盖,等于python中w模式的file.write('1');注意write()里只能写字符串
    echo hello! > 1
    # 追加,等于python中a模式的file.write()
    echo hello!! >> 1
    # 不管是输出还是追加,如果文件1不存在则都会新建
    
    ls -lh > a
    #把本应输出的文件列表写入了a文件中
    

    【touch创建新文件为空,用echo可以直接创建并往里面写入内容】

  • 管道 |

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

    就类似现实生活中的管子,管子的一头塞东西进去,另一头取出来。这里|的左右分为两端,左端写,右端读

    常用的管道命令有:

    • more:分屏显示内容

      # 把ls -lh 输出的结果分屏显示
      ls -lh | more
      
    • grep:在命令执行结果的基础上查询指定的文本

      # 例如想查找tree命令列出的目录里的带py的文本
      
      # 1.可以先通过重定向把tree的输出写入文件a,然后在a中查找py
      tree >> a
      grep py a
      
      # 2.直接通过管道来查询
      tree | grep py
      

远程管理常用命令

关机/重启

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

不指定选项和参数,默认表示1分钟之后关闭电脑;可以再输入shutdown -c取消操作

远程维护服务器时,最好不要关闭系统,而是重启系统;所以别忘记加上-r

shutdown 选项 时间

  • -r 重启
# 重启操作系统,now表示现在
shutdown -r now

# 立刻关机
shutdown now

# 20:25关机
shutdown 20:25

# 十分钟后自动关机
shutdown +10

#取消之前指定的关机计划
shutdown -c

查看或配置网卡信息

**ifconfig:**查看/配置计算机当前的网卡配置信息

网卡:网卡是一个专门负责网络通信的硬件设备;(电脑上连接网线的硬件设备就是网卡/有线网卡,无线网卡就是wifi)

IP地址是设置在网卡上的地址信息,是保证电脑之间进行网络通信的重要设置【有了地址才能找到人嘛,也就才能进行通信】,每台联网的电脑上都有一个唯一的IP地址。(IP地址本质上是标识网卡的)

  • 127.0.0.1:本地环回地址,用来测试本机网卡是否正常工作【就是可以ping一下寄几】
  • 一台计算机中有可能会有一个物理网卡和多个虚拟网卡,在Linux中,物理网卡的名字通常以ensXX表示
# 查看网卡对应的IP地址
ifconfig | grep inet

**ping ip地址:**检测到目标ip地址的连接是否正常

ping 127.0.0.1

远程登录和复制文件

ssh 用户名@ip

secure shell 作用:关机/重新启动

scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径

远程复制文件

SSH基础

在Linux中SSH是非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上。SSH客户端/服务器是一个软件

在linux和Unix操作系统上,SSH服务器和客户端都是默认安装的;而在Windows操作系统下,需要单独安装SSH客户端

SSH客户端/服务器是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序;

SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议:数据传输是加密的,防止信息泄露;数据传输是压缩的,提高传输速度

  • 利用SSH协议可以有效防止远程管理过程中的信息泄露:通过SSH协议可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗
  • SSH的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度
SSH客户端的简单实用
ssh [-p port] user@remote
# user是在远程机器上的用户名,不指定的话默认为当前用户
# remote是远程机器地址,可以是IP/域名/别名
# port是SSH Server监听的端口,如果不指定,默认为22
# 使用exit命令退出当前用户的登录

注意:

  • ssh这个终端命令只能在linux或者unix系统下使用;因为这俩系统自带ssh客户端和服务器
  • 如果在Windows系统中,可以安装PuTTY或者XShell客户端软件
  • 如果SSH服务器的端口号不是22,就需要使用-p选项,指定正确的端口号
scp

secure copy,在linux下用来进行远程拷贝文件的命令;cp是在本地拷贝文件

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

# 把本地当前目录下的 01.py 文件,复制到远程服务器 用户的home目录下的 Desktop/01.py
# 注意!`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp [-P port] 01.py user@remote:Desktop
# 把远程服务器 home目录下的 Desktop/01.py 文件 复制到本地当前目录下
scp [-P port] user@remote:Desktop/01.py 01.py

# 加上 -r 选项可以传递文件夹
# 把本地当前目录下的 demo 文件夹,复制到远程服务器 home目录下的 Desktop
scp -r demo user@remote:Desktop
# 把远程服务器 home目录下的 Desktop 复制到 本地当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo

【和cp命令很像,-r选项就是递归复制,用来复制目录的】

注意:

  • scp这个终端命令只能在linux或者unix系统下使用;

  • 如果在Windows系统中,可以安装PuTTY,使用pscp命令行工具或者FileZilla使用FTP进行文件传输

    【FileZilla在传输文件时,使用的是FTP服务而不是SSH服务,因此端口号应该设置为21!】【当然这是在Windows系统下才使用的】

####SSH高级

有关SSH配置信息都保存在用户家目录下的.ssh目录下

  • 免密码登录

    配置完之后,ssh登录或者scp复制就不需要再输密码了

    1. 配置公钥:在本机上执行ssh-keygen即可生成SSH钥匙,一路回车
    2. 上传公钥到服务器:在本机上执行ssh-copy-id [-p port] user@remote,可以让远程服务器记住我们的公钥;此时的user和remote是服务器用户名和ip

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PmfwlPUt-1596703539239)(D:\学习笔记\放在typora里的图片\1595656577109.png)]

  • 配置别名

    每次输入ssh -p port user@remote会很麻烦,尤其是每次都得输入user,remote和port;

    配置别名可以使用ssh cxy来替代上面那么一长串

    ~/.ssh/config里面追加以下内容:

    Host cxy
    	HostName ip地址
    	User 远程计算机的用户名
    	Port 22
    

    保存之后,即可用ssh cxy实现远程登录,scp同样可以使用

    # 把本地计算机的Desktop目录拷贝到远程计算机的用户cxy目录中的123目录
    scp -r Desktop cxy:123
    # 冒号一定不要忘记加!
    

用户权限相关命令

用户和权限的基本概念

用户:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-00fYAYm4-1596703539240)(D:\学习笔记\放在typora里的图片\1595666744347.png)]

组:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IRCRyTp0-1596703539241)(D:\学习笔记\放在typora里的图片\1595666873252.png)]

ls -l扩展:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sKy19sRJ-1596703539244)(D:\学习笔记\放在typora里的图片\1595667347909.png)]

修改权限终端命令

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

chmod +/-rwx 文件名/目录名
# 这种方式会一次性修改拥有者/组的权限

如果一个目录没有可执行权限x,那么用户就不能对其执行终端命令,例如:ls,cd等。【也就是说,可执行权限就是可以执行终端命令的权限!】

超级用户:

Linux系统中的root账号通常用于系统的维护和管理,对操作系统的所有资源具有访问权限

在大多数版本的Linux中,都不推荐直接使用root账号登录系统

在Linux安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就称为标准用户

root账号就可以添加用户、添加组、添加软件等等

sudo:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3enBMXvW-1596703539245)(D:\学习笔记\放在typora里的图片\1595668226969.png)]

组管理终端命令

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgECuBXJ-1596703539245)(D:\学习笔记\放在typora里的图片\1595668574666.png)]

/etc这个目录用来保存系统配置信息的相关文件】

sudo groupadd test
sudo groupdel test
cat /etc/group

# 创建0.1目录
mrdir 0.1
# 新建test组
sudo groupadd test
# 将0.1目录的组修改为test
sudo chgrp -R test 0.1/

chgrp -R 递归修改文件/目录的组,注意这里R要大写!】

系统信息相关命令

通过远程终端维护服务器时,可以通过以下命令查看服务器上当前的时间/日期、磁盘占用情况、程序执行情况

时间和日期

  • date 查看当前系统时间

  • cal 查看日历

    -y 查看一年的日历

磁盘和目录空间

  • df disk free 显示磁盘剩余空间

    -h 以人性化的方式显示文件大小【和ls -lh一样】

  • du [目录名] disk usage 显示目录下的子目录大小

    -h 以人性化的方式显示文件大小

进程信息

  • ps aux

    process status 查看进程的详细状况

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l94t8Ml4-1596703539246)(D:\学习笔记\放在typora里的图片\1595679492060.png)]

    【ps后面带选项的时候不需要带-号!】

    【ps au 显示的是通过终端启动的进程;经常用的就是ps au

  • top 动态显示运行中的进程并进行排序;按q退出

  • kill [-9] 进程代号 终止指定代号的进程,-9表示强行终止

其他命令

find 查找

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件

如果省略路径,表示在当前文件夹下查找

find [路径] -name "*.py" 查找指定路径下扩展名是.py的文件,包括子目录;注意和通配符结合一起用

软链接

ln -s 被链接的源文件 链接文件 建立文件的软链接,就类似于Windows下的快捷方式;当前工作目录是哪儿就会在哪儿建;如果把源文件删除,软链接文件会失效,而硬链接文件不会

  • 没有-s选项的ln建立的是一个硬链接文件
  • 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用;否则再移动软链接文件后,它就无法正常工作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QGsbSl2b-1596703539246)(D:\学习笔记\放在typora里的图片\1595683392626.png)]

软链接文件中保存的是文件名【文件描述符】,是链接文件数据的路径,一旦文件名被删除,软链接就失效;而硬链接是文件的另外一个名字,通过硬链接可以直接访问到存储在磁盘中的文件数据,如果想删除有硬链接的文件,必须把源文件和所有的硬链接文件都删除,文件数据才会从磁盘中被删掉

注意:

  • 在Linux中,只有文件的硬链接数==0,该文件才会被删除
  • 使用ls -l可以查看一个文件的硬链接数量
  • 在日常工作中,几乎不会建立文件的硬链接

打包和压缩

在不同的os中,常用的打包压缩方式是不同的;

windows常用rar

mac常用zip

linux常用tar.gz

tar是Linux中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件,命令格式如下:

【注意!tar只负责打包,不负责压缩!tar和gzip命令结合可以实现文件的 打包和压缩】

# 打包文件
tar -cvf 打包文件.tar 被打包的文件/目录

# 解包文件
tar -xvf 打包文件.tar

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SqidlJE7-1596703539248)(D:\学习笔记\放在typora里的图片\1595688242178.png)]

【一般都是固定顺序,打包tar -cvf,解包tar-xvf

【在Linux中,最常见的压缩文件格式就是xxx.tar.gz;tar负责打包,gzip压缩tar包,其扩展名一般用xxx.tar.gz】

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

# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/目录

# 解压缩文件
tar -zxvf 打包文件.tar.gz 

# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径

-C 解压缩到指定目录,要解压缩的目录必须存在!

bzip2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7xvG7jne-1596703539249)(D:\学习笔记\放在typora里的图片\1595694092182.png)]

软件安装

apt Advanced Packaging Tool,是Linux下的一款安装包管理工具

# 安装
sudo apt install 软件名

# 卸载
sudo apt remove 软件名

# 更新已安装的包
sudo apt upgrade

【在Linux中,最常见的压缩文件格式就是xxx.tar.gz;tar负责打包,gzip压缩tar包,其扩展名一般用xxx.tar.gz】

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

# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/目录

# 解压缩文件
tar -zxvf 打包文件.tar.gz 

# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径

-C 解压缩到指定目录,要解压缩的目录必须存在!

bzip2

[外链图片转存中…(img-7xvG7jne-1596703539249)]

软件安装

apt Advanced Packaging Tool,是Linux下的一款安装包管理工具

# 安装
sudo apt install 软件名

# 卸载
sudo apt remove 软件名

# 更新已安装的包
sudo apt upgrade
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值