Linux基础

常用Linux命令的基本使用
ls 查看当前文件夹下的内容
pwd 查看当前文件夹下的目录
clear 清屏
cd[目录名] 切换文件夹
touch[文件名] 如果文件不存在,新建文件
mkdir[目录名] 创建目录
rm[文件名] 删除指定文件名
rmdir[目录名] 删除指定目录(空目录)
rm -r [目录名] 删除指定目录(可以是非空目录)
 
快捷键
  放大终端窗口的字体显示 ”CTRL 加 shift 加 =“
  缩小终端窗口的字体显示“CTRL 加  -”
自动补全
  在敲出文件/目录/命令的前几个字母后,按Tab键
  如果输入没有歧义,系统自动补全
  如果还存在其他文件/目录/命令,在按一下tab键(一共按了两下tab键),系统会提示可能存在的命令
曾经使用过的命令
  按 上/下 光标键可以在曾经使用过的命令之间来回切换
如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c
 
Linux终端命令格式
  command [-options] [parameter]
  command: 命令名,相应功能的英文单词或单词的缩写
  [-options]: 选项,可用来对命令进行控制,也可省略
  parameter:传给命令的参数,可以是零个,一个,或多个
  []代表可选
 
查阅命令帮助信息
  --help
  command --help 显示command命令的帮助信息
  man
  man command 查阅command命令的使用手册
  man是manual’手册‘缩写,是Linux提供的手册,包含绝大部分的命令,函数的详细使用说明
  man的操作键:
操作键
功能
空格键
显示手册页的下一屏
Enter键
一次滚动手册页的一行
b
回滚一屏
f
前滚一屏
q
退出
 
文件和目录常用命令
  查看目录内容
    ls:列出目录的内容,类似于DOS下的dir命令 list
    Linux文件或目录名称最长可以有256个字符
    以 . 开头的文件为隐藏文件,需要 ls -a 才能显示
    . 代表当前目录
    ..代表上一目录
    ls常用选项
      -a 显示指定目录下所有子目录与文件,包括隐藏文件(以.开头的文件名)
      -l 以列表方式显示文件的详细信息
      -lh 以人性化的方式显示文件大小
      -alh 以人性化的方式显示所有文件大小(包括隐藏文件)
    ls 通配符的使用(文件或目录名后缀也包括)
      * 代表任意个数个字符串(包括零个)
      ?代表任意一个字符,至少一个
      [] 表示可以匹配字符组中的任意一个
      [abc] 匹配a,b,c中的任意一个
      [a-f] 匹配从a 到f 范围内的任意一个字符
 
切换目录
  cd 更改当前的工作目录 change directory
  注意:Linux所有的目录和文件名都是大小写敏感的
  cd 切换到当前用户的主目录(/home/用户目录)
  cd ~  切换到当前用户的主目录(/home/用户目录)
  cd .  保持在当前目录不变
  cd ..  切换到上级目录
  cd -  可以在最近两次工作目录之间来回切换
  相对路径与相对路径   (/:根目录)
 
创建和删除操作
  touch 创建文件或修改文件时间
    如果文件不存在,可以创建一个空白文件
    如果文件存在,可以修改文件的末次修改日期
  mkdir 创建一个新的目录
    -p 可以递归创建目录
    新建目录的名称不能与当前目录中已有的目录或文件同名
  rm 删除文件或目录
    文件删除后不能恢复
    -r  递归地删除目录下的内容,删除文件夹时必须加此参数
    -f  强制删除,忽略不存在的文件,无需提示
    rm + 通配符使用
    rmdir 删除文件夹(空文件夹)
 
拷贝和移动文件
  tree 命令可以以树状图列出文件目录结构
    -d 只显示目录
  cp 命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令
    cp 源文件 目标文件(目标文件没有则创建)
    -f 已经存在的目标文件直接覆盖
    -i 覆盖文件前提示
    -r 若给出的源文件是目录文件,则cp
       将递归复制该目录下的所有目录和文件,目录文件必须为一个目录名
  mv 命令可以用来移动文件或目录,也可以给文件或目录重命名
    mv 源文件 目标文件(目标文件没有则创建)
    -i 覆盖前提示
查看文件内容
  cat 文件名   查看文件内容,创建文件,文件合并,追加文件内容等功能 concatenate’链接,合并‘
    一次性显示所有内容,适合较少的内容
    -b 对非空输出行编号
    -n 对输出的所有行编号
    Linux 中还有一个nl命令和 cat -b效果相同
  more 文件名 分屏显示文件内容 适合较多的内容
    空格键 显示下一屏
    enter键 向下一行
    b 回滚一屏
    f 前滚一屏
    q 退出
    /word 搜索 word字符串
  grep 搜索的文本 文件名 搜索文本文件内容
    强大的文本搜索工具
    grep允许对文本文件进行模式查找(正则表达式)
    -n 显示匹配行及行号
    -v 显示不包括匹配行的所有行(相当于取反)
    -i 忽略大小写
    常用的两种模式查找:
      ^a  行首,搜索以a开头的行
      ke$ 行尾,搜索以ke结尾的行
其它
  echo 文字内容  在终端中显示参数指定的文字,通常会和重定向联合使用,可以创建并写入内容
 
重定向 > 和 >>
  Linux允许将命令执行结果重定向到一个文件夹
  将将本应在终端上的内容输出/追加到指定文件夹中
  > 表示输出,会覆盖文件原有内容
  >> 表示追加,会将内容追加到已有文件的末尾
  重定向可以把输出内容保存下来
 
 
管道 |  将一个命令的输出通过管道作为另一个命令的输入
  常用的管道命令:
  more 分屏显示内容
  grep 在命令执行结果的基础上查询指定的文本
 
 

远程管理常用命令

关机/重启

  shutdown 选项 时间  关机/重新启动

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

  -r 重新启动

  不指定选项和参数,默认一分钟后关闭电脑

  远程维护服务器时,最好不要关闭系统,应该重新启动系统

  常用命令实例

    $ shutdown -r now 立即重启操作系统

    $ shutdown now 立即关机

    $ shutdown 20:25 在20:50关机

    $ shutdown +10 十分钟后关机

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

查看或配置网卡信息

  网卡是一个专门负责网络通讯的硬件设备

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

  ifconfig  查看/配置计算机当前的网卡配置信息 configure a network interface

  Windows ipconfig

  一台计算机中可能会有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以ens

表示

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

  ping ip地址  检测目标ip地址连接是否正常

  ping 127.0.0.1 检测本地网卡工作正常

  ping一般用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢

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

CTRL+C 终止终端程序的执行

远程登陆和复制文件

ssh 用户名@ip  关机/重新启动

  在Linux中ssh是非常常用的工具,通过ssh客户端我们可以连接到运行了ssh服务器的远程机器上,数据是加密和压缩的。

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

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

  利用ssh协议可以有效防止远程管理过程中的信息泄露

  通过ssh协议可以对所传输的数据进行加密,防止DNS欺骗(攻击者冒充域名服务器https://baike.baidu.com/item/DNS欺骗)和IP欺骗(伪装成被信任主机https://baike.baidu.com/item/ip地址欺骗/7838200

域名和端口号

  域名:由一串用点分割的名字组成,例如:https://baike.baidu.com/item/域名。域名是ip地址的别名,方便记忆。

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

  SSH服务器的默认端口号是22,如果是默认端口号,在连接时可以省略

  常见服务端口号列表:

序号

服务

端口号

1

SSH服务器

22

2

Web服务器

80

3

HTTPS

443

4

FTP服务器

21

SSH客户端的简单使用

ssh [-p port] user@remote

    user 是在远程机器上的用户名,如果不指定的话默认为当前用户

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

    port 是SSH Server监听的端口,如果不指定,就为默认值22

  使用exit退出当前用户登陆

  Windows下安装PuTTY或XShell(http://xshellcn.com)客户端软件

  在工作中,SSH服务器的端口号很可能不是22,需要用-p选项,指定正确的端口号

  Xhell连接Linux百度经验          https://jingyan.baidu.com/article/3aed632e2b68da70108091d2.html

  ssh连接失败经验csdn  https://blog.csdn.net/junbujianwpl/article/details/50936995

scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径   远程复制文件

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

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

  scp -P port 01.py user@remote:Desktop/01.py

    把本地当前目录下的01.py文件复制到远程家目录下的Desktop/01.py。如果‘:’后面的路径不是绝对路径,则以用户的家目录作为参照路径

  scp -P port user@remote:Desktop/01.py 01.py

    把远程家目录下的文件复制到本地当前目录下

  scp -r demo user@remote:Desktop

    -r 选项可以传送文件夹

    把当前目录下的demo文件夹复制到远程家目录的Desktop

  scp -r user@remote:Desktop/demo demo

    把远程Desktop目录下的demo文件夹复制到当前目录下的demo文件夹

  -r 若给出的源文件是目录文件,则scp 

  将递归复制该目录下的所有子目录和文件,目录文件必须为一个目录名

  -P 若远程SSH服务器的端口不是22,则需要使用大写字母-P选项指定端口

  scp这个终端命令只能在Linux或者UNIX系统下使用

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

  FileZilla  https://www.filezilla.cn/download/client

Filezilla在传输文件时,使用的是FTP服务,不是SSH服务,因此端口号应该设置为21

  在FileZilla 中:

  - 用sftp协议连接Server ,需要用port 22

  - 用ftp协议连接Server, 用port21

  FTP,FTPS,SFTP区别                   https://blog.csdn.net/shmilychan/article/details/51848850

ssh高级

免密码登陆

  配置公钥

    执行ssh-keygen 即可生成SSH钥匙,一路回车

  上传公钥到服务器

    执行ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥

  非对称加密算法

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

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

配置别名

  gedit config  使用gedit创建并打开config

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

    Host 别名

    HostName IP地址

    User 用户名

    Port 22

保存之后,即可以用 ssh 别名 实现远程登陆了,scp同样可以使用

用户权限相关命令

  用户和权限的基本概念

    用户是Linux系统工作中重要的一环,用户管理包括用户和组管理

    在Linux系统中,不论由本机或远程登陆系统,每个系统必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限

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

权限

英文

缩写

数字代号

read

r

4

write

w

2

执行

excute

x

1

  为了方便用户管理

  实际应用中,可以先针对组设置权限,然后将不同的用户添加到对应的组中

ls -l 拓展

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

  权限,第一个字符如果是d表示目录

  硬链接数,就是有多少种方式可以访问到当前目录/文件下图祥解

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

  组,在Linux中,会出现组名和用户名相同的情况

  大小

  时间

  名称

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

  chmod +/-rwx 文件名/目录名

      会一次性修改拥有者/组的权限

超级用户

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

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

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

  sudo

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

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

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

     若未经授权的用户企图使用sudo,则会发警告邮件给管理员

组管理终端命令

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

  groupadd 组名  添加组

  groupdel 组名  删除组

  cat /etc/group  确认组信息 (组信息保存在 /etc/group 文件中)

  chgrp -R 组名 文件/目录名  修改文件/目录的所属组

  组信息保存在 /etc/group 文件中

  /etc 目录时专门用来保存系统配置信息的目录

用户管理终端命令

  useradd -m -g 组 新建用户名  添加新用户 -m自动建立用户家目录 -g指定用户所在的组,否则会建立一个和用户名同名的组

  passwd 用户名 设置用户密码  如果是普通用户,直接用passwd可以修改自己的账户密码

  userdel -r 用户名 删除用户  -r选项会自动删除用户家目录

  cat /etc/passwd | grep 用户名  确认用户信息 新建用户后,用户信息会保存在/etc/passwd 文件中

  提示:

    创建用户时,如果忘记添加-m选项下指定新用户的家目录,可以删除用户,重新创建

    创建用户是,默认会创建一个和用户名同名的组名

  用户信息保存在/etc/passwd 文件中

  查看用户信息

    id[用户名] 查看用户UID(用户代号)和GID(组代号)信息

    who  查看当前所有登陆的用户列表

    whoami  查看当前登陆用户的账号名who am i

  passwd文件

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

    1,用户名

    2,密码(x,表示加密的密码)

    3,UID(用户标识)

    4,GID (组标识)

    5,用户全名或本地账号

    6,家目录

    7,登陆使用的Shell,就是登陆后,使用的终端命令,Ubuntu默认是dash

  usermod

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

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

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

    提示:设置了用户的附加组之后,需要重新登陆才能生效!

    usermod -g 组 用户名   修改用户的主组(passwd中的GID)

    usermod -G 组 用户名  修改用户的附加组

    usermod -s /bin/bash 用户名  修改用户登陆的Shell(可以输入终端命令的窗口,一个软件)

    Ubuntu默认时dash,在Windows下应使用bash

注意:默认使用useradd添加的用户没有权限使用sudo以root身份执行命令的,可以使用以下命令,将用户添加到sudo附加组中

usermod -G sudo 用户名

which

提示:

  /etc/passwd 是用于保存用户信息的文件

  /usr/bin/passwd 是用于修改用户密码的程序

  which命令可以查看执行命令所在的位置

bin和sbin

  在Linux中,绝大多数可执行文件都是保存在 /bin,/sbin,/usr/bin,/usr/sbin

  /bin(binary)是二进制执行文件目录,主要用于具体应用

  /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理

  /usr/bin(user command for applications)后期安装的一些文件

  /usr/sbin(super user commands for application)超级用户的一些管理程序

提示:

cd 这个终端命令是内置在系统内核中的,没有独立的文件,因此用which无法cd命令的位置

切换用户

  su - 用户名  切换用户,并且切换目录 ’-‘可以切换到用户的家目录,否则保持当前位置不变

  exit  退出当前登录用户

  su 不接用户名,可以切换到root,但是不推荐用户,不安全

修改文件权限命令总结

  chown  修改拥有者

  chgrp  修改组

  chmod 修改权限

  chown 用户名 文件名/目录名  修改文件/目录的拥有者

  chgrp -R 组名 文件名/目录名  递归修改文件/目录的组

  chmod -R 755 文件名/目录名递归修改文件/目录的权限

chmod 在设置权限时,可以简单地使用三个数字分别对应拥有者/组和其他用户的权限

7:4’r‘,2’w‘,1’x‘  可读可写可执行

5:4’r‘,1 ’x‘  可读可执行

6:4‘r’,2‘w’  可读可写

统信息相关命令

 查看服务器上当前系统日期和时间/磁盘空间,占用情况/程序执行情况

目标

  时间和日期

    data

    cal

  磁盘和目录空间

    df

    du

  进程信息

    ps

    top

    kill

1,时间和日期

  cal 查看日历,-y选项查看一年的日历

  date 查看系统时间

2,磁盘信息

  df -h  diskfree显示磁盘剩余空间

  du -h[目录名] disk usage显示目录下文件大小

  选项说明

  -h以人性化方式查看文件大小

3,进程信息

  进程:当前正在执行的一个程序

  ps a/u/x process status 查看进程的详细情况

  top 动态显示运行中的进程并且排序

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

  ps 默认只会显示当前用户通过终端启动的应用进程

  ps 选项说明

    a 显示终端上的所有进程,包括其他用户的进程

    u 显示进程的详细状态

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

  提示:使用kill命令时,最好只终止由当前用户开启的进程,而不是终止root身份开启            的进程否则会导致系统崩溃

  退出top可以直接输入q

其他命令

   查找文件

    find

   软链接

    ln

   打包和压缩

       tar

   软件安装

       apt-get

1,查找文件

· find 命令功能非常强大,通常用来在特定的目录下搜索符合条件(文件名/大小/文件权限,,,)的文本

  find [路径] -name '*.py' 查找指定路径下扩展名为 .py 的文件,包括子目录

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

· 之前学习的通配符,在使用 find 命令时同时使用

2,软链接

ln -s 被链接的文件 链接的文件名

作用:建立文件的软链接,类似于windows下的快捷方式

· 注意:

  没有 -s 选项建立的是一个硬链接文件(两个文件占用相同大小的硬盘空间)

  源文件要使用绝对路径,不能使用相对路径,这样可以方便移动软链接文件后,仍能正常使用

  源文件删除,软链接当然就失效

硬链接

  在Linux中,文件名和文件的数据是分开存储的

  只有文件的硬链接数 == 0 才会被删除

  ls -l 查看文件的硬链接数

  

  

3,打包和压缩

· 打包压缩,不同操作系统中,常用的打包压缩方式不同

  Windows 常用 rar

  Mac 常用 zip

  Linux 常用 tar.gz

3.1 打包/解包

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

· tar -cvf 打包文件.tar 被打包的文件/路径,,, 打包文件

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

· tar 选项说明

  c 生成档案文件,创建打包文件

  x 解开档案文件

  v 列出归档/解档的详细过程,显示进度

  f 指定档案文件名称,f 后面一定是 .tar,所有必须放选项后面

注意:f 选项必须放在最后

3.2压缩/解压缩

gzip

· tar 和 gzip 命令结合实现文件的打包与压缩  

· tar 只负责打包

· 用gzip压缩tar打包后的文件,其拓展名一般用 xxx.tar.gz

· 在tar命令中有一个选项 -z 可以调用gzip ,方便实现打包压缩功能

tar -zcvf 打包文件.tar.gz 被压缩的文件/路径  压缩文件

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

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

-C 解压缩到指定路径。注意:要解压缩的目录必须存在,提前创建

bzip2

  · tar 只负责打包

  · 用bzip2压缩tar打包后的文件,其拓展名一般用 xxx.tar.bz2

  · 在tar命令中有一个选项 -j 可以调用bzip2 ,方便实现打包压缩功能

  tar -jcvf 打包文件.tar.bz2 被压缩文件/路径 压缩文件

  tar -jxvf 打包文件.tar.bz2  解压缩文件

  tar -jxvf 打包文件.tar.bz2 -C 目标路径 解压缩到指定路径

4,软件安装

4.1 通过apt安装/卸载软件

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

  · 可以在终端中方便地安装/卸载/更新软件包

  sudo apt install 软件包 安装软件

  sudo apt remove 软件包  卸载软件

  sudo apt upgrade 软件包 更新软件

    sl 软件

    htop 软件

4.2配置软件源

·如果希望在Ubuntu中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器来提供下载/安装服务

·提示:更换服务器后,需要一个较长时间的更新过程。

   所谓镜像源,就是所有服务器的内容是相同的(镜像),国内的服务器下载速度快

原文地址:https://www.cnblogs.com/serpent/p/9107851.html