欢迎来到电脑知识学习网,专业的电脑知识大全学习平台!

手机版

u盘linux命令-(linux 命令行 u盘)

病毒安全 发布时间:2023-08-12 08:33:07
u盘linux命令 (linux 命令行 u盘)



Liunx系统操作指令大全(从基础知识到应用,全网最全)速查手册

学习Linux的方法

1、首要要建立一个整体的学习框架,不要上来就扣细节;

2、你不需要掌握所有的命令,但是你一定要学会查询手册或者百度。因为Linux命令实在是太多了,不需要你把所有的命令都精通了,每个人的工作内容以及涉及到的业务范围都是有限的,没有那必要浪费太多时间去记忆所有的指令,但是一定要会查遗补漏,百度是最好的老师直接搜索得结果。https://www.linuxcool.com/

3.学Linux的时候要注意先know how 在know why,即知道怎么做,然后知道为什么,这是学工科的一个特点,我们在学习的过程中,有时候对这个知识点不太理解,没有关系,我们知道怎么做,然后到后面一个项目或者应用场景的时候,回头一想,一下就一目了然水到渠成。

4.不仅是Llinux,计算机学科也一定是在做的过程中学会的,实践很重要。

5.切勿囫囵吞枣,在学习过程中肯定会遇到各种各样的拦路虎,最好是当下直接拿下,难点拿下,但是在学习过程中有些难题一时半会儿很难攻克,也不要停止学习的脚步,可以继续往后学到某个阶段,再返回来看这个知识点其实也很容易理解,因为有很多的知识点理解,它涉及到其他知识,而这个知识它在这个地方还没有马上理解,当然什么都不懂也不能直接往后冲,最起码的努力的理解,也找别人问过了,可以适当放一放,再往后学的过程中时刻想着,前面的某个知识点没有理解,再觉得自己可以理解了就往回看看。

6.Linux不是编程,注重实践操作,例如一般常见命令需要熟练掌握。

Linux各个学习阶段整体规划

一、初级阶段:

1. 熟练掌握linux常用的命令,大概在80个左右。

2. 掌握linux软件包的常用安装方法,例如源码安装,rpm方式安装等等。

3. 学习安装设备驱动程序(比如网卡、显卡驱动)

4. 熟悉Grub/Lilo引导程序及简单的修复操作。

5. 熟悉Linux文件系统和目录结构以及linux基本运行原理。

6. 掌握vi,gcc,gdb等常用编辑器,编译器,调试器。

7. 理解shell别名、管道、I/O重定向、输入和输出以及shell简单脚本编程。

8. 学习Linux环境下的网络基本组建。


二、高级阶段:

1:尝试阅读linux内核源码:

这需要具有一定的C、C++语言基础,因为C、C++是linux/unix的核心语言,系统代码都是C写的。

2:尝试编译安装和调试自己的linux内核:

在阅读源码了解了linux底层的运行原理后,完全可以编译一个适合自己的linux系统来。

3:深入学习shell, perl,cgi等脚本语言:

这些脚本语言在linux下非常强大,它们能完成你想做的任何事情,熟练掌握这些语言,可以让你在linux系统下游刃有余,如鱼得水。

4:构建企业级linux高可用集群系统:

linux下有很多开源免费的集群软件,利用这些免费的集群软件完全可以构建出与商业unix系统相媲美的集群系统来。


Linux是什么?

linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发能力已经得到业界的认可,目前大多数企业级应用甚至是集群项目都部署运行在linux操作系统之上,很多软件公司考虑到开发成本都首选linux,在中国软件公司得到广泛的使用。


Linux主要的发行版本

Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、

OpenSUSE、红旗Linux(国产)


Linux 的发行版本可以大体分为两类:商业公司维护的发行版本,以著名的 Red Hat 为代表;社区组织维护的发行版本,以 Debian 为代表。

1、 Red Hat Linux

Red Hat(红帽公司)创建于 1993 年,是目前世界上资深的 Linux 厂商,也是最获认可的 Linux 品牌。

Red Hat 公司的产品主要包括 RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(RHEL 的社区克隆版本,免费版本)、Fedora Core(由 Red Hat 桌面版发展而来,免费版本)。

2、 Ubuntu Linux

Ubuntu 基于知名的 Debian Linux 发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的 Linux 发行版本,而且 Ubuntu 的所有发行版本都免费提供。

Ubuntu 的创始人 Mark Shuttleworth 是非常具有传奇色彩的人物。他在大学毕业后创建了一家安全咨询公司,1999 年以 5.75 亿美元被收购,由此一跃成为南非最年轻有为的本土富翁。作为一名狂热的天文爱好者,Mark Shuttleworth 于 2002 年自费乘坐俄罗斯联盟号飞船,在国际空间站中度过了 8 天的时光。之后,Mark Shuttleworth 创立了 Ubuntu 社区,2005 年 7 月 1 日建立了 Ubuntu 基金会,并为该基金会投资 1000 万美元。他说,太空的所见正是他创立 Ubuntu 的精神之所在。如今,他最热衷的事情就是到处为自由开源的 Ubuntu 进行宣传演讲。

3、 SuSE Linux

SuSE Linux 以 Slackware Linux 为基础,原来是德国的 SuSE Linux AG 公司发布的 Linux 版本,1994 年发行了第一版,早期只有商业版本,2004 年被 Novell 公司收购后,成立了公司 OpenSUSE 社区,推出了自己的社区版本 OpenSUSE。

SuSE Linux 在欧洲较为流行,在我国国内也有较多应用。值得一提的是,它吸取了 Red Hat Linux 的很多特质。

SuSE Linux 可以非常方便地实现与 Windows 的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。

4、 Gentoo Linux

Gentoo 最初由 Daniel Robbins(FreeBSD 开发者之一)创建者,首个稳定版本发布于 2002 年。Gentoo 是所有 Linux 发行版本里安装最复杂的,到目前为止仍采用源码包编译安装操作系统。

5、其他 Linux 发行版

Debian Linux www.debian.org 开放的开发模式,且易于进行软件包升级 apt

Fedora Core www.redhat.com 拥有数量庞人的用户,优秀的社区技术支持. 并且有许多创新 up2date(rpm),yum (rpm)

CentOS www.centos.org CentOS 是一种对 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,由于 Linux 是开发源代码的操作系统,并不排斥样基于源代码的再分发,CentOS 就是将商业的 Linux 操作系统 RHEL 进行源代码再编译后分发,并在 RHEL 的基础上修正了不少已知的漏洞 rpm

SUSE Linux www.suse.com 专业的操作系统,易用的 YaST 软件包管理系统 YaST(rpm),第三方 apt (rpm)软件库(repository)

Mandriva www.mandriva.com 操作界面友好,使用图形配置工具,有庞大的社区进行技术支持,支持 NTFS 分区的大小变更 rpm

KNOPPIX www.knoppix.com 可以直接在 CD 上运行,具有优秀的硬件检测和适配能力,可作为系统的急救盘使用 apt

Gentoo Linux www.gentoo.org 高度的可定制性,使用手册完整 portage

Ubuntu www.ubuntu.com 优秀已用的桌面环境,基于 Debian 构建 apt


Linux没有炫目的可视化操作界面,它的操作大部分都是直接执行命令,而可执行文件都是保存在相应的目录中的,所以我们对linux的操作大多数时候都是查找和执行这些可执行文件的。

linux的文件系统是采用基层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。

在Linux世界里,一切皆文件。

/:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。

/bin:bin 就是二进制(binary)英文缩写。在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录。

/boot:Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。

/cdrom:这个目录在刚刚安装系统的时候是空的。可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom

/dev:dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。

/etc:etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。

/home:如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。

/lib:lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。

/lost+found:在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

/mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。

/media:有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。

/opt:这里主要存放那些可选的程序。

/proc:可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。

/root:Linux超级权限用户root的家目录。

/sbin:这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的,凡是目录sbin中包含的都是root权限才能执行的。

/selinux :对SElinux的一些配置文件目录,SElinux可以让linux更加安全。

/srv :服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中

/tmp:临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。

/usr:这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具

/usr/local:这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面。

/usr/share :系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。

/var:这个目录的内容是经常变动的,看名字就知道,可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/ www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地。


目前国内Linux更多的是应用在服务器上,而桌面操作系统更多使用的是window。主要区别如下

Linux发行版本的选择

Linux 的发行版本众多,在此不逐一介绍,下面给选择 Linux 发行版本犯愁的朋友一点建议:

如果你需要的是一个服务器系统,而且已经厌烦了各种 Linux 的配置,只是想要一个比较稳定的服务器系统,那么建议你选择 CentOS 或 RHEL。

如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大价钱购买商业软件,不想自己定制,也不想在系统上浪费太多时间,则可以选择 Ubuntu。

如果你想深入摸索一下 Linux 各个方面的知识,而且还想非常灵活地定制自己的 Linux 系统,那就选择 Gentoo 吧,尽情享受 Gentoo 带来的自由快感。

如果你对系统稳定性要求很高,则可以考虑 FreeBSD。

如果你需要使用数据库高级服务和电子邮件网络应用,则可以选择 SuSE。

以上纯属个人化建议,非官方指导意见。其实 Linux 的发行版本众多,但是系统的核心——内核却系出同门,所以只要学会使用其中一种,即可触类旁通。


学习Linux需要准备的学习工具有哪些?

VMware Workstation: 虚拟机软件

编辑器vim、编译器gcc、调试器gdb、工程管理器Makefile

XSell、SecureCRT其他软件我们会根据学习内容的深入慢慢增加。



Liunx学习思维导图

【内容概览】

1)学习yum工具,进行软件安装

2)掌握vim编辑器使用,学会vim的简单配置

3)掌握gcc/g++编译器的使用,并了解其过程,原理

4)掌握简单gdb使用于调试

5)掌握简单的Makefile编写,了解其运行思想

6)编写自己的第一个Linux程序:进度条

7)学习git命令行的简单操作,能够将代码上传到Github 上

(下期我们会对这些内容做详细介绍。)


Linux 常用操作指令:一、命令提示符

这就是Linux的命令提示符,每个部分分别代表的含义:

[ ]:提示符的分隔符号,没有什么特殊的含义。

root:代表当下所登陆的用户,目前所登陆的是root用户。

@:分割符号,没有特殊含义。

localhost:当前系统的主机名(完整主机名是localhost.localdomain),更高主机名的命令 hostname主机名。

~:代表用户所在的目录,当前目录是家目录。

#:命令提示符,Linux用提示符标注用户的权限等级,#就是超级用户,而普通用户是$

什么是家目录? 用户登陆后,有一个初始登陆的位置,这个登陆位置就是我们用户的家目录,因为Linux是个纯字符的操作系统,所以我们要根据字符的的提示来掌握各种信息。

/root/:超级用户的家目录。

/home/:用户名/:普通用户的家目录。


二、命令的基本格式:

Linux的命令基本格式为:
[root@locahost ~] # 命令 [选项] [参数]
[ ]:中代表可选项,可以不带选项和参数,我们用ls的命令来解释一下。

选项的作用,通常我们的命令并不是单一的,可以在命令的后面加上选项,用来点缀我们的命令,使其实现的功能更加的丰富。


三、命令解析

什么是shell? shell是系统与计算机硬件的中间介质,是系统的一个工具,简单的来说,shell就是用户与计算机的翻译官,也可将shell看作一种语句,遵循bash的规则。

什么是 bash?bash是shell版本的一种,查看系统文件,可以看到shell的类型,Linux的shell只有bash。

bash的特点:
1.记录命令历史,在家目录的.bash_history文件里。
2.指令和文件名补全,tab键。
3.命令别名设置。
命令别名设置


一,基本必会操作:

man: man #进入linux工作使用手册,含配置,编程各种操作非常详细!(“q”退出)


info :#info是man指令的详细内容(info里有更完整最新的GUN工具信息)


help: #显示shell的内部帮助信息


who:#输出正在使用系统的用户信息


echo hello wold!: #echo将指定内容输出(输出hello wold!)


echo -e :今天 ·date· #echo允许转义将指定内容输出(输出今天加系统时间)


mv: #将一个文件移到另一个文件(下面有详解)


cp: #将源文件或目录复制到目标文件或目录(下面有详解)


clear :#清屏


ls: #查看当前路径下文件


date: #显示系统日期和时间

cal :10 2022 #显示2022年10月的日历(如果只输出第一个参数,则显示该年的日历)


ip addr :#查看自己的网络位置相关数据


passwd: #修改用户密码


su -:#获取管理员操作权限(下载和根目录操作等都需要权限)


sudo: #使用管理员权限进行相关的操作


sudo passwd: #修改管理员密码


!! :#执行上一条指令

!n: #执行第n条指令

!string: #执行上一条以string开头的指令


poweroff: #直接关闭电源

reboot :#重启

shutdow r 重启

into 6 重启

shutdown :#关机

halt:关机

into 0: 关机

exit: #退出终端


1.1、shutdown(相关操作)

shutdown -r #关机并重启

shutdown -s -t #设置定时关机

shutdown -c #取消关机

shutdown -f #强行关闭应用

shutdown -h #休眠

shutdown -h now #立即关机

shutdown - 数字 #几分钟后#?。

设备文件(c字符,b块):一种可以标记各个设备驱动器,字符设备,块设备的文件。

符号链接文件(l):提供其他文件引用的文件。

文件路径:(从某一树节点出发,沿树的分支到达目标文件或者目录所在节点路径)

绝对路径:从根目录(/)出发直到目标文件或者目录的路径

相对路径:从当前目录出发直到目标文件或目录路径


通配符:

* :匹配任意数目的任意字符

?: 匹配单一数目的任何字符

[ ]: 匹配[ ]之内的任意字符

[!] :匹配除了[!]内的任意字符


3.1 cat(连接文件并输出显示文件内容)

cat -b file: #从第一行开始输出file中所有非空内容

cat -n file :#从第一行开始输出file中所有内容(包括空行)

cat -s file: #将file中相邻空行合并为一个空行

cat -help: #查看help的详细用法


3.2 more(命令显示一屏幕的文本)

more -[num] file :#指定一屏显示具体(num)行数

more -c file: #显示满后不主动滚屏,清理后显示剩下内容

more -d file: #显示时提示还有剩余内容百分比

more -s file: #将联系空白行显示一个空白行输出

more +/ file: #显示指定文件之前搜索字符串

more +[num] file: #从第(num)行开始查看

在进行查看时 Space 显示文本下一屏内容

# B 显示上一屏内容

# Enter 显示文本下一行内容

# / 接着输入一个模式,可在文本中寻找下一个匹配模式

# H 显示帮助信息

# Q 退出more指令)

#(less与more相似,可用上下翻行,pagedown和pageup翻页)


3.3 head(在屏幕上显示指定文件的开头若干行)

(ail在屏幕上显示指定文件的末尾若干行与head相似)

head -[num] file: #显示file文件的前num行

head -c -[num] file: #显示file文件的前num个字节

head -q file: #显示文件内容,但不给出文件名

head -v file: #显示文件内容,并给出文件名


3.4 touch (修改指定文件的时间标签,或创建空文件)

touch -a file: #改变指定文件的存取时间

touch -m file :#改变指定文件的修改时间

touch -f STAMP :#使用STAMP指定的时间标签

touch ex2 :#创建ex2(空文件)


3.5 grep (文本文件中查找指定模式的词或短句)

grep -b -E [file1,flie2...]: #查找正则表达式下的输出首次匹配字符串在文件中的位置

grep -n -E [file1,flie2...] :#查找正则表达式下的输出匹配模式之前加行号

grep -v -E [file1,flie2...]: #查找正则表达式下的显示不包含匹配字符串的文本行号

grep -x -E [file1,flie2...]: #查找正则表达式下地显示整个行都要严格匹配行

grep -c -E [file1,flie2...] :#查找正则表达式下的匹配字符的行的总数

grep -f -E FILE [file1,flie2...] :#查找正则表达式下从文件FILE中获取模式

grep -i -E [file1,flie2...] :#查找正则表达式下匹配时不做大小写区分

grep -b -F [file1,flie2...] :#查找纯字符串下的输出首次匹配字符串在文件中的位置

grep -n -F [file1,flie2...]: #查找纯字符串下的输出匹配模式之前加行号

grep -v -F [file1,flie2...] :#查找纯字符串下的显示不包含匹配字符串的文本行号

grep -x -F [file1,flie2...]: #查找纯字符串下的显示整个行都要严格匹配行

grep -c -F [file1,flie2...] :#查找纯字符串下的匹配字符的行的总数

grep -f -F FILE [file1,flie2...] :#查找纯字符串下从文件FILE中获取模式

grep -i -F [file1,flie2...] :#查找纯字符串下匹配时不做大小写区分


3.6 sort (命令对文本文件的各行进行排序)

sort -m file :#d对已排序好文件进行合并。

sort -c file :#检查是否排序,未排序的报错

sort -o file: #将排序放入指定文件里

sort -d file: #按字典排序

sort -f file: #忽略字母大小写排序

sort -i file: #忽略非打印字符排序

sort -r file: #按逆序排序

sort -b file: #比较关键字忽略前导空白符

sort flie >more :#将文件file的前10行定向到more中


3.7 uniq(命令从排序好的文件中去除重复行)

uniq: [选项][输入文件[输出文件]]

uniq -c file :#显示输出时在行首加上出现次数

uniq -d file: #只显示重复行

uniq -f -fields=N file: #忽略比较前的N个字段

uniq -s -chars=N file: #忽略比较前的N个字字符

uniq -u file :#只显示文件的不重复行


3.8 comm (命令对两个已排序文件进行逐行比较)

comm -1 file1 flie2: #比较已排序的两个文件不显示第一列

comm -2 file1 flie2: #比较已排序的两个文件不显示第二列

comm -3 file1 flie2: #比较已排序的两个文件不显示第三列


3.9 diff(比较两个文本文件并找出不同)

diff -b flie flie1: #忽略空格造成的差别

diff -c flie flie1: #输出格式未上下三行

diff -C n flie flie1 :#输出格式为上下n行

diff -e flie flie1: #输出一个合法ed脚本

diff -i flie flie1: #忽略字母大小写区别

diff -r flie flie1: #当file1与file2都是目录,递归找子目录


3.10 cmp(命令对两个文件逐一比较相同不显示信息,有差异则会报出)

cmp -b file1 file2: #显示有差异的字节

cmp -i -initial=n file1 file2: #跳过开头n个字节


3.11 find(在指定目录下查找文件)

find [目录名] [条件表达式]

find cat -name filename #查找名为filename的文件

find cat -perm #按执行权限来查找

find cat -user username #按文件属主来查找

find cat -group groupname #按组来查找

find cat -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

find cat -atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前

find cat -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

find cat -nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在

find cat -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存

find cat -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件

find cat -size n[c] #查长度为n块[或n字节]的文件

find cat -mount #查文件时不跨越文件系统mount点

find cat -follow #如果遇到符号链接文件,就跟踪链接所指的文件

find cat -prune #忽略某个目录


3.12 cp(复制文件或目录到指定位置,源文件不变)

cp -a /home/mengqc /home/liuz #常在复制目录时使用,递归将所有文件复制到目标文件

cp -d /home/mengqc /home/liuz #当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;

cp -i /home/mengqc /home/liuz #交互式复制文件,每个文件都要询问一次,可以输入n或者y进行选择复制或者不复制;

cp -l /home/mengqc /home/liuz #对源文件建立硬连接,实际上不复制文件;

cp -p /home/mengqc /home/liuz #保留源文件或目录的属性;

cp -R/r /home/mengqc /home/liuz #递归处理,复制指定目录里面的层层子目录和对应的文件;

cp -s /home/mengqc /home/liuz #对源文件建立软连接,实际上不复制文件;

cp -u /home/mengqc /home/liuz #复制时比较源文件与目标文件的更改时间,如果源比目标新,则进行复制。或者目标不存在同名时,也会进行复制。

cp -S /home/mengqc /home/liuz #在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;

cp -b /home/mengqc /home/liuz #备份已存在的目标文件后再进行覆盖;

cp -v /home/mengqc /home/liuz #显示执行情况的详细信息


3.13 (rm命令删除文件和目录)

rm -f test eample #删除test文件和eample文件(忽略不存在的文件删除)

rm -r /home/a #递归的删除指定目录下的各级子目录和文件(慎用!)

rm -i test #删除test文件(有提醒,输入y确定删除)

rm -d /home #删除空目录


3.14 mv(从一个目录移动文件到另一个目录)

mv -i soure target #将源文件soure,移动到target中(有提醒)

mv -f soure target #将源文件soure,移动到target中(无提醒)

mv /home/mengqc . #将/home/mengqc中所有文件移到当前目录。


3.15 wc(统计指定文件的字节数,字数,行数并显示)

wc -clw flie #显示文件file的字节数,行数,字数(c[字节]l[行]w[字数]可换位置)


3.16 chmod(命令改变或者设置文件权限)

方式:chmod [who] [操作符] [mode] 文件名

例:chmod a+x ex1 #将文件ex1权限改为所用用户可执行

#(具体组合太多以下列出选项

#who u 表示“用户(user)”,即文件或目录的所有者。

# g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

# o 表示“其他(others)用户”。

# a 表示“所有(all)用户”,也就是包括了u、g、o,它是系统默认值。

#操作符

# + 添加某个权限。

# - 取消某个权限。

# = 重新分配权限。

#mode

# r 表示有读取的权限

# w 表示有写入的权限

# x 表示有执行的权限

(umask显示或设置新建文件权限的掩码)

(chgrp 改变文件或目录的用户组)

(chown改变文件或者目录的所属组)


cd 目录切换

cd / #切换到根目录


四,进程相关命令操作

各项参数如下:

USER: 进程的当前用户;

PID : 毫无疑问, process ID的缩写,也就进程号;

PPID :process parent ID,父进程ID

VSIZE : virtual size,进程虚拟地址空间大小;

RSS : 进程正在使用的物理内存的大小;

WCHAN :进程如果处于休眠状态的话,在内核中的地址;

PC : program counter,

NAME: process name,进程的名称


4.1 ps(命令查看当前系统进程信息)

ps -e #显示所有进程

ps -a #显示系统中与tty相关的所有进程信息

ps -f #显示进程的所有信息

ps -l #以长格式显示进程信息

ps -r #显示正在运行的进程


4.2 nice(命令修改优先级)

(ncie 取值范围为 -20 ~ 19,数值越小优先级越高)

nice -n, --adjustment=N #在优先级数值加上数字N(默认值为10)


4.3 kill(指令终止进程)

kill 1651 #终止1651号进程


4.4 sleep(命令使程序暂停执行)

sleep 5s #进程暂停执行5秒

sleep 5m #进程暂停执行5分钟

sleep 5h #进程暂停执行5小时

sleep 5d #进程暂停执行5天


五,文件压缩命令操作

5.1 tar(打包/解包指令)

( tar [选项] 文件或者目录)

tar -c file #创建新的打包文件

tar -t file #列出打包文件名

tar -x file #从打包文件中释放文件

tar -f file #指定打包文件名,需要放在选项后

tar -v file #列出详细的tar处理信息

例:

tar zcvf file.tar.gz file #压缩file并打包为file.tar.gz

tar zxvf file.tar.zip file #将file.tar.gz 解压到file


5.2 gzip(命令对文件进行压缩和解压)

(gizp [选项] [name]一般格式)

gzip -c file #将输出写到标准输出上,并保留原有文件。

gzip -d file #将压缩文件解压。

gzip -l file #对每个压缩文件,显示详细信息

gzip -r file #递归式地查找指定目录并压缩其中的所有文件或者是解压缩。

gzip -t file #测试,检查压缩文件是否完整。

gzip -v file #对每一个压缩和解压的文件,显示文件名和压缩比。

gzip -num file #用指定的数字num调整压缩的速度,


5.3 unzip(命令对ZIP格式文件解压)

(unizp [选项] 被压缩文件名)

unzip -c flie.zip #将解压缩的结果显示到屏幕上,并对字符做适当的转换

unzip -p flie.zip #与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

unzip -l flie.zip #显示压缩文件内所包含的文件

unzip -f flie.zip #更新现有的文件

unzip -t flie.zip #检查压缩文件是否正确,但不解压

unzip -u flie.zip #除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中

unzip -z flie.zip #仅显示压缩文件的备注文字

unzip -v flie.zip #执行是时显示详细的信息。或查看压缩文件目录,但不解压

unzip -T flie.zip #将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间

unzip -x flie.zip #指定不要处理.zip压缩文件中的哪些文件

unzip -d flie.zip #指定文件解压缩后所要存储的目录

unzip -n flie.zip #解压缩时不要覆盖原有的文件

unzip -q flie.zip #安静模式,执行时不显示任何信息

unzip -o flie.zip #不必先询问用户,unzip执行后覆盖原有文件

unzip -a flie.zip #对文本文件进行必要的字符转换

unzip -j flie.zip #不处理压缩文件中原有的目录路径

unzip -aa flie.zip #把所有的文件目录当作文本处理

unzip -UU flie.zip #忽略Unicode编码字符

unzip -C flie.zip #压缩文件中的文件名称区分大小写

unzip -L flie.zip #将压缩文件中的全部文件名改为小写

unzip -I flie.zip #指定字符编码为UNIX


六,文本操作

小tips(文本编辑操作有vi和vim两种,vim要下载,建议使用vim,v太反人类,狗都不用)

vi部分(有三种工作方式)

基本操作

vi m1.c #进入m1文本中操作(若没有则创建该文件)

vi 3 file #进入file文件,光标第3行的行首。

vi word file #进入file文件,光标停留在首次出现word的行首。

vi file1 file2 file3 #依次处理,flie1,flie2,flie3这些文件。


1、命令方式:(进入后默认命令方式)

1,上下左右--移动光标

2,x --删除字符(可5x,则向右删5个)

3,a --附加命令(附加到当前光标之后)

A --附加命令(附加到行尾)

4,i --插入指令当前位置(进入输出方式)

I --插入指令移动到首行(进入输出方式)

5, o --打开(在当前行的下一行进入输入方式)

O --打开(在当前行的上一行进行输入方式)

6,k,j, h,l --对应上下左右移动光标

7, 按“0” --光标移动到当前行头

8,w --光标后移至下一个词开头

9,b --光标前移至上一个词开头

10,M --光标移至屏幕中间行的开头

11,dd --删除光标所在整行

12,d[移动命令] --灵活删除

13,u --撤回上一步操作

14,U --撤回对当前行操作

15.J --把当前行与下行合并为一行(“nJ” ,n行合并)


2、输入方式:(所有操作都将输入文本中,注意上下左右变成abcd)

1,按esc --退出输出方式进入命令方式

2,Ctrl+U --光标退回刚插入字符串的首字符,并删除

3,Ctrl+W --光标移到最后插入单词首字符,并删除

4,Ctrl+T --光标在开头且有自动缩进,则插入缩进对应的空格

命令替换:(再文本中嵌入命令)

格式:

$(command)

`command`

cmd1$(cmd2)

cmd1`cmd2`

例:

echo now is ·data· i am in $(pwd) #在文本中插入输出时则会显示now is “现在系统时间” i am in “工作路径”


3、ex转义方式:

1,冒号 为ex命令的提示符,按下中断键可以终止正在执行的命令(常规为Delete),

转义方式结束后自动进入命令方式。

#常用的ex命令(包含命令定位,字符检索)

#例

:1 $s/I/i/g <enter> #从文件的第一行至最后一行将大写I变为小写i

:20 <enter> #将光标移到20行,行首。

:/this <enter> #从当前往后查,光标移到从前往后第一个this

:?this <enter> #从当前往前查,光标移到从前往后第一个this


4、退出vi(最好在命令方式下,避免误操作)

1, :wq --保存并退出

2, :ZZ --当对内容修改时将内容写入文件 (:X相同的用法)

3: :q! --不保存退出


vim部分

(三种工作方式,大部分操作与vi详细更人性化)

一、命令方式:(进入后默认命令方式)

1.1显示

:set nu ##在每一行前显示行号

:set nonu ##取消行号显示

:set mouse=a ##显示鼠标

:set cursorline ##显示行线

1.2字符的搜索:

/关键字

n向下匹配

N向上匹配

1.3字符的管理:

y2l ##复制2个字母

y2w ##复制2个单词

y2y ##复制2行

d2l ##删除2个字母

d2w ##删除2个单词

d2d ##删除2行

c2w ##剪切2个单词

c2c ##剪切2行

1.4字符的替换:

:%s/要替换的字符/替换成的字符/g

:%s/:/@/g ##替换全文的:为@


2、输入方式:

与正常window文本操作差不多。

退出vim(最好在命令方式下,避免误操作)

1,:w 将编辑的数据写入到硬盘中。

2,:q 离开vi.后面加!为强制离开。

3,:wq 保存后离开。:wq!为强制保存后离开


七,Linux shell程序设计方面

shell(解释性编程语言):用于执行复杂的系统管理任务。

7.1建立脚本

vim 一个文本加上一个 #!/bin/bash(一定要加且不能错告诉系统这个文本是脚本)

7.2执行脚本的三种方式

1, bash < 脚本名

bash <ex1 #执行ex1这个脚本

2,bash <脚本名 [参数] (与第一个相同可带参数)

bash ex2 /user/meng /user/zhang

3, 先加权限,再直接打脚本名字

chmod a+x bash_test1 # 将bash_test1给予执行命令

PATH=$PATH:. # 将脚本所在路径(.为当前工作路径)添加到搜索路径

bash_test1 # 输入脚本名运行脚本


7.3 shell特殊字符

1,常用通配符

^$ 匹配空行

^ *$ 匹配含有空格的空白行和空行

^.*$ 匹配整个行

[abc]*s 匹配s前面含有任意abc随机组合的字符串

[A-Za-z0-9.]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4} 匹配电子邮件地址

\b[[:alpha:]]+\b 或(^| )["({[]*book[]})"?,.:;!'s ]*( |$) 匹配正规文本中的单词

http://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4} 匹配一个HTTP URL

2,引号

“” 双引号中除了($、\)其他均以字符对待

'' 单引号中都以普通字符出现

` 倒引号中的字符均以命令解释

3、其他符号

命令1&&命令2 逻辑与执行两个命令

命令1||命令2 逻辑或执行两个命令

{echo “你好”; who } 将两个指令组合执行

4、变量 ( 变量区分大小写,为数字(不能开头),字母,下划线组成)

变量名=字符串 定义变量,左右不能有空格

{name} 引用name变量

5,数组 (数组与c语言使用相似)

city[0]=beijing

city[1]=shanghai

6,位置参数(set 为位置参数赋值)

set 参数1 [参数2......]

其中对应 m1 m2 m3 m10 m11

$1 $2 $3 ${10} ${11}


7.4算数运算(两种)

let 算数表达式

let "j=i*6+2" #算数运算将i×6+2赋值给j

((算数表达式))

let ((j=i*6+2)) #算数运算将i×6+2赋值给j


7.5控制结构if语句

if a>b #如果a大于b成立

then max=a #将a赋值给max

elif a=b #再判断如果a=b

then max=a #将a赋值给max

else max=b #将b赋值给max

fi #结束


case语句read response #读取响应

case $response in #匹配响应

1)echo one;; #如果匹配到1则执行输出one

2)echo two;; #如果匹配到2则执行输出two

3)echo three;; #如果匹配到1则执行输出three

read(从键盘上读取数据,格式 read [选项][变量])

选项中 -r 取消转义

-t 设置读取时限

-u fd 从文件表述df对应的文件读取数据

-n 读取数据长度不超过nchar个

-N 读取长度等于nchar个


while语句

while i<5 #判断条件是否成立

do #do

i++ #成立执行的指令

done # 结束


until语句

until i<5 #判断条件是否不成立

do #do

i++ #不成立执行的指令

done # 结束


for语句

for day in Monday Wednesday Friday Sunday #(将day设置为循环变量,遍历后面的星期,与python相似)

do #do

echo $day #输出遍历值

done #结束


select语句(常用做菜单)

select choice in a b c d e #从后面的选项中遍历选择

do #do

case "choice" in #判断选择的字符

a) echo "This is A choice" #如果选择为a输出This is A choice

b) echo "This is B choice" #如果选择为b输出This is B choice

c) echo "This is C choice" #如果选择为c输出This is C choice

d) echo "This is D choice" #如果选择为d输出This is D choice

e) echo "This is E choice" #如果选择为e输出This is E choice


break语句(跳出循环体)

break 2 #跳出两层循环


continue语句(跳出本次循环)

continue 2 #最内层循环向外跳到第2层

exit(退出正在执行的脚本)


7.6条件测试(三种写法)

1test -[选项] "对象" 2[ -[选项] "对象" ] 3[[ 条件表达式]](测文件属性和字符串比较)

文件方面的测试

选项 参数 功能

-r 文件名 如文件存在并且是用户可读的,则测试条件为真

-w 文件名 如文件存在并且是用户可写的,则测试条件为真

-x 文件名 如文件存在并且是用户可执行的,则测试条件为真

-f 文件名 如文件存在并且是普通文件,则测试条件为真

-d 文件名 如文件存在并且是目录文件,,则测试条件为真

-p 文件名 如文件存在并且是命名的FIFO文件,则测试条件为真

-b 文件名 如文件存在并且是块特殊文件,则测试条件为真

-c 文件名 如文件存在并且是字符特殊文件,则测试条件为真

-s 文件名 如文件存在并且文件长度大于0,则测试条件为真

-t 文件描述符 如文件被打开切文件描述符是与终端设备相关的,则测试条件为真,默认文件描述符是1


字符串测试

选项 参数 功能

-z s1 如果字符串s1的长度为0,则测试条件为真

-n s1 如果字符串s1的长度大于0,则测试条件为真

sl 如果字符串s1不是空字符串,则测试条件为真

!= s1!=s2 如果s1不等于s2,则测试条件为真

< s1<s2 如果按字典顺序s1在s2之前,则测试条件为真

> s1>s2 如果按自定顺序s1在s2之后,则测试条件为真


数值测试

数值测试运算符的形式及功能

参数 功能

n1 -eq n2 如果整数n1等于n2,则测试条件为真

n1 -ne n2

如果整数n1不等于n2,则测试条件为真

n1 -lt n2 如果如果n1小于n2,则测试条件为真

n1 -le n2 如果如果n1小于或等于n2,则测试条件为真

n1 -gt n2 如果n1大于n2,则测试条件为真

n1 -ge n2 如果n1大于或等于n2,则测试条件为真


7.7 bg和fg命令(bg [进程号]作业的前后台切换)

bg %9630 #将9630号进程放入后台运行

fg %9630 #将9630号进程放在前台运行


八,linux环境编程与常用的开发工具1,gcc编译系统(能编译C,C++,等C语言)

编译分4阶段

.预处理阶段

读取C语言并对以#开头的指令和特殊符合进行处理。

.编译阶段

编译程序,对预处理之后的输出文件进行词法,语法分析,并报语法错误。

.汇编阶段

把汇编语言代码翻译成目标机器代码。

.连接阶段

. 连接程序要解决外部符号访问地址问题。


gcc需要自主下载,命令如下:

sudo apt-get install gcc #然后输入管理员密码就可以了(Ubuntu)

然后再执行,后重试

sudo apt-get update #一个更新刚刚设置的操作


gcc相关指令

gcc f1.c f2.c #对f1和f2文件编译并形成a.out可执行文件

gcc -E f1.c #仅作预处理,不进行编译、汇编和链接

gcc -S f1.c #仅编译到汇编语言,不进行汇编和链接

gcc -c f1.c #编译、汇编到目标代码(也就是计算机可识别的二进制)

gcc -o f1.c file #执行命令后输出放入file中

gcc -g f1.c #生成调试信息

gcc -w f1.c #不生成任何警告


2、gdb调试工具

主要可以做4大类事,帮助用户在程序运行过程中发现bug。

1、 启动程序,并列出可能会影响它运行的一些信息

2、使程序在特定条件下停止下来

3、当程序停下来的时候,检查发生了什么

4、对程序做出相应的调整,帮助纠正一个错误并继续发现其它错误


控制程序执行有具体的四个点

1停止点

2断点(到断点行则停止执行,断点信息用于显示函数调用的踪迹和变量的值)

3观察点(程序执行到某个表达式的值发生变化时暂停)

4捕捉点(捕捉程序运行时出现的事件)


运行程序:

run[args]

args:传给被调用程序的命令行参数


单步跟踪:

step[N] (程序执行N行后停止,默认n=1)

next[N](与step相似,但是不进入调用函数内部)


连续执行:

continue,c,fg(程序执行到下一个停止点)

gdb也需要下载

sudo apt-get install gdb #输入密码下载(Ubuntn)


gdb相关指令

gdb -h #列出所有选项,并附简要说明

gdb -s file #读出文件(file)中的符号表

gdb -write #开通(enable)往可执行文件和核心文件写的权限

gdb -e file #在适当时候把File作为可执行的文件执行,来检测与core dump结合的数据

gdb -se File #从指定文件中读取符号表信息,并把它用在可执行文件中

gdb -c File #把File作为core dump来执行,调试时core dump的core文件。

gdb -x File #从File中执行GDB命令

gdb -d Directory #把Dicrctory加入源文件搜索的路径中,加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径


gdb内部指令

file [filename] 装入想要调试的可执行文件

kill [filename] 终止正在调试的程序

break [file:]function 在(file文件的)function函数中设置一个断点

clear 删除一个断点,这个命令需要指定代码行或者函数名作为参数

run [arglist] 运行您的程序 (如果指定了arglist,则将arglist作为参数运行程序)

bt Backtrace: 显示程序堆栈信息

print expr 打印表达式的值

continue 继续运行您的程序 (在停止之后,比如在一个断点之后)

list 列出产生执行文件的源代码的一部分

next 单步执行 (在停止之后); 跳过函数调用

nexti 执行下一行的源代码中的一条汇编指令

set 设置变量的值。例如:set nval=54 将把54保存到nval变量中

step 单步执行 (在停止之后); 进入函数调用

stepi 继续执行程序下一行源代码中的汇编指令。如果是函数调用,这个命令将进入函数的内部,单步执行函数中的汇编代码

watch 使你能监视一个变量的值而不管它何时被改变

rwatch 指定一个变量,如果这个变量被读,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令

awatch 指定一个变量,如果这个变量被读或者被写,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令

Ctrl-C 在当前位置停止执行正在执行的程序,断点在当前行

disable 禁止断点功能,这个命令需要禁止的断点在断点列表索引值作为参数

display 在断点的停止的地方,显示指定的表达式的值。(显示变量)

undisplay 删除一个display设置的变量显示。这个命令需要将display list中的索引做参数

enable 允许断点功能,这个命令需要允许的断点在断点列表索引值作为参数

finish 继续执行,直到当前函数返回

ignore 忽略某个断点制定的次数。例:ignore 4 23 忽略断点4的23次运行,在第24次的时候中断

info [name] 查看name信息

load 动态载入一个可执行文件到调试器

xbreak 在当前函数的退出的点上设置一个断点

whatis 显示变量的值和类型

ptype 显示变量的类型

return 强制从当前函数返回

txbreak 在当前函数的退出的点上设置一个临时的断点(只可使用一次)

make 使你能不退出 gdb 就可以重新产生可执行文件

shell 使你能不离开 gdb 就执行 UNIX shell 命令

help [name] 显示GDB命令的信息,或者显示如何使用GDB的总体信息

quit 退出gdb


九、Linux系统管理

文件系统:

mkfs 创建文件系统

mount 安装文件系统

/etc/fstab 系统初始化分区安装配置文件

umount 卸载文件系统

mkswap 创建交换分区

swapon 激活交换分区

fsck 检查文件系统的状态

du 查看指定目录或文件占用的磁盘空间

df 显示目前文件系统磁盘使用情况


用户系统:

为了管理用户账号,Linux设置了多个文件夹存放相关信息,以下为重要文件夹

1,passwd文件(通常在/etc/passwd中,其中各字段作用如下)

login_name(用户名)

passwd(密码)

UID(用户标志号)

GID(组标志号)

home_directory(用户主目录)

2,shadow文件(常在/etc/shadow,其中的记录每条用:分开内容)

登录名:加密密码:上次修改密码时间:密码有效期:密码失效前警告用户的天数......

3,group文件(常在/home/mengqc中其中内容)

ls -l test #可查相关内容

组名 : 密码:组ID:用户列表


9.1 useradd(创建用户组操作)

常用格式 useradd [选项] [用户名登陆]

useradd -c comment #给新用户添加备注

useradd -d home_dir #为主目录指定一个名字(如果不想用登录名作为主目录名的话)

useradd -e expire_date #用YYYYY-MM-DD格式指定一个账户过期的日期

useradd -f inactive_days #指定这个帐户密码过期后多少天这个账户被禁用;0表示密码一过期就立即禁 用,-1表示禁用这个功能

useradd -g initial_group #指定用户登录组的GID或组名

useradd -G group #指定用户除登录组之外所属的一个或多个附加组

useradd -k #必须和-m一起使用,将/etc/skel目录的内容复制到用户的HOME目录

useradd -m #创建用户的HOME目录

useradd -M #不创建用户的HOME目录(当默认设置里指定创建时,才用到)

useradd -n #创建一个同用户登录名同名的新组

useradd -r #创建系统账户

useradd -p #passwd 为用户账户指定默认密码

useradd -s #shell 指定默认登录shell

useradd -u #uid 为账户指定一个唯一的UID


9.3 groupadd (添加用户组的命令)

常用格式groupadd [选项] work

groupadd -g #为新组指定唯一GID

groupadd -o #为新组指定不唯一GID

groupadd -r #新组GID选择小于1000第一个可用值

groupadd -f #若组存在不报错强行再添加该组


9.4 关于组其他指令

userdel group1 #删除group1用户账号

passwd 123456 #设置用户密码

groupdel group1 #删除组名为group1的组

groupmod -g 300 -n job work #修改组属性(将名为work的组的GID修改为300,并改名为job)


9.5文件系统的备份(三种)

1,完全备份:隔一段时间对系统进行全面备份

2,增量备份:首先进行一次完全备份,然后较短时间备份修改过的数据

3,更新备份:完全备份一次,然后每天更新备份一次

代码示例(格式 tar -cvfpsz <生产的备份文件><所需要备份的目录>):

tar -cvf log.tar.gz /tmp/log #将日志文件log.tar.gz备份到/tmp/log路径

他人 -xzvf log.tar.gz #恢复日志

4.定时:crontab -e #编辑定时任务配置表

50 7***/sbin/service sshd star 每天7:50开启ssh服务

0 0 1 ,15**fsck/home: 每月1号,15号检查/home磁盘。


总结:

linux的特点

1,自由软件,代码开源

2,与UNIX系统兼容

3,性能高,安全性强

4,便于定制和再开发

5,交互性高,支持多任务,64运算


Linux图形环境

1,标准图形接口:X window

2,体系结构:客户-服务器模型, x协议

3,桌面系统:

GNOME系统:Red Hat Linux默认

KDE系统:红旗Linux


linux内核概述

linux系统有三层结构

1,靠近硬件的底层是内核

2,中层是内核外的shell层

3,最高层是应用层


linux系统安全设定方式

1, 取消不必要的服务

2,限制远程存取

3,隐藏重要资料

4,修补安全漏洞

5,采取安全工具进行经常性的安全检查


Linux系统调用和库函数

linux操作系统对外提供的基本服务方式

1,系统调用

2,库函数

调用方式(系统调用和库函数相同)

C函数形式调用:类型,名称,参数

需要使用的头文件:/usr/include/sys 、/usr/include/linux

示例:

文件相关头文件

<sys/types.h>

<sys/stat.h>

<fcntl.h>

<unistd.h>

进程相关头文件

<unistd.h>

<sys/types.h>

<sys/wait.h>

内存相关头文件

<stdlib.h>

总结不易,记得收藏,关注




这是水淼·dedeCMS站群文章更新器的试用版本更新的文章,故有此标记(2023-08-12 08:33:07)
责任编辑:电脑知识学习网