Linux基础命令

常见、高级命令

Posted by 新宇 on January 3, 2020

一、基础简介

1. 虚拟机

  1. 虚拟机就是一款软件,运行在windows macos上

  2. 虚拟机作用:在当前系统上虚拟出一个或多个操作系统,

  3. 虚拟机的优点:各个虚拟机之间相互独立,互不影响

  4. docker容器

  5. anaconda:python环境管理工具,不同容器中可以选择不同的python版本

2. ubuntu系统

  1. 根目录: /

  2. 当前用户目录: /home/用户名

3. Linux内核与发行版本

  1. linux内核(非常小):Linux控制和操作硬件的核心部分

  2. 发行版本:Linux内核 + 常用软件

  3. 常见发行版本:

    • ubuntu
    • centOS
    • redhat

二、常见命令介绍

1.Linux基础命令

1. 系统版本

# 处理器架构
arch
# 内核版本
uname -r
# cpu info
cat /proc/cpuinfo
# Linux 版本
cat /proc/version

2. 目录操作

# 展示当前目录所有文件
ls	
# 以树的方式展示目录结构(两层)
tree -L 2
# 展示当前路径
pwd
# 清屏
clear(或者通过 ctrl + l / ctrl + k)

3. 切换目录

# 切换到上一级目录
cd .. 
# 切换到用户目录
cd ~
# 当前目录
cd .
# 切换到上次的目录
cd -

4. 绝对路径和相对路径

pwd
# 当前目录 /home/python/aaa

# 切换到Desktop:
# 1.使用绝对路径
cd /home/python/Desktop

# 2.使用相对路径
cd ../Desktop

5. 文件操作相关命令

# 创建文件
touch 文件名

# 删除文件
rm 文件名

# 删除文件夹(及文件夹中所有文件)
rm -r 文件夹

# 删除空文件夹
rmdir 文件夹

6. 复制、移动文件和目录

# 复制文件和目录(也可修改文件名) 
cp 文件 目录 (或文件名)

# 复制文件夹(递归)
cp -r 文件夹 目录

# 移动(重命名)文件和目录(不需要 -r)
mv 源文件 新文件

7. 终端命令格式组成

格式:
命令 [可选项] [参数]

命令:必须
可选项:预定义好
参数:不确定

8. 查看命令格式

# 建议此方式
命令 --help

man 命令

9. ls常用可选项

# 列表方式
-l
# 智能显示(文件大小已 K M G 量级显示)
-lh
# 展示所有文件(包括隐藏文件)
-a 
# 展示所有文件详情(包括隐藏文件)
-al
# 智能展示所有文件详情(包括隐藏文件)
-alh

10. 创建文件夹、删除文件或文件夹可选项

# 把父文件夹一并创建
mkdir -p 文件夹

# 递归删除文件夹下的所有文件和文件夹
rm -r 

# 强制删除,没有提示
rm -f

# 交互式提醒 
rm -i

# 强制递归删除
rm -rf 

11. 拷贝或移动文件

拷贝 cp
-i: 交互式提示(拷贝文件防止覆盖)
-v: 显示拷贝后的路径描述
-r: 拷贝文件目录
–a: 拷贝文件夹并且文件权限不丢失

移动 mv
-i: 交互式提示(移动文件防止覆盖)
-v: 显示拷贝后的路径描述

2.Linux高级命令

1. 重定向

  • 作用: 将命令输出,放到其他地方(比如写入文件)
  • 分类: 1.覆盖添加 > 2. 追加 »

2. echo 回显

echo 字符串(控制台上显示字符串)
echo "hello world" > d.txt
创建文件并初始化内容

3. 查看文件内容 cat more

# 把文件名显示到终端上,适合小文件
cat 文件名

# 通过分页方式展示,适合大文件
# 快捷键 f:下一页 b:上一页 回车:下一行
more 文件名 

# |:管道,把上个命令的输出作为下个命令的输入
# 命令|命令
ll | more

4. 链接 ln

  • 软连接:相当于快捷方式

      # 尽量使用绝对路径,相对路径容易失效!!!
    
      ln -s 需要链接的文件/文件夹 软连接名称
    
    
  • 硬连接:类比于指向同一个对象的两个不同指针

      # 硬连接和源文件共用同一块内存
      # 修改硬连接,源文件也会变化
      # 一般用来保存非常重要的文件
      # 删除硬连接,不会影响源文件
      ln 需要链接的文件 硬连接名称
    
      # cp:拷贝,复制出一样的文件
    

5. 查找特定内容 grep

grep [可选项] 字符串/正则 文件

可选项
-n 显示行号
-v 取反
-i 忽略大小写

正则:
^a 以a开头
a$ 以a结尾
.  匹配任意一个字符

# 与管道连用
ll / | grep 字符串/正则
ps -aux | grep ssh

6. 查找文件 find which

# find 路径 [可选项目] 文件名/通配符
find . -name "a.txt"
find . -name "a*.txt"
find . -name "a?.txt"

通配符:
? 匹配一个字符
* 匹配一个或多个字符

# which 可执行程序
which python3

7. 压缩和解压缩 tar zip unzip

# tar本身是归档操作
# tar包不会压缩
tar -cvf a.tar *.txt/或多个文件,以空格分割
tar -xvf a.tar
 
# gz压缩包稍大,比较快
tar -zcvf a.tar.gz *.txt/或多个文件
tar -zxvf a.tar.gz

# bz2压缩包更小,比较慢
tar -jcvf a.tar.bz2 *.txt/或多个文件
tar -jxvf a.tar.bz2 

tar -jxvf a.tar.bz2 -C 解压目录

可选项:
-c: 创建打包文件
-x: 解压缩
-z: 压缩成gz
-j: 压缩成bz2
-v: 显示详细信息
-f: 指定文件名称,放在所有选项后
-C: 指定解压目录

# zip和gz区别:
# linux下一般都使用gz,因为zip压缩效率比较低
zip a.zip 文件名
unzip a.zip

8. 文件权限管理

windows只能控制只读权限 Linux可以精确控制文件权限

  • 角色:
    • 文件创建者 u
    • 用户组组 g
    • 其他用户 o
    • 所有 a
  • 文件类型
    • d:文件夹
    • -:普通文件
    • l:软连接
    • b:块文件
  • 权限控制:
    • r: 可读 4
    • w: 可写 2
    • x: 可执行 1

9. 修改权限 chmod

注意:在非用户目录下,需要获取管理员权限才可以执行;

# 1.字母法 chmod u/g/o/a/+/-/=/rwx- 文件名
# eg: 
chmod a=rwx a.py
chmod o=- a.py

# 将py文件改成可执行程序:
# 在py环境最上方添加 #!/usr/local/bin/python3

# 2.数字法

chmod 777 a.py

10. 用户和管理员权限

# 切换到用户
sudo -s
# 获取一次管理员权限
sudo 指令
# 获取当前用户
whoami
# 获取所有登陆用户
who
# 关机和重启
shutdown -r now
reboot
# 创建用户
sudo useradd -m tt
# 自定密码
sudo passwd tt
# 切换用户到tt
su tt
# 退出当前用户
exit
# 删除tt用户
userdel -r tt

11. 远程拷贝和登陆

# 远程登陆 ssh 用户@
sudo apt install openssh-server
sudo apt install openssh-client
ssh python@172.16.156.132

# 远程拷贝
# 拷贝文件到远程
scp [-r(拷贝目录)] [-p 端口号] local_file remote_username@remote_ip:remote_folder 

# 拷贝远程文件到本地
scp [-r(拷贝目录)] [-p 端口号] remote_username@remote_ip:remote_file local_folder

# 使用FileZille拷贝,图形化界面

12. 软件安装

  • deb离线方式:先下载软件,然后通过命令安装 sudo dpkg -i 安装包 卸载:sudo dpkg -r 软件
  • apt-get在线安装: 从镜像仓库安装 sudo apt-get install 软件 卸载:sudo apt remove 软件
  • 第三方安装

13. vim

  • 命令模式: vim a.txt 直接进入命令模式,i 进入编辑模式,: 进入命令模式
  • 编辑模式: 编辑文本,esc 进入命令模式
  • 末行模式: q/q!/wq/x/ZZ , esc 进入命令模式

常用命令:
行首:shift 6
行尾:shift 4
文件末尾:G
文件开始:gg
到第N行:number + G
撤销:U
反撤销:ctrl + r
复制:yy
粘贴:P
删除/剪贴:dd
按行选中:v
查找: :/xxx 从头查找 , :?xxx 从尾查找
看下一个: n
看上一个: N
左下上右:h j k l
显示行号::set number

如何多行插入?

按Esc进入“命令模式”
使用Ctrl + V进入可视块模式
向上 / 向下移动在你要评论的行选择文本的列。
然后按Shift + i,然后输入要插入的文本。
然后按Esc键 ,等待1秒钟,插入的文本将出现在每一行上。

注意:快捷键参考 https://linux.cn/article-8144-1.html

14. 查看进程信息 ps

```
# 获取进程信息

ps -ef | grep python

ps -aux | grep python

# 杀死进程

kill -9 进程号
```

15.查看硬件配置

# 查看内存
free -h 

# 查看硬盘
df -h

# 查看CPU
lscpu

# 查看文件大小	
du -sh ./*

16. 查看python路径

whereis python