Linux(ubuntu) 基础

2023-05-16

本文主要讲解一些有关linux下的相关知识:

文章目录

  • 一 shell 命令
  • 二 文件系统
  • 三 ubuntu磁盘管理操作
  • 四 Ubuntu下压缩和解压缩
  • 五 ubuntu用户和组
  • 六 ubuntu 文件权限管理
  • 七 Linux连接文件操作
  • 八 补充

一 shell 命令

1、目录信息查看命令ls
ls -a 显示目录所有文件及文件夹,包括隐藏文件,比如以.开头的
ls test1/查看指定路径
2、目录切换命令cd
3、当前路径显示命令pwd
4、系统信息查看命令uname
5、清理屏幕命令clear
6、显示文件内容命令cat


7、切换用户身份命令sudo

su Mr.liang
su - Mr.liang  #这俩可以实现用户名的切换
exit 返回原用户

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

8、文件拷贝命令cp
9、切换用户命令su

普通用户下:sudo su
root用户下:su qjy 切换回来~


10、移动文件命令mv(重命名也用这个)
使用mv a.c b.c:就将a.c改成了b.c
使用mv test/ test1/:就将test改成了test1(修改了文件夹的名字)
使用mv a.c test1/:将文件移动到文件夹下(ls test1/查看文件)
11、创建文件夹命令mkdir
12、创建文件命令touch
13、删除命令rm
使用rm -r:删除目录(不包括子文件,会有提示是否删除子文件)
使用rm -rf:删除整个目录(包括子文件不提示)
14、目录删除命令rmdir

15、显示网络配置信息命令ifconfig
查看所有的网卡信息:ifconfig -a
查看网卡对应的IP地址:ifconfig | grep inet

打开xx网卡:ifconfig xx up
关闭xx网卡ifconfig xx down
重启xx网卡:ifconfig xx reload
配置ip地址: ifconfig xx 192.168.1.100
配置ip地址和子网掩码 ifconfig xx192.168.1.100 netmask 255.255.255.0

ping IP地址检测到目标主机是否连接正常

16、重启命令reboot
17、关机命令poweroff
shutdown -r now 现在立即关机

18、系统帮助命令man
在这里插入图片描述

19、数据同步写入磁盘命令sync
正常情况下数据先写入缓冲区,再到磁盘,为了延长磁盘寿命
20、查找文件命令find
常用find -name a.c
21、查找内容命令grep
-r是包含子目录 -n是在文件的位置 -i不区分大小写
例如: grep –i “被查找的字符串” 文件名
22、文件夹大小查看命令du
常用 -sh 显示我们常见的大小方式
23、磁盘空间检查命令df
24、使用gedit打开某个文件命令gedit
是个类似记事本的软件:gedit a.c
25、当前的系统进程查看命令ps
常用ps -au
26、进程实时运行状态
查看命令top
类似win下的任务管理器
27、文件类型查看命令file
查看一个文件是什么类型/ 版本,比如是不是arm系统能用的


磁盘信息命令 df du
df -h : disk free显示磁盘剩余空间
du -h[目录名]:disk usage 显示目录下的文件的大小


进程信息命令:ps top kill
ps aux:process status 查看进程的详细状况
top:动态显示运行中的进程并且排序
kill[-9]进程代号:终止指定代号的进程 -9表示强行终止

ps 默认只会显示当前用户通过终端启动的应用程序
选项说明:
a:终止终端上的所有进程,包括其他用户的进程
u:显示进程的详细状态
x:显示没有控制终端的进程


查找文件
find[路径】-name".py" :查找指定路径下扩展名是.py的文件
文件树的方式显示桌面下的文件结构:
tree


常用linux文件命令
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述


其他命令
echo文件内容
echo 会在终端显示参数指定的文字,通常会和重定向联合使用

重定向>和>>
linux允许将命令执行结果重定向到一个文件
将本应显示在终端上的内容输出/追加到指定文件中
其中:
> 表示输出,会覆盖文件原有的内容
>> 表示追加,会将内容追加到已有文件的末尾

管道 |
Linux允许将一个命令的输出可以通过管道作为另一个命令的输入
| 的左右分为两端,左端写东西,右端读东西


小技巧
ctrl+shift+= 放大终端窗口的字体显示
ctrl + -****缩小终端窗口的字体显示

注意:
使用rm命令要小心,因为文件删除后不能恢复
rm -f 强制删除


二 文件系统

1、根目录“/”

Linux下“/”就是根目录!所有的目录都是由根目录衍生出来的。
**位于/home/user :称为用户工作目录或家目录,表示方式 ~ **

在这里插入图片描述


2、Ubuntu文件系统结构
/bin 存放二进制可执行文件,这些命令在单用户模式下也能够使用。可以被root和一般的账号使用。

/boot Ubuntu内核和启动文件,比如vmlinuz-xxx。gurb引导装载程序。

/dev 设备驱动文件

/etc 存放一些系统配置文件,比如用户账号和密码文件,各种服务的起始地址。

/home 系统默认的用户主文件夹,一般创建用户账户的时候,默认的用户主文件夹都会放到此目录下。

/lib 存放库文件

/media 此目录下放置可插拔设备,比如SD卡,或者U盘就是挂载到这个目录中。

/mnt 用户可使用的挂载点,如果要挂载一些额外的设备,那么就可以挂载到此处。

/opt 可选的文件和程序存放目录,给第三方软件放置的目录。

/root root用户目录,也就是系统管理员目录。

/sbin 和/bin类似,也是存放一些二进制可执行文件。sbin下面的一般是系统开机过程中所需要的命令。

/srv 服务相关目录。比如网络服务。

/sys 记录内核信息,虚拟文件系统。

/tmp 临时目录

/var 存放一些变化的文件,比如日志文件
/usr usr不是user的缩写,而是UNIX Software Resource的缩写,存放于系统用户有关的文件,会占用很大的存储空间!

/proc 虚拟文件系统,数据放置到内存中,存放系统运行信息


3、绝对路径和相对路径

绝对路径:从根目录“/”算起的路径,以"/"开头的路径命名方式
相对路径:相对于目前路径的文件名写法,比如./home/zzk。不是以“/”开头的就行。
“.”代表当前路径,也可以 用“./”表示
“…”代表上一层目录,也可以用“…/”表示
在这里插入图片描述


三 ubuntu磁盘管理操作

1 ubuntu 磁盘文件

/dev/sd*文件,此类文件是磁盘设备文件,并不能直接访问磁盘,必须要将磁盘挂载到某一个目录下才可以访问。
/dev/sdb和/dev/sdb1是U盘的设备文件。
/dev/sdb表示U盘,/dev/sdb1表示U盘的第一个分区。


2 磁盘和目录的容量查询命令
df:列出文件系统的整体磁盘使用量。主要查看个文件系统的使用量,
du:评估文件系统的磁盘使用量,主要查看单个文件的大小。


3 磁盘挂载与卸载,分区和格式化

1)磁盘的挂载和卸载
mount和umount命令
sudo mount /dev/sdb1 /media/qjy/udisk/
sudo umount /media/qjy/udisk
2)磁盘分区
fdisk命令
sudo fdisk -l :列出所有分区
3)磁盘格式化
磁盘分区创建好以后就可以格式化磁盘,使用命令mkfs。如:
mkfs -t vfat /dev/sdx

4) 磁盘信息
在这里插入图片描述


四 Ubuntu下压缩和解压缩

Linux下常用的压缩扩展名有:.tar、.tar.bz2、.tar.gz

1 gzip压缩工具
gzip工具负责压缩和解压缩.gz格式的压缩包。
gzip xxx //压缩
gzip -d xxx.gz //解压缩

gzip对文件夹进行压缩
gzip -r xxx //对文件夹进行压缩
gzip -rd xxx.gz //对文件夹进行解压缩

gzip虽然可以对文件夹进行压缩,但是并不能提供打包的服务,只是对文件夹中的所有文件进行了单独的压缩。


2 bzip2压缩工具
和gzip类似,只是bzip2工具负责压缩和解压缩.bz2格式的压缩包。
bzip2 -z xxx //压缩
bzip2 -d xxx.gz //解压缩


3 tar打包工具【重点】

tar工具参数:
-f,使用归档文件或 ARCHIVE 设备
-c:创建新归档,创建压缩文件
-x:从归档中解出文件,解压缩
-j:使用bzip2压缩格式。
-z:使用gzip压缩格式
-v:打印出命令执行过程。

tar工具提供打包服务,就是将多个文件打包,比如

tar -vcf test.tar test	//将test打包成test.tar
tar -vxf test.tar		//解包

需要注意的是:
各个参数中 f 需要放在最后面,其他的可以放在任意位置。

上面的tar命令只提供了打包和解包的功能,tar在提供打包和解包的同时使用gzip/bzip2进行压缩,实现类似windwos下winRAR软件的命令。


【重点】:这里是对打包好的.tar进行进一步操作

1、对.tar.bz2进行压缩和解压缩

tar -vxjf xxx.tar.bz2	解压缩
tar -vcjf xxx.tar.bz2 【压缩文件名】 压缩

2、对.tar.gz进行压缩和解压缩

tar -vxzf	xxx.tar.gz		//解压缩
tar -vczf xxx.tar.gz 【压缩文件名】	//压缩

其他格式的压缩和解压缩

1、.rar格式
需要先安装rar:sudo apt-get install rar
rar x xxx.rar		//解压缩
rar a xxx.rar xxx	//压缩

2、.zip格式
zip格式压缩使用“zip“命令:
zip -rv xxx.zip xxx	

zip格式解压缩使用“unzip”命令:
unzip -v xxx.zip


五 ubuntu用户和组

1 Linux用户

Linux是一个多用户操作系统,不同的用户拥有不同的权限。可以查看和操作不同的文件。 Ubuntu有三种用户:

  1. 初次创建的用户。
  2. root用户
  3. 普通用户。

初次创建的用户权限比普通用户多,但是没有root用户多,初次创建的用户可以创建普通用户。

Linux用户记录在/etc/passwd这个文件内
Linux用户密码记录在/etc/shadow这个文件内
每个用户都有一个ID,叫做UID。

在这里插入图片描述
ls-l 查看文件夹下的文件的详细信息,对每个文件从左到右的信息,最左边是可以对此文件进行的权限,要学会查看这些可以操作的权限来决定哪些文件可以进行哪些操作:
在这里插入图片描述
大多数情况下 用户组和用户名是相同的
在文件详细信息的从左到右的第一列数字是硬连接数,
所谓的硬链接数就是有多少种方式可以访问到当前目录、文件


2 Linux用户组
为了方便管理,将用户进行分组。这样就可以设置非本组人员不能访问某些文件。

每个用户可以属于多个不同的组

用户:家里有你、弟弟、妹妹个人,每个人都有自己的房间,你们三个人都是用户,你们都不能随便的乱翻别人的房间。
用户组:你们三个都是一个家庭的,也就是属于同一个用户组,你们三个可以共用厨房,书房等空间。

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

**用户组信息存储在/etc/group文件**中。


3 创建用户和用户组
1)图形化界面创建
要使用图形化界面创建用户和用户组的话就需要安装gnome-system-tools这个工具

sudo apt-get install gnome-system-tools

2 命令创建用户和用户组 【重点】

添加用户 adduser命令: adduser 用户名
用户查询 finger命令: finger 用户名
修改用户密码 passwd命令: passwd 用户名
删除用户 deluser命令: deluser 用户名
添加用户组 addgroup命令: addgroup 用户组名
显示组内用户名 groups命令: groups 用户组名
删除用户组 delgroup命令: delgroup用户组名


组管理终端命令:
在这里插入图片描述
常见的命令格式
sudo groupadd /groupdel dev (增加减少一个名为dev的组)
执行增加减少组的操作命令前都必须增加sudo

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


用户管理 终端命令

创建用户/设置密码/删除用户
在这里插入图片描述
提示
创建用户/删除用户/修改其他用户密码的终端命令都需要通过sudo执行
创建用户时,如果忘记添加-m选项指定新用户的家目录,最简单的方式就是删除用户重新创建
用户信息保存在**/etc/passwd**中

**【重点】**演示:
创建一个新用户Mr-liang:sudo useradd -m -g dev Mr-liang dev是指定用户所在的组
设置用户新的密码sudo passwd Mr-liang


查看用户信息
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述


六 ubuntu 文件权限管理

1 文件权限有哪些

文件权限是指不同的用户或用户组对某个文件拥有的权限,文件的权限分为三种:
r:读
w:写
x:可执行。
文件描述形式如下:

-rw-rw-r—就是文件权限,第一位表示文件类型,剩下的每三位表示一组权限。
分别对应拥有者权限、拥有者所在组权限、其他用户权限
可以使用二进制表示文件权限:

0000
8421
 rwx

r=4
w=2
x=1

每一个权限对应一个数字,可以通过数字的和来判定可以操作的权限。
在这里插入图片描述在这里插入图片描述
示例:
在这里插入图片描述


文件信息:- rw- rw- r–,
表示:
所属用户拥有读写权限无可执行权限。
组内其他用户拥有读写权限无可执行权限,
其他用户仅有可读权限。


2 ubuntu文件权限修改

**chmod**可以修改用 户/组文件/目录 的权限
命令格式如下:

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

**+/-**表示增加减少权限 , r w x 分别表示读、写、执行命令
每减少一个权限就表示禁止对这个权限进行操作
+x表示将此文件变为可执行权限,此时该文件变为**绿色**
./文件名 就可以对它进行执行


默认文件的访问权限
【创建一个新的文件,其默认文件的权限对文件的拥有者来说是可读可写可执行,对组用户而言也是可读可写可执行,对其他用户而言是可读可执行。】

1) 修改文件权限命令 chmod

chmod 777 xxx
修改xxx文件的权限为777 代表着-rwx-rwx-rwx可读可写可执行

2)修改文件所属用户命令 chown

chown 用户名 文件名|目录名

3)递归的修改 文件|目录 的组 chgrp

chgrp -R 组名 文件名|目录名

示例:
将Python学习这个文件的所有者由nice-feng 改为Mr-liang
在这里插入图片描述


七 Linux连接文件操作

1 Linux连接文件
Linux有两种连接文件:符号连接(软连接)和硬链接,
符号链接类似Windows下的快捷方式。
硬链接通过文件系统的inode连接来产生新文件名,而不是产生新文件。(都删了这个文件才会被删除)

inode 索引节点:记录文件属性,一个文件一个inode
inode相当于文件ID,查找文件的时候要先找到inode,然后才能读出文件的内容。


2 Ln 命令
ln命令用于创建连接文件:

ln [选项] 源文件 目标文件
选项:
-s 创建符号链接(软连接)
-f 强制创建连接文件,如果目标存在,那么先删除掉目标文件,然后再建立连接文件。

3 硬链接

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


4 符号连接(软连接)

符号连接类似Windows下的快捷方式,符号链接也叫做软连接,软连接要用的多。
符号连接相当于创建了一个独立的文件,这个文件会让数据读取指向它连接的哪个文件的文件名。软连接的特点:
①、可以连接到目录。
②、可以跨文件系统。
③、删除源文件以后,软连接文件也就“打不开了”。
④、符号连接文件通过->来指示具体的连接文件。
⑤、**符号连接要使用绝对路径,否则在复制软连接文件后,连接出问题。**

示例:
ln -s /home/qjy/hello.c hello // 对于源文件要使用绝对路径

在这里插入图片描述在这里插入图片描述

创建软连接示例
创建01.py的快捷方式01_xiangdui 则运行01_xiangdui 就可以调用01.py的文件:
在这里插入图片描述


八 补充

1 Linux下创建和运行py文件

首先创建.py文件:touch test.py
编辑py文件:vim test.py 进入IDE编写程序
运行py文件:python test.py


2 安装yum不成功

Sudo apt-get install yum 此时安不上yum会报错。
更改命令:
sudo apt-get install aptitude
然后利用apltitude来安装:
sudo aptitude install yum此时可以成功安装yum

aptitude与apt-get的区别和联系
aptitude 与 apt-get 都是Debian及其衍生系统中的包管理工具。aptitude 在处理包依赖问题上更好。言外之意,有些软件用apt-get 安不上,但是可以用aptitude 安上。


3 远程操作下进行文件的拷贝复制 SCP
在这里插入图片描述在这里插入图片描述在这里插入图片描述


4 实现Win和linux之间的文件传输

重点掌握:
【如何在Windows下与Linux系统下进行文件传输】
在win下可以安装PuTTY使用pscp命令行工具或者安装**FileZilla**使用FTP(端口号22)(文件传输协议)进行文件传输。
实例 win下zhangliang 连接nice-feng
官网直接搜索FileZilla安装FileZilla client即可实现
在这里插入图片描述


5 Xshell远程连接 && SSH
【Windows下安装Xshell 远程连接nice-feng】:
新建对话-输入nice-feng的主机地址:219.216.115.32 -输入nice-feng的密码
就可以在Xshell远程控制nice-feng
使用exit退出当前用户的登录

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux(ubuntu) 基础 的相关文章

  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • 监控子进程的内存使用情况

    我有一个 Linux 守护进程 它分叉几个子进程并监视它们是否崩溃 根据需要重新启动 如果父进程可以监视子进程的内存使用情况 以检测内存泄漏并在超出一定大小时重新启动子进程 那就太好了 我怎样才能做到这一点 您应该能够从 proc PID
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • 如何允许应用程序声明“https”方案 URI? (即如何从 https URL 打开桌面应用程序?)

    目前我正在尝试为 OAuth 2 0 授权流程创建一个客户端 实际上是一个本机应用程序 并且在规范中就在这儿 https www rfc editor org rfc rfc8252 section 7 2据说有 3 种方法来处理重定向 U
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 简单的openGL程序无法在ubuntu中链接

    我正在尝试进入 opengl 编程 但无法编译我的第一个非常非常简单的程序 链接过程每次都会失败 我发现这个答案 https stackoverflow com questions 859501 learning opengl in ubu
  • X11 模式对话框

    如何使用 Xlib 在 X11 中创建模式对话框 模态对话框是一个位于应用程序其他窗口之上的窗口 就像瞬态窗口一样 并且拒绝将焦点给予应用程序的其他窗口 在 Windows 中 当试图从模态窗口夺取焦点时 模态也会通过闪 烁模态窗口的标题栏
  • 使用 inotify 的正确方法是什么?

    我想使用inotifyLinux 上的机制 我希望我的应用程序知道文件何时aaa被改变了 您能给我提供一个如何做到这一点的示例吗 文档 来自监视文件系统活动 inotify https developer ibm com tutorials
  • pprof 和 ps 之间的内存使用差异

    我一直在尝试分析用 cobra 构建的 cli 工具的堆使用情况 这pprof工具显示如下 Flat Flat Sum Cum Cum Name Inlined 1 58GB 49 98 49 98 1 58GB 49 98 os Read
  • 从c调用汇编函数

    我试图从 c 调用汇编函数 但我不断收到错误 text globl integrate type integrate function integrate push ebp mov esp ebp mov 0 edi start loop
  • dlopen 或 dlclose 未调用信号处理程序

    我在随机时间内收到分段错误 我注册了信号 但发生分段错误时未调用信号处理程序 include
  • 这种 bash 文件名提取技术有何用途?

    我有一部分 bash 脚本正在获取不带扩展名的文件名 但我试图了解这里到底发生了什么 是做什么用的 有人可以详细说明 bash 在幕后做了什么吗 如何在一般基础上使用该技术 bin bash for src in tif do txt sr

随机推荐