3、Linux命令入门

此文编写参照韦东山老师教程和正点原子教程


入门可以参照以下链接
linux命令入门1
linux命令入门2
linux命令入门3
linux常用命令大全

一、Ubuntu终端操作

打开终端进行命令行操作,可以用tab键进行命令补全

二、常用命令

linux命令的格式
命令 [选项] [参数]

1、pwd:打印当前所在的路径

2、cd :切换路径

cd ~切换到当前用户的家目录
cd . 切换到当前路径
cd … 切换到上一级路径
cd …/… 切换到上上级路径(其中:在linux中路径分隔符为斜杠/)
cd - 切换到上一次的路径
举例:
/home/book 是绝对路径
相对路径一般以.和…来构成
1)
当前路径为/bin,然后./pwd就是执行了/bin/pwd
2)
当前路径为/home/book/100ask
然后cd …/Videos/就到达/home/book/Videos
cd …/…就到达/home
注意事项:
1)你切换的路径必须保证存在,可以使用ls命令来查看某一个路径下面的所有内容。
2)一定要记得多使用tab键。

3、ls:列出目录内容

cd切换路径,然后在使用ls来查看目录内容
举例:
命令 [选项] [参数]
1)ls
直接ls,则显示当前所在目录的内容

2)ls 目录名
如:ls /home,则指定显示/home的内容
如:ls ~ ,则指定显示/home/book的内容

3)ls 选项
或:ls 选项 目录名
常用的选项:
-l(long的缩写),显示目录下文件的更详细的信息(文件权限、文件最后修改时间、文件大小)
-a(all的缩写),显示了隐藏文件
-h(human-able的缩写),将文件大小以K(KB)、M(MB)、G(GB)来表示
-i显示文件和目录的inode编号

4、目录的操作

mkdir:创建目录
命令 [选项] [参数]

举例:
1)mkdir 目录名
mkdir dir0 创建了dir0这个目录

2)mkdir -p 父目录/子目录
mkdir -p dir1/dir2
-p(parents的缩写)
连续创建多级目录(父目录和子目录),如果父目录不存在,则需要加入-p参数。

//========================================================
rmdir :删除目录
举例:
1)rmdir 目录名
注意:rmdir不能删除非空目录(非空目录:该目录下面有子目录或者文件)

5、文件的操作

touch:新建文件
touch 文件名
举例:
touch file1在当前目录新建名为file1的文件
注意:同一目录无法创建同名的文件
//========================================================
mv(move的缩写):修改文件(目录)名、移动路径
mv 旧文件名 新文件名 ====>修改文件名
如:mv file1 filea将当前目录的文件file1改名为filea

mv 旧目录名 新目录名 ====>修改目录名
如:mv dir1 dira将当前目录下的目录dir1改为dira

mv 文件名 目录名 ====>移动路径
如:mv filea dira将当前目录下filea移动到dira子目录
如:mv filea ~ 将当前目录下filea移动家目录
如:mv ~/filea …将家目录下的fila移动到上一个路径

//========================================================
cp(copy的缩写):复制文件(目录)
1) cp 源文件名 目标文件名
举例:
cp File1 file2将当前目录下的文件File1拷贝成file2

2) cp 源文件名 目标目录名
举例:
cp file2 dira/将当前目录下的文件file2拷贝到dira子目录

2) cp 源目录名 目标目录名
举例:
cp -r dira dirb
复制dira目录下的所有内容到dirb,其中,-r参数时递归复制
cp -i file2 dira如果dira目录下面有同名的file2,加入-i参数就会要求你确认是否覆盖同名的文件

注意:cp的常用参数有:-i,-r,-f,-d等

//========================================================
rm(remove的缩写):删除文件(目录)
rm [选项] [文件名 | 目录名]

常用选项:
-i(interactive(交互)的缩写),删除文件(目录)之前,要求你确认是否同意删除
-r(recursive(递归)的缩写),递归删除指定目录下的子目录和文件
-f(force(强制)的缩写),强制删除

举例:
rm File1 删除当前目录下的文件File1
rm -i file2 删除文件file2,删除前要求你确认是否同意删除,其中y表明同意删除,n表示取消删除
rm -r dira 删除目录dira
rm -ir dirb 删除目录dirb,删除前要求你确认是否同意删除,其中y表明同意删除,n表示取消删除

注意:
1)删除文件(目录)前,确定该文件(目录)是否可以被删除。
2)rm的常用参数有:-i,-r,-f等,

//========================================================
文件的查看和编辑
1)cat 查看文件内容
cat 文件名

举例:
cat file1 将file1的内容打印到标准输出中(默认标准标准输出指向终端)
cat file1 file2 将file1和file2的内容串联并依次全部打印到标准输出中
cat -n file1 显示内容并在内容前显示行号。

类似的查看命令:more、less、head、tail

2)gedit图形应用程序的编辑器

3)vi 编辑器

clear:刷新屏幕,保留历史命令操作记录
说明:此命令本质上只是让终端向后翻一页,
当向上滚动鼠标时,还是可以看到之前命令的操作记录
reset:重新初始化屏幕,清除历史命令操作记录

6、查找命令

find
目的:查找符合条件的文件
1)在那些目录中查找
2)查找的内容
格式: find 目录名 选项 查找条件
举例:
1)find /work/001_linux_basic/dira/ -name “test1.txt”
说明:
a)/work/001_linux_basic/dira/指明了查找的路径
b)-name表明以名字来查找文件
c)“test1.txt”,就指明查找名为test1.txt的文件
同理:
find /work/001_linux_basic/dira/ -name ".txt"
查找指定目录下面所以以.txt结尾的文件,其中
是通配符。
find /work/001_linux_basic -name “dira”
查找指定目录下面是否存在dira这个目录,dira是目录名。
注意:
1)如果没有指定查找目录,则为当前目录。
find . -name “.txt" 其中.代表当前路径
find -name "
.txt”
都是一样的功能

2)find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件
find /home -mtime -2 查找/home目录下两天内有变动的文件

//========================================================
grep
目的:使用grep命令来查找文件中符合条件的字符串
格式:grep [选项] [查找模式] [文件名]

将dira目录的test1.txt和dirb目录的test1.txt都含有如下内容:
aaa
AAAAAA
abc
abcabcabc
cbacbacba
match_pattern
nand->erase

查找字符串时希望显示如下内容:
1)所在的文件名----grep查找时默认已经显示目标文件名
2)所在的行号------使用-n选项

grep -rn “字符串” 文件名
r(recursive):递归查找
n(number):显示目标位置的行号
字符串:要查找的字符串
文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录

举例:
grep -n “abc” test1.txt 在test1.txt中查找字符串abc
grep -rn “abc” * 在当前目录递归查找字符串abc

注意:
1)可以加入-w全字匹配。

//========================================================
file
目的:识别文件类型
格式: file 文件名
linux下一切皆文件

举例:
file ~/.bashrc 为ASCII 编码的text类型
file ~/.vimrc 为UTF-8 Unicode 编码的text类型
file ~/Pictures/* 如图形文件JPEG/PNG/BMP格式
file ~/100ask/ 为directory表明这是一个目录
file /bin/pwd 出现 ELF 64-bit LSB executable,即为ELF格式的可执行文件
file /dev/* 出现character special(字符设备文件)、 block special(块设备文件)等

//========================================================
which和whereis
目的:查找命令或应用程序的所在位置
格式:which 命令名/应用程序名

在终端上执行pwd实际上是去执行了/bin/pwd
举例:
which pwd 定位到/bin/pwd
which gcc 定位到/usr/bin/gcc
whereis pwd查找到可执行程序的位置/bin/pwd和手册页的位置/usr/share/man/man1/pwd.1.gz

//========================================================
文件夹大小查看命令du

7、用户管理

一、Linux用户
Linux是一个多用户操作系统,不同的用户拥有不同的权限。可以查看和操作不同的文件。 Ubuntu有三种用户:
1、初次创建的用户。
2、root用户
3、普通用户。

初次创建的用户权限比普通用户多,但是没有root用户多
Linux用户记录在/etc/passwd这个文件内。
Linux用户密码记录在/etc/shadow这个文件内。
每个用户都有一个ID,叫做UID。

二、Linux用户组
为了方便管理,将用户进行分组。这样就可以设置非本组人员不能访问某些文件。每个用户可以属于多个不同的组。
用户:家里有你、弟弟、妹妹个人,每个人都有自己的房间,你们三个人都是用户,你们都不能随便的乱翻别人的房间。
用户组:你们三个都是一个家庭的,也就是属于同一个用户组,你们三个可以共用厨房,书房等空间。

因此:
用户和用户组的存在就是为了控制文件的访问权限的。
每个用户组都有一个ID,叫做GID。
用户组信息存储在/etc/group文件中。

三、创建用户和用户组
1、图形化界面创建
要使用图形化界面创建用户和用户组的话就需要安装gnome-system-tools这个工具:
sudo apt-get install gnome-system-tools
2、命令创建用户和用户组、切换用户
(1)切换用户身份命令sudo
(2)添加用户命令adduser(需要root权限)
sudo adduser liu
(3)切换用户命令su
sudo su [用户](若没有指定,则切换到root)
(4)删除用户命令deluser
-remove-all-files 删除与用户有关的所有文件。

如:sudo deluser liu

(5)用户查询:finger命令,finger 用户名
(6)修改用户密码:passwd命令,passwd 用户名
(7) 添加用户组:addgroup命令,addgroup 用户组名
(8)显示组内用户名:groups命令,groups 用户组名
(9)删除用户组:delgroup命令,delgroup用户组名

8、网络

显示网络配置信息命令ifconfig
ifconfig interface options | address
主要参数如下:
interface 网络接口名称,比如 eth0 等。
up 开启网络设备。
down 关闭网络设备。
add IP 地址,设置网络 IP 地址。
如:sudo ifconfig ens33 192.168.5.8

Linux重启网卡的三种方法:
一、network
利用root帐户
service network restart
或者/etc/init.d/networking restart
二、ifdown/ifup
ifdown eth0
ifup eth0
三、ifconfig
ifconfig eth0 down
ifconfig eth0 up

9、系统

重启命令reboot
关机命令poweroff

//========================================================
帮助命令
man、info、–help
1)man使用的最多
ls 常用选项为-l、-a、-h
可以通过man ls来查看这些选项的含义。
举例:
man man 查看man手册的说明
man ls 当没有指定使用那一页,默认使用第1页
man 1 ls
man 1 gcc gcc是一个应用程序,在linux中一般使用gcc编译器来编译c/c++语言的程序
open/write/read/close等等都是系统调用
man 2 open 查看系统调用open的man手册说明
注意:
man手册的9册内容的侧重点,最好记一下。
2)info
如info ls
3)–help
如ls --help

//========================================================
系统信息查看命令uname
uname -o
uname -s
uname -r
当前的系统进程查看命令ps
进程实时运行状态查看命令top

10、压缩

1.压缩的概念
1)压缩的目的:
在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。
接受者接受文件后,解压即可。

2)压缩的类型
有损压缩、无损压缩。
a)有损压缩:
如mp4视频文件,即使压缩过程中,减少了很多帧的数据,
对观看者而言,也没有影响。当然mp3音乐文件也是有损压缩。
b)无损压缩:
如普通文件的压缩,为了保证信息的正确传递,
不希望文件经过压缩或解压后,出现问题。

inux下常用的压缩命令
单个文件的压缩(解压)使用gzip 和bzip2
多个文件和目录使用tar

//========================================================
单个文件的压缩
//========================================================
gzip的常用选项
-l(list) 列出压缩文件的内容
-k(keep) 在压缩或解压时,保留输入文件。
-d(decompress) 将压缩文件进行解压缩

1)查看
gzip -l 压缩文件名
比如:gzip -l pwd.1.gz

2)解压
gzip -kd 压缩文件名
比如:gzip -kd pwd.1.gz
该压缩文件是以.gz结尾的单个文件

3)压缩
gzip -k 源文件名
比如:gzip -k mypwd.1
得到了一个.gz结尾的压缩文件

注意:
1)如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,
并删除原有的文件,所以说,推荐使用gzip -k 来压缩源文件。

2)相同的文件内容,如果文件名不同,压缩后的大小也不同。

3)gzip只能压缩单个文件,不能压缩目录。

提示:
man pwd会解压/usr/share/man/man1/pwd.1.gz这个文件,
然后读取该文件中固定的格式的一些信息,然后显示到终端中。

//========================================================
bzip2来压缩单个文件
bzip2的常用选项
-k(keep) 在压缩或解压时,保留输入文件。
-d(decompress) 将压缩文件进行解压缩
1)压缩
bzip2 -k 源文件名
比如:bzip2 -k mypwd.1
得到一个.bz2后缀的压缩文件
2)解压
bzip2 -kd 压缩文件名
bzip2 -kd mypwd.1.bz2
注意:
1)如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件,
并删除原有的文件,所以说,推荐使用bzip2 -k 来压缩源文件。
2)bzip2只能压缩单个文件,不能压缩目录。

单个文件的压缩使用gzip或bzip2,
压缩有两个参数:1)压缩时间 2)压缩比
一般情况下,小文件使用gzip来压缩,大文件使用bzip2来压缩。
mypwd.1源大小是1477字节,
gzip压缩后mypwd.1.gz是877字节,
bzip2压缩后mypwd.1.bz2是939字节。
myls.1源文件大小7664字节,
gzip压缩后myls.1.gz是3144字节,
bzip2压缩后myls.1.bz2是3070字节。

//============================================================
打包压缩
//========================================================
gzip、bizp2只能对一个文件进行压缩,而不能对多个文件和目录进行压缩。
所以需要tar来对多个目录、文件进行打包和压缩。

tar常用选项
-c(create) 表示创建用来生成文件包
-x:表示提取,从文件包中提取文件
-t可以查看压缩的文件。
-z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-j使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-v(verbose)详细报告tar处理的信息
-f(file)表示文件,后面接着一个文件名。
-C <指定目录> 解压到指定目录

1.tar打包、gzip压缩
1)压缩
tar -czvf 压缩文件名 目录名
如:tar czvf dira.tar.gz dira
注意:
tar -czvf与tar czvf是一样的效果,所以说,后面统一取消-。

2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.gz

3)解压
tar xzvf 压缩文件名
tar xzvf 压缩文件名 -C 指定目录
如:tar xzvf dira.tar.gz 解压到当前目录
如:tar xzvf dira.tar.gz -C /home/book 解压到/home/book

2.tar打包、bzip2压缩
1)压缩
tar cjvf 压缩文件名 目录名
如:tar cjvf dira.tar.bz2 dira

2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.bz2

3)解压
tar xjvf 压缩文件名
tar xjvf 压缩文件名 -C 指定目录
如:tar xjvf dira.tar.bz2 解压到当前目录
如:tar xjvf dira.tar.bz2 -C /home/book 解压到/home/book

11、磁盘

(1)磁盘查看命令df

(2)显示目录或文件的大小,可显示指定的目录或文件所占用的磁盘空间用du命令

du --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
如:du --max-depth=1

(3)数据同步写入磁盘命令sync

(4)挂载分区命令和卸载命令
卸载命令:sudo umount [挂载点]
挂载命令:mount -o iocharset=utf8 [要挂载的设备] [要挂载的目标目录]

-o iocharset=utf8是告诉系统要用eft8的方式来编码,可防止挂载后中文乱码

在linux下,硬件设备也是看做文件,如插入u盘,是无法直接cd 到u盘硬件设备的,如下所示:
在这里插入图片描述
所以要通过目录来进行访问,如下:
在这里插入图片描述
下面就介绍一下挂载分区命令和卸载命令
在这里插入图片描述

卸载命令umount
我们可以卸载掉原来的挂载点,原来的挂载点是:/media/book/36AC-7FE0
可以用命令:sudo umount [挂载点],如下:
在这里插入图片描述
挂载分区命令
1、首先现在要挂载的目录下创建一个目录,如下
在这里插入图片描述
2、然后将u盘挂载到该目录下。
挂载命令为:mount -o iocharset=utf8 [要挂载的设备] [要挂载的目标目录]
具体操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意要删除挂载目录的话,首先得用卸载命令,然后再删除目录,如下
在这里插入图片描述

(5)磁盘分区操作

sudo fdisk [指定设备]
sudo fdisk -l 列出指定的外围设备的分区表状况

(6)建立各种文件系统。

sudo mkfs -t [指定的文件系统类型]

12、软件下载、更新、卸载操作

APT 下载工具和“install”命令结合在一起构成了 Ubuntu 下最常用的下载和安装软件方法。它解决了 Linux 平台下一安装软件的一个缺陷,即软件之间相互依赖。
1、更新本地数据库
如果想查看本地哪些软件可以更新的话可以使用如下命令:
sudo apt-get update
2、检查依赖关系
有时候本地某些软件可能存在依赖关系,所谓依赖关系就是 A 软件依赖于 B 软件。通过如下命令可以查看依赖关系,如果存在依赖关系的话 APT 会提出解决方案:
sudo apt-get check
3、软件安装
这个是重点了,安装软件,使用如下命令:
sudo apt-get install package-name
可以看出上述命令是由“apt-get”和“install”组合在一起的,“package-name”就是要安装的软件名字,“apt-get”负责下载软件,“install”负责安装软件。
4、软件更新
sudo apt-get upgrade package-name,其中 package-name 为要升级的软件名字
5、卸载软件
如果要卸载某个软件的话使用如下命令:
sudo apt-get remove package-name,其中 package-name 是要卸载的软件

13、文件权限

一、Ubuntu/Linux文件权限
文件权限是指不同的用户或用户组对某个文件拥有的权限,文件的权限分为三种:
r:读
w:写
x:可执行。
-rw-rw-r—就是文件权限,第一位表示文件类型,剩下的每三位表示一组权限。分别对应拥有者权限、拥有者所在组权限、其他用户权限。
可以使用二进制表示文件权限。
r=4
w=2
x=1

举例:a.c文件信息:

- rw- rw- r--

a.c所属用户拥有读写权限无可执行权限。组内其他用户拥有读写权限无可执行权限,其他用户仅有可读权限。

二、Ubuntu/Linux文件权限修改
1、修改文件权限命令
chmod命令
(1)可通过二进制数字来进行修改,如- rwxrwxrwx,开头代表文件类型,此处表示普通文件,3位为1组,此处用二进制数来表示就是-777
(2)也可以通过字母来进行修改,按照a、u、g、o表示文件与用户之间的归属关系,如可以这样执行命令:chmod u+x 【文件】,这样该文件就有可执行的权限了。
在这里插入图片描述
举例:
在这里插入图片描述

2、修改文件所属用户和用户组
chown命令

在这里插入图片描述

14、连接文件

一、Linux连接文件
Linux有两种连接文件:符号连接(软连接)和硬链接,符号链接类似Windows下的快捷方式。硬链接通过文件系统的inode连接来产生新文件名,而不是产生新文件。

二、inode是什么?
理解inode,要从文件存储说起。
文件存储在硬盘上,硬盘的最小存储单位叫做”扇区”,每个扇区储存512字节。
操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。块的大小,最常见的是4kb,即连续八个sector(扇区)组成一个block(块)。
文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者,文件的创建日期,文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名:索引节点。所以inode是用来记录文件属性的,一个文件一个inode。inode相当于文件ID,查找文件的时候要先找到inode,然后才能读出文件的内容。

三、硬连接和软连接的特性
1、硬连接
硬链接是多个文件都指向同一个inode,硬链接知识点:
①、具有相同inode的多个文件互为硬链接文件,创建硬链接相当于文件实体多了入口。
②、对于硬链接文件,只有删除了源文件以及对应的所有硬连接文件,文件实体才会被删除。
③、根据硬链接文件的特点,我们可以通过给文件创建硬连接的方式来防止文件误删除。
④、不论修改源文件还是连接文件,另一个文件的数据都会被改变。
⑤、硬连接不能跨文件系统。
⑥、硬连接不能连接到目录。
因为以上这些限制,硬链接其实不常用。

2、符号连接(软连接)
符号连接类似Windows下的快捷方式,符号链接也叫做软连接,软连接要用的多。符号连接相当于创建了一个独立的文件,这个文件会让数据读取指向它连接的哪个文件的文件名。软连接的特点:
①、可以连接到目录。
②、可以跨文件系统。
③、删除源文件以后,软连接文件也就“打不开了”。
④、符号连接文件通过->来指示具体的连接文件。
⑤、符号连接要使用绝对路径,否则连接出问题。
⑥、拷贝软连接时一定要加上-d选项,否则就是将整个文件给拷贝进去了,而不是单单拷贝连接了。

四、如何创建连接文件和查看inode号
ln命令用于创建连接文件:
ln [选项] 源文件 目标文件
选项-s 创建符号链接(软连接)
-f 强制创建连接文件,如果目标存在,那么先删除掉目标文件,然后再建立连接文件
不带选项时默认创建硬连接
查看:ls -i 文件名
(1)硬连接例程如下:
在这里插入图片描述
(2)软连接例程如下:
在这里插入图片描述

15、终止程序命令

Ctrl+c 在命令行下起着终止当前执行程序的作用,对于编程时进入死循环,可以使用该命令

Ctrl+d 相当于exit命令,退出当前shell

Ctrl+s 挂起当前shell(保护作用很明显哦)

Ctrl+q 解冻挂起的shell

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值