【Linux】Linux系统教程一:简介

一.Linux基础

Linux系统的目录结构中,不同的文件夹分属不同的功能,列表如下:目录名功能/根目录,所有的分区和文件的起点/bin普通用户可用的命令所在路径/sbin超级用户(root)可用的命令所在路径/etc各种配置文件所在路径/home所有普通用户的家目录所在路径/lib系统库文件所在路径/boot系统内核镜像文件所在路径/dev设备节点所在路径/usr第三方库和服务默认安装路径/proc系统进程数据在文件系统中的挂载路径/sys系统内核数据在文件系统中的挂载路径/var存放一些“易变”的文件,例如安装包、系统日志等/mnt默认的分区挂载路径。

终端使用小技巧:
(1)直接切换为root用户

gec@ubuntu:~$ sudo -s

(2)打开终端的方法

alt+ctl+t

(3)环境变量
环境变量是能作用于整个系统的特定变量,比如 HOME 确定了当前用户家目录所在路径、PATH 确定了哪些路径下有可执行文件等,许多环境变量是系统本身定义的,有些环境变量是用户或软件定义的,这些环境变量可以通过命令 export 导出到整个系统,在整个系统环境中起作用,这也是它们之所以被称为环境变量的原因。

1)查看系统所有的环境变量

gec@ubuntu:~$ env

2)查看某个环境变量:如果需要查看某个特定的环境变量的值,可以使用命令 echo 来将环境变量的值输出到终端,注意要对环境变量进行引用,方式是在其名称前面加一个美元符号:$,比如 $PATH :

gec@ubuntu:~$ echo $PATH

3) 设置某个环境变量

临时设置(以PATH为例):gec@ubuntu:~$ export PATH=$PATH:/home/gec

永久设置(以PATH为例):
a. 打开终端的配置文件 ~/.bashrc
b. 在其末尾添加如下信息:
gec@ubuntu:~$ export PATH=$PATH:/home/gec

4)执行如下命令来加载修改过的配置文件

gec@ubuntu:~$ source ~/.bashrc

二.文件互通互联

1.共享文件夹
使用共享文件来互通win和ubuntu的文件是最简单的,方法如下:

  • 点击虚拟机设置按钮,找到想要共享给虚拟机的文件夹。下图以Downloads文件夹为例,将其设置为Windows与Ubuntu的共享文件夹:
  • 打开命令终端,输入 cd /mnt/hgfs 进入共享文件夹,通过命令ls,便可看到

gec@ubuntu:~$ cd /mnt/hgfs/share/

  • 在ubuntu20.04虚拟机如果出现无法文件共享时,可以执行下面命令:

sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000

2.samba文件共享
samba是Linux下的一款网络磁盘服务,在ubuntu安装samba,并做好恰当的配置,即可在其他系统中方便地访问ubuntu系统的文件。

安装步骤:

// 安装 samba
gec@ubuntu:~$ sudo apt install samba

//配置 samba
gec@ubuntu:~$ sudo gedit /etc/samba/smb.conf

命令格式:

gec@ubuntu:~$ smbclient -L windows主机IP -U 用户名%密码

3.FTP文件传输
FTP是一种网络协议,在文件传输领域被广泛使用,采用该协议的各种FTP服务端和客户端不胜枚举,例如Linux下的vsftpd服务器,Windows下的FlashFXP客户端。

Ubuntu中的 vsftpd 的含义是 very security FTP daemon(即非常安全的FTP服务器),我们可以在ubuntu中配置vsftpd服务端,然后在windows中使用FTP客户端来达到文件互联互通的目的。

安装过程:

//安装 vsftpd
gec@ubuntu:~$ sudo apt install vsftpd
//配置 vsftpd
gec@ubuntu:~$ sudo gedit /etc/vsftpd.conf
在上述配置文件中,找到 write_enable=YES ,将其前面的井号去掉就可以了
//重启 vsftpd
gec@ubuntu:~$ sudo service vsftpd reload
gec@ubuntu:~$ sudo service vsftpd restart
//查看运行状态
gec@ubuntu:~$ sudo service vsftpd status
//注意到,上述输出信息中有active(running)字样,表示ubuntu中的vsftpd已经在正常运行
//这时就可以启动windows中的ftp客户端去连接FTP服务了
//使用CuteFTP Pro软件即可传送文件

三.命令行编辑与编译

1.编辑器
(1)图形编辑器
平时常见的编辑器都是图形编辑器,比如记事本、notepad、office、wps等,图形编辑器的意思就是这些编辑器带有图形界面,有菜单选项。比如最简单的Windows的记事本:
(2)字符编辑器vi
字符编辑器的意思是这种编辑器没有提供图形界面,因此也不需要用鼠标去点击菜单栏,字符编辑器的所有操作都是只需键盘就能达到的,这种设定可以让人在编程时注意力专注于代码,将程序思维直接流向键盘,行云流水,无需任何多余的菜单、鼠标的干扰,极大提高效率。在字符编辑器中,vi就是其中的典型代表。

vim安装:

//下载安装vim版本的命令是:
gec@ubuntu:~$ sudo apt install vim

//安装完毕之后,还可以在vim的配置文件中设置一些常用的选项:
gec@ubuntu:~$ sudo cat /etc/vim/vimrc
文件 /etc/vim/vimrc 是vim的配置文件
set mouse=a 代表开启鼠标追踪
set cindent 代表开启自动缩进
set number 代表显示行号

vim需要两个操作模式:

  • 一个模式下键入的信息,作为文本本身的内容,称之为编辑模式.
  • 一个模式下键入的信息,作为执行的动作,称之为命令模式。

这两种模式的转换:

  • 默认打开 vi 的时候,进入了命令模式
  • 从命令模式,进入编辑模式(编辑文本):按i、a、o、I、O……
  • 从编辑模式,进入命令模式(通过命令操作文本):按Esc

vim常用指令:
在这里插入图片描述
在这里插入图片描述

2.编译器
gcc是一套由 GNU 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分,亦是自由的类Unix 及苹果 MacOS 操作系统的标准编译器。

// 查看编译器的版本:
gec@ubuntu:~$ gcc -v  

// 将源码 a.c 编译生成程序 a
gec@ubuntu:~$ gcc a.c -o a      //-o:指定编译后生成的执行文件

// 编译源码的时候打开所有的警告
gec@ubuntu:~$ gcc a.c -o a -Wall   

//./a       (./可执行文件)

四.linux 核心命令

1.基本命令

ls  :释义:list,列出目录中文件的信息
  • 常见用法:
ls        ==> 列出当前目录的文件名
ls -l     ==> 列出文件详情(文件类型)
ls -a     ==> 列出文件名(含隐藏文件 以.开头的文件)
ls -la    ==> 列出文件详情(含隐藏文件)
ls /etc   ==> 列出指定目录 /etc 的文件名
  • linux下文件类型:
- :普通文件(.c  .h  .bz2  gz...)
d:目录文件(相当window的文件夹),目录是可以cd进去
c:字符设备文件
d:块设备文件
l:链接文件
p:管理文件
s:套接字文件
alias:给一个命令取一个别名
  • 常见用法:
alias l='ls -l'  ==> 给ls -l取个别名叫l
alias c='clear'  ==> 给clear取个别名叫c
unalias -a       ==> 当前会话中移动所有命令的别名
在上述设置别名的语句中,等号两边不能有空格
cd:释义:change director,切换当前路径
  • 常见用法:
cd /etc  ==> 切换到 /etc
cd       ==> 切换到家目录(/home/用户名)
cd -     ==> 切换到刚刚去过的地方(回到上一步的操作)
cd .     ==> 回到当前目录
cd ..    ==> 切换到上一级目录
cd ../.. ==> 切换到上上级目录
绝对路径:路径最开始到文件位置
如当前在家目录,需要需要进入Desktop
gec@ubuntu:~$ cd /home/gec/Desktop/
gec@ubuntu:~/Desktop$ 
相对路径:路径当前到文件位置
gec@ubuntu:~$ cd Desktop/
gec@ubuntu:~/Desktop$ 
pwd:打印当前所有路径
如果是普通用户
~:家目录  路径:/home/用户名
如果是root用户 
~:家目录  路径:/root
clear
- 释义:清屏
date
- 释义:设置或查看日期时间
- 常见用法:
1. date                 ==> 查看当前日期时间
2. date -s "2020/12/12" ==> 设置日期

3. dpkg
- 释义:手工安装 deb 软件包
- 常见用法:
4. dpkg -i x.deb ==> 安装x.deb软件包
5. echo abcd   ==> 输出字符串"abcd"
6. echo $PATH  ==> 输出环境变量PATH的值
sort
- 释义:对文件内容按行排序并输出
- 常见用法:
gec@ubuntu:~$ sort file.txt ==> 按默认ASCII码升序排列
gec@ubuntu:~$ sort file.txt -r ==> 按ASCII码降序排列
gec@ubuntu:~$ sort file.txt -n ==> 按数值升序排列
gec@ubuntu:~$ sort file.txt -nr ==> 按数值降序排列
uniq
- 释义:unique,去除文件中重复的相邻的行(输出时去除,文件中是无法进行删除)
- 常见用法:
gec@ubuntu:~$ uniq file.txt
which
- 释义:查看命令所在路径
- 常见用法:
11. 查看默认命令 ls 所在路径
gec@ubuntu:~$ which ls
12. 查看命令 qmake 的所有可能路径
gec@ubuntu:~$ which -a qmake

2.文件管理命令
2.1 cat

  • 释义:显示文本文件的内容
  • 常见用法:
gec@ubuntu:~$ cat file.txt ==> 显示文本文件内容
gec@ubuntu:~$ cat -n a.c   ==> 显示文本文件内容(并显示行号)
gec@ubuntu:~$ cat -A a.c   ==> 显示文本文件内容(含不可见字符)

2.2 head/tail

  • 释义:查看指定文件的头部/尾部内容
  • 常见用法:
gec@ubuntu:~$ head file.txt
gec@ubuntu:~$ head -n file.txt(n查看的行数)
gec@ubuntu:~$ tail file.txt
gec@ubuntu:~$ tail -n file.txt(n查看的行数)

2.3 less/more

  • 释义:以分页方式查看长文件
  • 常见用法:
gec@ubuntu:~$ less file.txt
gec@ubuntu:~$ more file.txt

2.4 od

  • 释义:查看二进制文件(可执行文件)
  • 常见用法:
gec@ubuntu:~$ od -x file  ==> 以十六进制查看file
gec@ubuntu:~$ od -o file  ==> 以八进制查看file
gec@ubuntu:~$ od -d file  ==> 以十进制查看file
gec@ubuntu:~$ od -b file  ==> 以二进制查看file

2.5 cp

  • 释义:copy,复制文件或者复制整个目录
  • 常见用法:
gec@ubuntu:~$ cp file1 file2    ==> 将文件file1复制为file2
gec@ubuntu:~$ cp dir1/ dir2/ -r ==> 将目录dir1/复制为dir2/
gec@ubuntu:~$ cp file1 dir2/   ==> 将文件复制到dir2/
  • 注意:
    a.如果file2或者dir2已存在,那么它们将会被覆盖
    b.目录名称 dir1/ 和 dir2/ 末尾的"/"是可选的,可写可不写,写上去只是为了强调 dir1 和 dir2 是目录,别无他意

2.6 scp

  • 释义:security copy,跨网络复制文件或者复制整个目录
  • 常见用法:
gec@ubuntu:~$ scp user@x.x.x.x:/home/gec/a.txt .

2.7 touch

  • 释义:
    a.在文件存在的情况下:将文件最近修改时间更新为当前时间
    b.在文件不存在的情况下:创建一个空文件
  • 常见用法:
#假设文件a.txt已存在
gec@ubuntu:~$ touch a.txt ==> 更新a.txt的最近修改时间到当前时间

#假设文件b.txt不存在
gec@ubuntu:~$ touch b.txt ==> 创建b.txt

2.8 mkdir/rmdir

  • 释义:make/remove directory,创建/删除空目录
  • 常见用法:
gec@ubuntu:~$ mkdir a      ==> 创建空目录a
gec@ubuntu:~$ mkdir b/c -p ==> 创建嵌套空目录b/c
gec@ubuntu:~$ rmdir a      ==> 删除空目录a
  • 注意:
    如果目录不为空,则不能用rmdir删除,而只能用rm,比如上述的目录b,由于b中有c,因此b不是空目录,此时只能这么删除:
gec@ubuntu:~$ rm -r b

2.9 rm

  • 释义:remove,删除文件或目录
  • 常见用法:
gec@ubuntu:~$ rm file  (删除文件)
gec@ubuntu:~$ rm -r dir/ (删除目录)

2.10 find

  • 释义:在指定目录中,按指定条件寻找文件
  • 常见用法:
gec@ubuntu:~$ find /usr -name "*.h" ==>/usr中查找以.h结尾的文件
gec@ubuntu:~$ find /tmp -type s     ==>/tmp中查找类型为套接字的文件

2.11 grep

  • 释义:在指定文件或目录中,按指定条件寻找字符串
  • 常见用法:
//指定文件
gec@ubuntu:~$ grep 'apple' file -rn ==> 在文件file查找字符apple
//指定目录
gec@ubuntu:~$ grep 'apple' /home/gec -rn ==> 在目录/home/gec查找字符apple文件

2.12 diff

  • 释义:difference,检测两个文件或目录的差异信息
  • 常见用法:
gec@ubuntu:~$ diff file1 file2      ==> 检测文件file1和file2的差异信息
gec@ubuntu:~$ diff dir1/ dir2/ -urN ==> 检测目录dir1/和dir2/的差异信息

2.13 file

  • 释义:检测指定文件的格式信息
  • 常见用法:
gec@ubuntu:~$ file a.tar.bz2 ==> 检测文件a.tar.bz2的格式
gec@ubuntu:~$ file a.out     ==> 检测文件a.out的格式

2.14 mv

  • 释义:move,移动文件,或给文件重命名
  • 常见用法:
gec@ubuntu:~$ mv file dir/ (将文件移动到目录dir)
gec@ubuntu:~$ mv file1 file2 (将文件file1改为file2)
gec@ubuntu:~$ mv dir1 dir2 (将目录dir1改为dir2)

2.15 wc

  • 释义:计算字符数、单词数和行数
  • 常见用法:
gec@ubuntu:~$ wc          ==> 计算从键盘输入的数据,以ctrl+d结束
gec@ubuntu:~$ wc file.tx

2.16.压缩与解压命令
压缩与解压命令
Linux下最常用的压缩包格式是:- gz - bz2 - zip - xz
其中,gz和bz2格式一般都是通过tar命令来控制的,xz和zip格式各自由它们的同名命令控制。

tar

  • 释义:归档、释放与压缩、解压
  • 常见用法:
第一,归档与释放:
gec@ubuntu:~$ tar cf a.tar dir/*  ==> 将目录dir中的所有文件归档成a.tar*/
gec@ubuntu:~$ tar tf a.tar        ==> 查看归档文件a.tar
gec@ubuntu:~$ tar xf a.tar        ==> 释放归档文件a.tar

第二,压缩与解压:
gec@ubuntu:~$ tar czf a.tar.gz dir/*   ==> 将目录dir中的所有文件归档并压缩为gz格式*/(a.tar.gz自定义的压缩名字)
gec@ubuntu:~$ tar tf a.tar.gz          ==> 查看压缩文件a.tar.gz
gec@ubuntu:~$ tar xzf a.tar.gz         ==> 解压压缩文件a.tar.gz

gec@ubuntu:~$ tar cjf a.tar.bz2 dir/*  ==> 将目录dir中的所有文件归档并压缩为bz2格式*/
gec@ubuntu:~$ tar tf a.tar.bz2         ==> 查看压缩文件a.tar.bz2
gec@ubuntu:~$ tar xjf a.tar.bz2        ==> 解压压缩文件a.tar.bz2

第三,指定路径:
gec@ubuntu:~$ tar -xf a.tar -C /tmp      ==> 将文件释放到/tmp
gec@ubuntu:~$ tar -xzf a.tar.gz -C /tmp  ==> 将文件解压到/tmp

- 注意:
a.归档只是简单的将文件归拢到一起,不涉及压缩算法,文件不会变小
b.压缩会用到压缩算法,文件总体会变小。

xz

  • 释义:压缩与解压
  • 常见用法:
gec@ubuntu:~$ xz a.tar                 ==> 将文件a.tar压缩成a.tar.xz
gec@ubuntu:~$ xz --decompress a.tar.xz ==> 解压a.tar.xz

- 注意:
xz只能压缩单个文件,因此xz一般与tar配合使用,即:先用tar将要压缩的若干文件或目录归档成一个tar包,然后用xz将tar包压缩成xz格式压缩包。

zip
zip不是系统自带的命令,一般需要自己手工安装:

gec@ubuntu:~$ sudo apt install zip
  • 释义:压缩与解压
  • 常见用法:
gec@ubuntu:~$ zip a.zip file dir/  ==> 将指定的文件和目录压缩成a.zip
gec@ub

2.17.权限命令
chmod

  • 释义:修改文件权限
  • 常见用法:
gec@ubuntu:~$ chmod 644 file ==> 将文件权限改为644(110 100 100)
gec@ubuntu:~$ chmod 755 dir/ ==> 将目录权限改为755

在Linux中,文件的权限一般用rwx来表示:

  • r 代表read,可读
  • w 代表write,可写
  • x 代表excute,可执行

对于某个文件而言,系统中的所有用户被分成三类,它们是文件的所有者,文件的所属组成员和其他人。这三类用户对这个文件的rwx权限,可以由命令 ls -l 来查看:

gec@ubuntu:~$ ls -l
-rw-rw-r-- 1 gec gec 127  Oct 30 14:41 a.c
-rwxrwxr-x 1 gec gec 8768 Oct 30 14:41 a.out

在上述列子中,rwx三组权限对应了三种用户。当我们需要修改这些权限的时候,为了便于描述,一般用三个八进制数来对应这些权限为,如下表所示:

如此,权限 644 就代表了 rw-r–r–,权限 755 就代表了 rwxr-xr-x。

chown

  • 释义:change owner,修改文件的所有者
  • 常见用法:
gec@ubuntu:~$ sudo chown jack a.txt ==> 将文件a.txt的所有者修改为jack

chgrp

  • 释义:change group,修改文件的所属组
  • 常见用法:
gec@ubuntu:~$ sudo chgrp gec a.txt ==> 将文件a.txt的所属组修改为gec

用户管理命令
adduser/deluser

  • 释义:添加/删除系统用户
  • 常见用法:
gec@ubuntu:~$ sudo adduser jack ==> 添加用户jack
gec@ubuntu:~$ sudo deluser jack ==> 删除用户jack

2.18.进程管理命令
ps

  • 释义:process state,获取进程当前状态
  • 常见用法:
gec@ubuntu:~$ ps -ef
gec@ubuntu:~$ ps aux

top

  • 释义:持续跟踪进程状态
  • 常见用法:
gec@ubuntu:~$ top
gec@ubuntu:~$ top -p PID
  • 注意:
    top可以通过ctrl+左右箭头翻页

kill

  • 释义:向指定进程发送信号
  • 常见用法:
gec@ubuntu:~$ kill -l            ==> 查看系统所支持的所有的信号列表
gec@ubuntu:~$ kill -s SIGXXX PID ==> 向进程PID发送信号SIGXXX
gec@ubuntu:~$ kill -n PID        ==> 向进程PID发送第n号信号

2.19.系统管理命令
df

  • 释义:查看系统分区信息
  • 常见用法:
gec@ubuntu:~$ df -h
文件系统      总大小  已用   剩余 使用率% 挂载点
udev         916M     0  916M   0%   /dev
tmpfs        188M   11M  178M   6%   /run
/dev/vda1    50G   6.8G   40G  15%   /
tmpfs        937M   48K  936M   1%   /dev/shm
tmpfs        5.0M     0  5.0M   0%   /run/lock
tmpfs        937M     0  937M   0%   /sys/fs/cgroup
cgmfs        100K     0  100K   0%   /run/cgmanager/fs
tmpfs        188M     0  188M   0%   /run/user/500

du

  • 释义:查看系统分区信息
  • 常见用法:
gec@ubuntu:~$ du
gec@ubuntu:~$ du -sh xxx(查看文件大小)

fdisk

  • 释义:查看/设置硬盘分区
  • 常见用法:
gec@ubuntu:~$ sudo fdisk -l  ==> 查看当前系统已识别的分区。

提醒:
df只能查看已经识别且挂载了的分区,而fdisk可以查看未挂载的分区
实际上,在系统识别出了分区之后,一般需要使用fdisk来查看分区的名称,然后才能使用mount来挂载,然后才能使用df查看到。

mount / umount

  • 释义:挂载/卸载分区
  • 常见用法:
    挂载分区:
gec@ubuntu:~$ mount  /dev/sdb /mnt/u ==> 将分区sdb挂载到/mnt/u

卸载分区:

gec@ubuntu:~$ umount /dev/sdb        ==> 将分区sdb卸载
gec@ubuntu:~$ umount /mnt/u          ==> 将挂载点/mnt/u卸载

2.20.网络命令
hostname

  • 释义:查看系统主机名
  • 常见用法:
gec@ubuntu:~$ hostname
ubuntu
gec@ubuntu:~$ 

ifconfig

  • 释义:查看/设置系统IP地址
  • 常见用法:
查看当前活跃的网络接口
gec@ubuntu:~$ ifconfig

查看所有的网络接口
gec@ubuntu:~$ ifconfig -a

设置指定的网络接口的IP地址
gec@ubuntu:~$ ifconfig ens33 192.168.1.100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值