Linux入门操作介绍

Linux

是由unix衍生而来(小知识:mac也是使用unix核心),由全世界的程序员一起开发的开源系统。如今基于linux已经有了很多版本,我们后面使用的就是衍生版本之一的Ubuntu。

Ubuntu

安装://cn.ubuntu.com/download/server/step1

VMware虚拟机

安装://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

安装完后需要输入注册码才能使用,网上随便找找

在虚拟机上安装Linux系统的时候,记得打× OpenSSH 意思是安装openssh。

(如果没安装openssh,就安装完Linux执行该命令:sudo apt install openssh-server

Xshell Xftp

安装:需要去网上下载破解版

xshell:用于连接并操作虚拟机(直接操作虚拟机比较麻烦,在window用xshell操作方便点)

xftp:用于将window中的文件传给linux

(两者都是直接新建一个项目,然后输入路由器分配给该虚拟机的ip地址即可连接)

补充:Linux查看ip地址的方法:ifconfig


用户和用户组

介绍:Linux系统需要创建用户才可以操作,创建的每个用户都有相应的数据存放文件(如conan用户在home/conan)。但默认有一个root用户(权限最高,一般不切换到该用户,危!),其的root文件与home同一目录。

因为root权限太高了,所以一般是普通用户使用sudo命令暂时得到root权限执行某个语句

状态信息介绍:格式为:用户名@服务器名称:当前所处的目录$,~代表用户目录,如果不是用户目录,会显示当前的绝对路径地址。

conan@ubuntu-server:~$

用户指令:

查看当前文件所在目录:pwd

切换到root用户:sudo -s

切换用户:su conan

退出当前用户:exit

添加新用户:sudo useradd study -m -s /bin/bash

【在用户创建时顺便创建用户的文件夹,并指定shell(任意一种命令解释程序,用于处理我们输入的命令)为bash】

为用户添加密码:sudo passwd study

删除用户:sudo userdel study

查看当前登录账号(不是正在操作文件的账号):who

查看当前用户所在的用户组:groups

查看当前用户所属的用户组的相关信息:id

查看指定用户的所属用户组的相关信息: id test

为用户添加sudo权限:sudo usermod study -G sudo

(在创建新用户的时候,是没有sudo权限的,需要通过sudo去添加权限)

查询文件夹中的一般文件:ls

查询文件夹中的隐藏文件:la

查询文件夹中all文件的详细信息:ll

(也可以在其后面加文件名,表示查看指定文件的详细信息)

. ..分别代表当前文件夹,以及上一级文件夹。 可以中间加空格配合以上几个一起使用 如:ls .. 显示上一级的一般文件

切换到某文件夹:cd xx/xx

切换到当前用户下的文件夹:cd ~


文件

文件详细信息介绍

test@ubuntu-server:~$ ls -al
total 44
drwxr-xr-x 4 test test 4096 Jan 24 08:55 .
drwxr-xr-x 4 root root 4096 Jan 24 04:24 ..
-rw------- 1 test test 2124 Jan 24 04:29 .bash_history
-rw-r--r-- 1 test test  220 Feb 25  2020 .bash_logout
-rw-r--r-- 1 test test 3771 Feb 25  2020 .bashrc
drwx------ 2 test test 4096 Jan 21 15:48 .cache
drwx------ 3 test test 4096 Jan 23 14:49 .config
-rw-r--r-- 1 test test  807 Feb 25  2020 .profile
-rw------- 1 test test   34 Jan 24 04:17 .python_history
-rw-r--r-- 1 test test    0 Jan 21 15:52 .sudo_as_admin_successful
-rw------- 1 test test 7201 Jan 24 08:55 .viminfo

第一列:

第一个字符表示:文件类型(-表示普通文件,l为链接文件,d表示目录(文件夹)c表示字符设备、b表示块设备,还有p有名管道、f堆栈文件、s套接字等,这些一般都是用于进程之间通信使用的)

第2-4个字符表示(U):文件的拥有者(User)对该文件的权限

第5-7个字符表示(G):文件所属同一用户组(Group)内用户对该文件的权限

第8-10个字符表示(O):其他用户(Other)对该文件的权限

第二列:文件创建的链接文件(快捷方式)数量,一般只有1表示只有当前文件

第三列:该文件或是目录的拥有者。

第四列:文件所属的组。

第五列:文件大小,以字节为单位。(8位一字节)

第六列:文件的最后一次修改时间

最后一列:文件名(前面有.的是隐藏文件,其余为普通文件)

文件指令:

  1. 创建一个链接文件(就是某文件的快捷方式):ln .bash_logout kk

(创建后,会生成一个名为kk的文件,我们对此文件的操作相当于直接操作.bash_logout)

  1. 创建一个普通文件:touch test01 test02 test 03

  2. 创建一个文件夹:mkdir xxx

  3. 修改文件权限:

    • 方法一:chmod (u/g/o/a)(+/-)(r/w/x) 文件名称 从ugo中选择或是直接a表示所有,+和-表示添加和删除权限

      举例:chmod a-w test 意思是test的all权限都减少w的权限

    • 方法二:chmod 三个数子 文件名称 约定:r=4,w=2,x=1,需要什么权限就让对应权限的数字相加,一个数字表示一个rwx的权限状态

      举例:chmod 664 test是指定该文件的权限为 -rw-rw-r--

  4. 修改文件拥有者:sudo chown root test :将test文件拥有者修改为root

  5. 修改文件所属组:sudo chgrp root test:将test文件所属组修改为root

  6. 复制文件:cp ../test study :将上一级目录中下的test文件夹中的study文件负责到当前目录

    (复制的时候要用与当前目录的相对路径去找需要复制的文件)

  7. 复制文件夹:cp -r ../test (-r代表循环文件夹内容)

  8. 移动文件(夹):mv test study :移动test文件到study文件夹中

    此操作必须在两个目录的公共父目录中才可操作

  9. 重命名文件:mv test test02:当检测没有test02这个文件,就会将test文件名更改为test02

  10. 删除文件:rm -r test:删除test文件 (-r是指递归删除文件夹中的内容)

  11. 批量删除同后缀的文件:rm *.txt:批量删除当前文件夹内以txt结尾的文件

  12. 搜索文件:sudo find /etc -name passwd :搜索/etc目录下名为passwd的文件

  13. 批量搜索:sudo find /etc -name p*:搜索/etc目录下名字p开头的文件


系统管理

挂载:指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。

(比如我们的主硬盘,挂载点就被设定为/根目录,而我们所有保存的文件都会存储在硬盘中,如果你有U盘,最好将U盘的文件格式改为ExFat,可以直接在Windows中进行格式化)

找u盘设备名称:①根据内存容量找到u盘的位置(我的为:/dev/sdb ②在去招u盘位置下面Device中是 /dev/sdb1还是/dev/sdb 。最后找u盘的位置需要根据Device显示路径的去找

挂载:是将u盘内的东西挂在指定的文件夹里(相当于该文件夹是u盘的快捷键

系统指令:

  1. 打开任务管理器:top (按q退出) 此时按1可以查看CPU核心的使用情况 输入free可以查看系统内存使用情况

  2. 查看所有块设备的信息:lsblk

  3. 查看硬盘实体情况:sudo fdisk -l

  4. 挂载u盘:sudo mount /dev/sda1 u-test/:将/dev/sda1的u盘挂载在 u-test/文件下

  5. 取消挂载:sudo umount /dev/sda1

    (取消挂载需要先退出来u盘挂载的文件夹)

  6. 查看当前磁盘的使用情况:df

  7. 查看所有的进程:ps -ef

  8. 终止进程:kill 信号 PID 如: kill -9 11438

    信号:1 (HUP):重新加载进程;9 (KILL):杀死一个进程;15 (TERM):正常停止一个进程;

    PID通过查看进程可以得到进程的PID

  9. 关机:sudo shutdown 立即关机:sudo shutdown now

    (正常关机,只需要输入shutdown即可,系统会创建一个关机计划,并在指定时间关机,或是添加now表示立即关机)


压缩解压

使用tar命令来完成文件压缩和解压操作,在Linux中比较常用的是gzip格式,后缀名一般为.gz,tar命令的参数-c表示对文件进行压缩,创建新的压缩文件,-x表示进行解压操作,-z表示以gzip格式进行操作,-v可以在处理过程中输出一些日志信息,-f表示对普通文件进行操作

压缩解压指令:

  1. 压缩文件:tar -zcvf test.tar.gz *.txt :压缩当前文件夹内以txt结尾的文件,压缩包名为 test.tar.gz
  2. 压缩文件夹:tar -zcvf test.tar.gz test/ :压缩test文件夹,压缩包名为test.tar.gz
  3. 解压到当前文件夹:tar -zxvf test.tar.gz

Vim

xim test01,若test01文件不存在则就会创建一个新的文件并进入vim编辑。若有该文件,则进入该文件的编辑状态

这时我们直接输入内容是无法完成的,因为默认进入之后为命令模式,Vim编辑器默认有三种模式:

img

  • 命令模式:此模式下可以输入任意的命令进行操作,所有的输入都被看做是命令输入,而不是文本编辑输入。
  • 编辑模式:此模式下输入的任何内容都会以文本编辑方式写入到文件中,就像我们直接在Windows的记事本中写内容一样。
  • 末行模式:此模式下用于输入一些复杂命令,会在最后一行进行复杂命令的输入。

vim默认界面为命令模式,输入命令后就进入编辑模式;ESC可以退出编辑模式

进入末行模式: 退出末行模式:: 或者/

vim指令(进入到vim编辑界面)

命令模式——插入模式:

  1. i在光标前开始插入
  2. a光标后移一位,开始插入
  3. o直接跳到下一行,然后插入
  4. A在当前行的最后继续写入
  5. I在当前行的最前面继续写入

末行模式:

  1. :set number 开启行号

  2. :w 保存

  3. :wq:x 保存并关闭

  4. :q 关闭

  5. :q! 强制关闭 (一般是不让文件保存时使用)

  6. /it ?it 都可以开启搜索功能

  7. :[addr]s/源字符串/目的字符串/[option] 替换功能 举例::s/it/he/g :将当前行中的it全部替换为he

    addr表示第几行或是一个范围,option表示操作类型:

    • g: globe,表示全局替换
    • c: confirm,表示进行确认
    • p: 表示替代结果逐行显示(Ctrl + L恢复屏幕)
    • i: ignore,不区分大小写

可视化模式:

在vim界面 按下键盘上的v即可进入,它能够支持选取一段文本,选取后,我们可以对指定段落的文本内容快速进行复制、剪切、删除、插入等操作,非常方便。在此模式下,我们可以通过上下左右键进行选取,以进入可视化模式时的位置作为基本位置,通过移动另一端来进行选取。

对选中的区域操作:

  • y 复制选中区域
  • d/x 剪切(删除)选中区域
  • p 粘贴
  • u 撤销上一步