• 话说学习linux改变人生

    话说学习linux改变人生

    无论您学习什么,兴趣和持久性都是两个最重要的方面,因为兴趣可以使您更容易入门,持久性可以帮助您成功,学习Linux也不例外! 大学毕业的两年时间里,我干过销售,做过文员,当过前台,适合女生的工作换了一次又一次,并不是吃不了苦,只是我每次的工作都是迫于生计,都不是我所喜欢的。而Linux技术行业不一样,可以这样说,虽然它并不是最轻松的,但确是最理想的,最喜欢的。 我喜欢计算机!看着电视剧与电影中,黑客主角们,手在键盘上打出的悦耳节奏,与扫一眼就能看懂没有任何中文的代码,别提心中有多么崇拜与羡慕了。但空有一肚子的喜欢,根本无用,而一年前的我,也不会想象得到自己会从事这份工作,一直以为这个埋藏在心底的计算机梦想,终究只会是想想而已,并没有得到很大的重视。 好在毕业后人生迷茫聊以度日的日子里,有个朋友指点我转行,也是他的无私教导让我真正开始鼓起勇气,打破原定的安稳却不喜欢的生活,开始追逐那个埋藏在心底,不敢与人说的梦想。 记得他曾经告诉过我,市面上有许多可以学习linux的书,但是大多数都只有生硬的知识概念,枯燥乏味不说,还不易懂,根本不适合什么都不懂的菜鸟!但是他推荐我《linux就该这样学》,容易上手,它从准备工具,到如何安装linux软件直到如何部署动态网络环境,都十分详细的记录在了书本上,其中还有大多数的图片,可以帮助菜鸟更好的理解linux,不会因为乏味枯燥看不懂而放弃学习linux。 可以这样说,这本书他就是为了新手们量身定做的,它可以让你了解linux,垫上入门的砖,即使是毫无基础的新人,毕竟古话说得好,兴趣才是最好的老师。 我会学习并且从事运维技术行业,自然与我对计算机的崇拜和喜欢,有这密不可分的缘故,自小起,我就喜欢看与黑客有关的电视剧与电影,比如说前不久红极一时的《微微一笑很倾城》,里面肖奈与ko的编码较量就看得我热血沸腾,还有小时候美国的电影《黑客帝国》《骇客追缉令》之类的,都是我的最爱。 而凡事都贵在坚持,难在坚持。刚学习linux的前三个月,放弃的念头可以说是经常在我的脑海中徘徊,虽说学习linux与英语的好坏并没有特别大的关系,但是它的编码还是由26个字母组成,对于我这种看见字母就发怵的人,还是会有些畏惧,特别是每次看见复杂难懂的命令和脚本,总会让我感到抓狂。 好在我的身边有朋友。一本好书,详尽的讲解可以帮助我很好的理解那些生硬难懂的命令与脚本,再加上朋友的督促指导,半途而废的念头从时有时无到彻底消失。 当然实验才是检验真理的唯一标准,所以书中的理论知识再生动形象,也没有亲自实验获得的知识多,所以这本书,就是从一开始便教你如何在实验之中理解有关于linux的专业知识。 如今想想,好在我坚持下来了,如果当初真的放弃了,现在一时富足的美好生活怎么样不说,我的梦想肯定会再次石沉大海,而生活也会恢复到之前那种没有梦想,日日为了没有目标混日子而发愁的生活。 有了兴趣与坚持,我想这个世界上,不会有你学不会的事。而同时,学习linux,也可以成为人生的一个新的机遇,即使之前对于计算机行业无感的人,也可以去试着接触一下linux。 而且自我从事这个行业之后,也认识了好多半路出家,靠着极大的魄力转行学习linux,从而改变了自己的一生。 不论是本就喜欢计算机行业还是想要改变人生,选择linux运维技术行业,都是不错的选择,但最重要的是,入门之后,不要轻言放弃,毕竟半途而废放在任何事物上,都会落上一事无成的结果。 如果你喜欢这个行业,那就请你相信你自己,不要害怕,不要轻言放弃,不要觉得自己不是对口专业毕业,而不敢从事这个行业,毕竟现在毕业的大学生研究生,有多少出了校园后,干这之前未涉及过得行业?不用说别人,我自己原本就只是学艺术的,与计算机完全没有任何关系,现在也依旧干的很好! 更不要害怕linux运维技术行业的前景不好,恰恰相反,linux运维技术行业,可以说是近几年来,飞快兴起的行业,而面对现在科技高速发展的互联网时代,linux完全顺潮流发展,当然是不会落伍!只会是最富有潜力的行业。 请不要害怕身边没有朋友涉足或者自己未曾涉足过这个行业,而不敢尝试,我记得我在一本励志散文书中,看到过一句话,概意是‘想要成功只有俩种选择,一是,将别人都会做的事情做到极致,方能成功,二是,去做别人不敢做的事情!’ 敢踏入linux行业,你就会比哪些不敢尝试新事物的人,成功了一步,书是最好的朋友,兴趣是最好的老师,只要你想要,会有水滴石穿,铁杵磨成针的那天。

    时间:2020-07-11 关键词: Linux 编码 运维

  • 浅谈Linux C Socket Api

    浅谈Linux C Socket Api

    以前都只是在网上搜的能用的例子,对一些参数不是很清楚,这次汇总。而且网络通信还是很常用的通信手段。 UNIX 环境高级编程对Socket通信的描述是套接字网络IPC(进程间通信),可以用于计算机间通信也可用于计算机内通信,管道、消息队列、信号量以及共享内存等都是属于计算机内通信的情况。 一、 套接字Api详细介绍 1. 套接字描述符 首先会先到的是文件描述符,对Linux一切皆文件的哲学又多懂了一点儿点儿。 套接字是通信端点的抽象。与应用程序使用文件描述符一样,访问套接字需要使用套接字描述符。套接字描述符在UNIX系统是用文件描述符实现的。 #include int socket (int domain, int type, int protocal);返回值:成功返回文件(套接字)描述符,出错返回-1 参数domain(域)确定通信的特性,包括地址格式。各个域都有自己的格式表示地址,表示各个域的常数都以AF_开头,意指地址族(address family). 参数type确定套接字的类型,进一步确定通信特征。下图给出了一些类型,但在实现中可以自由增加对其他类型的支持。 参数protocol通常是0,表示按给定的域和套接字类型选择默认的协议。当对同一域和套接字类型支持多个协议时,可以使用proticol参数选择一个特定协议。在A_FINET通信域中套接字类型SOCK_STREAM的默认协议是TCP(传输控制协议);A_FINET通信域中套接字类型SOCK_DGRAM的默认协议是UDP(用户数据报协议)。 字节流(SOCK_STREAM)要求在交换数据之前,在本地套接字和远程套接字之间建 立一个逻辑联系。 Tcp:没有报文界限,提供的是字节流服务。之前写过Qt传输图片的拆包与解包,原因就是如此吧。 调用socket与调用open类型,均可获得用于输入、输出的文件描述符。不用的时候记得close关闭。 2. 寻址 如何确定一个目标通信进程? 进程的标识有两个部分:计算机的网络地址可以确定网络上与之想要通信的计算机 服务可以确定计算机上的特定进程。 2.1 字节序 在同一台计算机上进程间通信时,一般无需考虑字节序。 TCP/IP协议栈使用大端字节序。有关字节序大家可自行百度。 Linux系统是小端字节序。 2.2 地址格式 地址确定了特定通信域中的套接字端点,地址格式与特定的通信域相关。为使不同格式的地址能够被传入到套接字函数,地址被强转换成通用的地址结构sockaddr表示。 Linux中,sockaddr_in定义如下: struct sockaddr_in {sa_family_t sin_family;in_port_t sin_port;struct in_addr sin_addr;unsigned char sin_zero[8];}; 其中成员sin_zero为填充字段,必须全部置0. 所以在网上搜到的例子有使用bzero. 我目前使用的ubuntu定义如下: /* Structure describing an Internet socket address. */struct sockaddr_in { __SOCKADDR_COMMON (sin_); in_port_t sin_port; /* Port number. */ struct in_addr sin_addr; /* Internet address. */ /* Pad to size of `struct sockaddr'. */ unsigned char sin_zero[sizeof (struct sockaddr) - __SOCKADDR_COMMON_SIZE - sizeof (in_port_t) - sizeof (struct in_addr)]; }; 还有很多关于地址查询的函数,这里就不一一列举了。 3. 将套接字与地址绑定 使用bind函数将地址绑定到一个套接字上。 #include int bind(int sockfd, const struct sockaddr * addr, socklen_t len);返回值:成功返回0,出错返回-1 参数socklen_t使用sizeof来计算就好了。 对于使用地址的一些限制: 端口号不能小于1024,除非该进程具有相应的特权(即为超级用户)。可见规则总是因人而异,计算机也是如此~ 对于因特网域,如果指定IP地址为ADDR_ANY,套接字端点可以被绑定到所有的系统网络接口。 注意:linux的man命令可以查看api的详细说明,而且还有例子,也挺不错的。 4. 建立连接 1> connect 如果处理的是面向连接的网络服务(SOCK_STREAM或SOCK_SEQPACKET),在开始交换数据前,需要在请求服务的进程套接字(客户端)和提供服务的进程套接字(服务器)之间建立一个连接。使用connect. #include int connect(int sockfd, const struct sockaddr *addr, socklen_t len);返回值:成功返回0,出错返回-1 诶,这个参数好熟悉呀,和bind函数的参数一模一样呀~ 当client连接server时,由于一些原因,连接可能会失败。可以使用指数补偿的算法解决,了解一下即可。 2> listen server调用listen来宣告可以接受连接请求: #include Int listen(int sockfd, int backlog);返回值:成功返回0,出错返回-1 参数backlog提供了一个提示,用于表示该进程所要入队的连接请求数量。其值由系统决定,但上限由中SOMAXCONN指定。 一旦队列满,系统会拒绝多余的连接请求。 3> accept 一旦服务器调用了listen,套接字就能接收连接请求。使用函数accept获得连接请求并建立连接。 #include Int accept(int sockfd, struct sockaddr *restrict addr, socklen_t *restrict len);返回值:成功返回文件(套接字)描述符,出错返回-1 函数accept所返回的文件描述符是套接字描述符,该描述符连接到调用connect的客户端。这个新的套接字描述符和原始套接字(sockfd)具有相同的套接字类型和地址族。传给accept的原始套接字没有关联到这个连接,而是继续保持可用状态并接受其他连接请求。 如果不关心客户端标识,可以将addr和len设置为NULL,否则addr存放的是连接的客户端的地址。 如果没有连接请求等待处理,accept会阻塞直到有请求到来。另外server可以使用poll或select来等待一个请求的到来。 5. 数据传输 既然将套接字端点表示为文件描述符,那么只要建立连接,就可以使用read和write来通过套接字通信。read和write函数我几乎不用,了解一下即可。 1> send #include Int send(int sockfd, const void *buf, size_t nbytes, int flags);返回值:成功返回发送的字节数,出错返回-1 注意:如果send成功返回,并不一定并表示连接的另一端的进程接收数据。可以保证的是数据已经无误的发送到网络上。 标志我一直用的是0 2> recv #include int recv(int sockfd, const void *buf, size_t nbytes, int flags);返回值:以字节计数的消息长度,若无可用消息或对方已经按序结束则返回0, 出错返回-1 仍然一直是0 如果想定位发送者,可以使用recvfrom来得到数据发送者的源地址。 3> recvfrom #include int recv(int sockfd, void *restrict buf, size_t len, int flag, struct sockaddr *restrict addr, socklen_t *restrict len);返回值:以字节计数的消息长度,若无可用消息或对方已经按序结束则返回0, 出错返回-1 因为可以获得发送者的地址,recvfrom通常用于无连接套接字。否则,recvfrom等同于recv。 二、 小结 这里面再提一个带外数据,感兴趣的同志可以自行百度。 之前写过一个server和client的例子,连接如下,可对应本文做对比阅读。 LinuxSocket Server 与 Client 例子 个人觉得这只是套接字的入门,如果一个服务器要连接多个客户端呢?以后有机会和大家一起分享下select的套接字用法。

    时间:2020-07-07 关键词: Linux api socket c

  • linux 的标准输入和标准输出

    linux 的标准输入和标准输出

    先给大家看一个很熟悉的例子: [root@testLinux ~]# ifconfig --查看网卡相关信息。 从这里可以看出当运行ifconfig 这个命令,操作系统就会通过显示器输出网卡相关信息,现在我们再回过头去理解上图从键盘到终端处理程序的这个过程,我们从键盘输入命令,然后交给操作系统内核执行之后在输出这样一个过程,因此我们将这里的这里的键盘叫标准输入,而输出的结果通过显示器显示出来叫标准输出,再来看下一个命令的输出结果 [root@testLinux ~]# cat /etc/cmss 由于这个文件夹不存在,因此系统输出了错误的输出,那么我们就称这种输出叫标准错误输出。 由于linux 系统的特性,所有设备都用文件表示,因此上图的键盘(标号1)作为标准输入设备,它 在linux 里面用/dev/stdin 文件表示,标准输出设备 (标号3) 即为显示器用/dev/stdout 文件表示,而标准错误输出设备(标号4)用/dev/stderr文件表示。 1)标准输入(STDIN) ,文件位置: /dev/stdin ,文件描述符为0 2) 标准输出 (STDOUT),文件位置:/dev/stdout , 文件描述符表示为1 3) 标准错误 (STDERR),文件位置:/dev/stderr 文件描述符表示为2 那么这里何为文件描述符呢? 我们知道操作系统运行一个命令或者软件,操作系统会为该命令或者软件分配一个进程,为了区分不同的进程操作系统使用进程号表示,那怎么知道这些进程操作了那些文件呢,因此就使用文件描述符表示操作系统操作的哪些文件,下面以一个例子说明。 例如:在后台一直运行这个命令 [root@testLinux network-scripts]# tail -f /etc/sysconfig/network-scripts/ifcfg-ens33 查看该命令对应的进程号:通过 ps 命令查看到该命令对应的进程号是 7280 接下里查看该进程操作的文件 [root@testLinux network-scripts]# cd /proc/7280/fd 这个目录下面对应的文件即为进程号7280操作的文件,用0,1,2,3...这样的数字表示,这些数字也是文件只不过是链接文件而已,这里的数字有一个专门的名称叫文件描述符,从这里可以得出一个操作系统内核分配一个进程的路径是这样的,在/proc/进程号/fd/ ,fd下面即为该命令或者程序操作的文件。 下面再来看一个进程号为7349操作的文件 从图中可以看出该进程操作的磁盘文件是/etc/passwd,同样这里还是有0,1,2 三个文件,因此这里可以得出的结论是无论进程操作的文件是怎样的,标准输入,标准输出,标准错误输出这三个文件都是必须要的,他们分别代表键盘,显示器,这里有个难以理解的点在于,标准输出和标准错误输出设备默认也是指显示器,只是为了区别用了不同的文件表示而已。

    时间:2020-07-07 关键词: Linux 输入 输出

  • linux用户相关的命令有哪些?

    linux用户相关的命令有哪些?

    在前面的课程中,我们在Windows系统中安装了Linux虚拟机,并使用xshell远程终端将其连接到Linux虚拟机。 从今天开始,我们可以正式学习Linux。 今天,我们主要介绍某些与用户相关的命令,例如:例如:创建用户命令,用户注销命令,切换用户命令等。 一、提示符说明。 我们打开linux虚拟机,进入到登录界面,输入管理员名root和密码,登录成功后。 如上图,root代表当前登录用户,localhost表示当前linux主机名,~表示当前所在的目录是用户的家目录,#号表示当前登录的用户是管理员用户。 # 标识管理员用户权限。 $ 表示普通用户权限。 hostname 我们可以通过这个命令,打印出当前linux主机名。 二、创建新用户。 为了能演示切换用户,我们需要linux系统至少有2个用户。安装好linux系统后,默认情况下,只创建了一个用户——root用户,即管理员用户。当然,我们在安装linux的时候,也是可以在操作界面添加其它用户的。如果在linux安装时没有添加其它用户,在我们需要时,还可以通过命令来添加用户。添加用户命令如下: useradd bbb 添加用户bbb passwd bbb 设置用户密码 在设置用户密码时,全要求输入2次密码,2次输入的密码要相同,第二次是验证密码。如下图: 三、切换用户。 有了多个用户,这时,我们就可以在用户之间切换了。为什么要切换用户?有时,登录的用户没有管理员权限,而有些操作需要管理员的相关权限,这时,就需要我们来切换到管理员用户,来执行这个操作。以下,就是切换用户所使用的命令: su 只是切换了用户,还在原终端目录。 su - 普通用户切换到root管理员用户和全新的终端。 exit 退出当前用户。 好,我们在xshell终端通过bbb用户登录,登录成功后可以看到,当前登录的用户名是bbb。我们输入su命令,让它切换到管理员用户,这时,会提示要我们输入管理员用户的密码,这是为了安全,否则,不是所有的用户都可以使用管理员权限了? 输入密码后,点击确定键。 如上图所示,用户名已变成了root,但是,所在目录仍然在bbb用户登录时所在的目录bbb。如果不想在切换到root用户后,还在bbb用户的目录的话,可以使用su - 这个命令。在bbb登录后,我们输入 su - 命令。 从上图中,我们可以看到,用户名已经切换成root,目录也切换到root的家目录(~表示用户家目录)。 四、查看当前用户信息。 如果想查看当前登录用户的信息,可以直接使用下面的命令来查看: id 显示当前用户信息。 我们在命令行界面输入id命令,就会打印出当前用户的信息。 上图中,uid表示用户的id号,gid表示用户组的id号。也就是说,root用户是在root用户组。 好了,以上,就是linux用户相关的常规命令。虽然,我们使用的不是特别多,但是,还是要掌握以下的。

    时间:2020-07-06 关键词: Linux root xshell

  • 浅谈Linux系统的几大组件!

    浅谈Linux系统的几大组件!

    每个Linux系统都有许多主要组件。其中一个组件(引导加载程序)从技术上讲是Linux之外的,常常不被谈论。其余组件都是共同打造整个Linux系统的所有软件元素。这些组件是: 引导加载程序 内核 根文件系统 服务 应用程序/程序 引导加载程序 计算机通电、执行一些初始设置后,它会加载引导加载程序到内存中并运行该代码。引导加载程序的主要工作是找到操作系统的二进制程序,将该二进制程序加载到内存中,然后运行操作系统。本文指Linux内核。 引导加载程序此时已完成,内存中的所有代码和数据通常都被操作系统覆盖。引导加载程序不会再次运行,直到计算机再次重置或重启。 嵌入式系统中的引导加载程序不同于典型的笔记本电脑、台式机或服务器计算机。典型的PC通常先加载进入到所谓的BIOS,然后运行Grub这个引导加载程序。嵌入式Linux系统使用Das-UBoot或U-Boot来进行引导。 内核 一旦引导加载程序将Linux内核加载到内存中并运行,内核将开始运行其启动代码。该启动代码将初始化硬件、初始化系统关键数据结构、初始化调度程序、初始化所有硬件驱动程序、初始化文件系统驱动程序、挂载第一个文件系统,并启动第一个程序等。 Linux内核的主要工作是启动应用程序,并为这些应用程序(或Linux中通常所称的程序)之间提供协调。Linux内核不知道应该运行的所有程序。因此,Linux内核仅启动一个程序,并让该程序启动所需的所有其他程序。这第一个程序名为init程序,有时简称“ init”。注意,这第一个程序不需要放在名为“ init”的文件中,但常常放在该文件中。 如果内核找不到init程序,内核的用途不复存在,因而崩溃。 用于嵌入式系统的Linux内核的主要区别在于,它是为了在不同的CPU架构上运行而构建的。否则,内核的运行方式与典型的PC相一致,这是其优点之一。 文件系统 在Linux中,内核将程序分别加载到内存中,内核要求这些程序存储在组织成文件和目录的某种介质上。文件和目录的这种组织称为文件系统。与许多操作系统一样,Linux拥有介质上的文件系统(数据实际存储在存储介质上)和文件系统驱动程序——代码知道如何在解释和更新介质上的文件系统数据。 在Linux中,该介质常常是硬盘。然而,嵌入式系统常常没有硬盘,因此介质可能是其他硬件设备,比如SD卡、闪存甚至内存。 与Windows不同,Linux文件系统与目录而不是与驱动器号相关联。文件系统可以与任何目录相关联,甚至可以与路径中下几层的目录相关联。将文件系统与目录相关联的这个过程名为“挂载”。Linux先从一个名为/(斜杠)的空目录开始。在Linux启动期间,最顶层的文件系统与该目录相关联(即挂载到该目录),该文件系统的所有内容都显示在/下。这个最顶层的文件系统名为根文件系统。 Linux系统要求以某种方式部署根文件系统。因此,该文件系统很特殊,不能只是某种随机组合的目录和文件。bin和sbin等更多目录来自这个地方。 此处的要点是Linux寻找驻留在文件系统中的这第一个程序(即init程序)。需要事先创建根文件系统,然后将其挂载到“/”,之后内核才能启动init程序。 由于嵌入式系统有不同的硬件限制,因此Linux嵌入式系统常常使用特殊的文件系统格式,而不是台式机或便携式计算机上使用的典型的EXT3、EXT4、btrfs或xfs。 服务 内核寻找、加载并运行init程序时,该程序随后负责启动系统的其余部分。这时,内核不再处于活动状态,而是继续协调这项任务:在所有运行中的程序之间共享硬件。 有许多不同的init程序可用。无论选择哪个init程序,该程序都会启动系统发挥用途的所有必需的服务和应用程序。这套服务包括设置网络、挂载额外文件系统和创建图形环境等。 在Linux下,服务只是在后台运行的程序。传统上,Linux人士将这些服务称为守护程序,不过如今我很少看到这个术语。 应用程序/程序 init程序还负责启动常规程序。这些程序确实与用户交互。嵌入式系统常常只有几个用户程序,有时就只有一个。在嵌入式系统中,这组程序使设备能够执行应该做的事情,例如显示地图和航点、收听麦克风或显示录制电视节目的列表,用途无限。 摘要 因此总之,嵌入式计算机启动时,Linux系统将执行以下步骤: 跳入到引导加载程序 跳入到内核 挂载根文件系统 加载并运行init 加载并运行后台服务(或守护程序) 加载并运行应用程序 这每一个步骤都调用系统中所需的组件。

    时间:2020-07-05 关键词: Linux 组件 init

  • 从 Mac 切换到 Linux ,你准备好了吗?

    从 Mac 切换到 Linux ,你准备好了吗?

    在使用Linux之前,我用了15年Apple系统。在2018年安装第一个Linux发行版时,我还只是一个初学者。 这些日子以来,我只用 Linux,我可以用它完成任何任务。浏览网页、观看 Netflix 影片、写作以及编辑我的 Wordpress 博客 ,甚至还在上面跑我的 开源网页分析项目 。 我甚至还不是一个开发者!Linux 被认为不适合日常使用,对非技术人员也不够友好的日子已经一去不返了。 最近有很多关于 Mac 的讨论,越来越多的人已经在考虑转到 Linux。我打算分享我的切换过程中的一些经验,帮助其它新手也能从容转移。 你该不该换? 在换系统之前,最好想清楚,因为有时候 Linux 可能跟你预期不一样。如果你仍希望跟 Apple Watch 无缝配对、可以用 FaceTime 给朋友打电话、或者你想打开 iMovie 看视频,那最好还是不要换了。这些都是 Apple 的专有产品,你只能在 Apple 的“围墙花园”里面使用。如果离不开 Apple 的生态系统,那么 Linux 可能不太适合你。 我对 Apple 生态没有太多挂念,我不用 iPhone,所以跟手机的协作没那么必要。我也不用 iCloud、FaceTime,当然也包括 Siri。我早就对开源充满兴趣,只是一直没有行动。 检查你的必备软件清单 我还在使用 Mac 的时候,就已经开始探索开源软件,我发现大部分在 Mac 上使用的软件,在 Linux 也可以运行。 很熟悉用火狐浏览网页吗?在 Linux 上它也可以运行。想用 VLC 看视频?它也有 Linux 版本。喜欢用 Audacity 录制、编辑音频?它正在 Linux 上等着你呢。你用 OBS Studio 直播?在 Linux 直接下载安装吧。一直用 Telegram 跟朋友和家人保持联系吗?Linux 上当然少不了它。 此外,Linux 不仅仅意味着开源软件。你最喜欢的大部分(也可能是所有)非 Apple 专有软件,都能在 Linux 见到它们的身影。Spotify、Slack、Zoom、Stream、Discord、Skype、Chrome 以及很多闭源软件,都可以使用。而且,在你 Mac 浏览器里面运行的任何东西,同样能够运行在 Linux 浏览器。 你能在 Linux 找到你的必备软件,或者更好的替代品吗?请再三确认,做到有备无患。用你最常用的搜索引擎,在网上检索一下。搜索“软件名 + Linux” 或者“软件名 + Linux 替代品”,然后再去 Flathub 网站查看你能在 Linux 用 Flatpak 安装的专有软件有哪些。 请牢记:Linux 不等于 Mac 如果你希望能够从 Mac 轻松转移到 Linux,我相信有一点很重要,你需要保持包容的思想以及愿意学习新操作系统的心态。Linux 并不等于 Mac,所以你需要给自己一些时间去接触并了解它。 如果你想让 Linux 用起来、看起来跟你习惯的 macOS 一模一样,那么 Linux 可能也不适合你。尽管你可以通过各种方法 把 Linux 桌面环境打造得跟 macOS 相似 ,但我觉得要想成功转移到 Linux,最好的办法是从拥抱 Linux 开始。 试试新的工作流,该怎么用就怎么用。不要总想着把 Linux 变成其它东西。你会跟我一样,像享受 Mac 一样享受 Linux,甚至能有更好的体验感。 还记得你第一次使用 Mac 吧:你肯定花了不少时间去习惯它的用法。那么请给 Linux 同样多的时间和关怀。 选择一个 Linux 发行版 有别于 Windows 和 macOS,Linux 不止一个单一的操作系统。不同的 Linux 操作系统被称作发行版,开始使用 Linux 之后,我尝试过好几个不同的发行版。我也用过不同的桌面环境,或者图形界面。在美观度、易用性、工作流以及集成软件上,它们有很大差异。 尽管作为 Mac 的替代品,被提及最多的是 ElementaryOS 和 Pop!_OS ,但我仍建议从 Fedora 工作站 开始,理由如下: 使用 Fedora 介质写入器 ,容易安装 几乎可以支持你所有的硬件,开箱即用 支持最新的 Linux 软件 运行原生无改动的 GNOME 桌面环境 有一个大型开发团队以及一个庞大的社区在背后支持 在我看来,对从 macOS 过来的新手来说, GNOME 是易用性、一致性、流畅性和用户体验最好的桌面环境。它拥有 Linux 世界中最多的开发资源和用户基数,所以你的使用体验会很好。 Fedora 可以为你打开一扇 Linux 的大门,当你适应之后,就可以开始进一步探索各个发行版、桌面环境,甚至窗口管理器之类的玩意了。 熟悉 GNOME GNOME 是 Fedora 和许多其它 Linux 发行版的默认窗口管理器。它最近 升级到 GNOME 3.36 ,带来了 Mac 用户会喜欢的现代设计。 一定要做好心理准备,Linux、Fedora 工作站和 GNOME 并不是 Apple 和 macOS。GNOME 非常干净、简约、现代、独创。它不会分散你的注意力,没有桌面图标,没有可见的坞站,窗口上甚至没有最小化和最大化按钮。但是不要慌张,如果你去尝试,它会证明这是你用过最好、最有生产力的操作系统。 GNOME 不会给你带来困扰。启动之后,你唯一能看到的东西只有顶栏和背景图片。顶栏由这几样东西组成,“活动”在左边,时间和日期在中间(这也是你的通知中心),右边是网络、蓝牙、VPN、声音、亮度、电池等托盘图标之类的东西。 为什么 GNOME 像 Mac 你会注意到一些跟 macOS 的相似之处,例如窗口吸附、空格预览(用起来跟 “Quick Look” 一模一样)。 如果你把鼠标光标移动到左上角,点击顶栏的“活动”,或者按下键盘上超级键(Super 键,也就是 Mac 上的 ஐ 键),你会看到“活动概览”。它有点像 macOS 系统上“调度中心”和“聚焦搜索”的结合体。它会在屏幕中间展示已打开软件和窗口的概览。在左手边,你可以看到坞站,上面有你打开的软件和常用软件。所有打开的软件下面会有一个指示标志,在右手边,你可以看到不同的工作区。 在顶栏中间,有一个搜索框。只要你开始输入,焦点就会转移到搜索框。它能搜索你已经安装的软件和文件内容,可以在软件中心搜索指定的软件、进行计算、向你展示时间或者天气,当然它能做的还有很多。它就像“聚焦”一样。只需开始输入你要搜索的内容,按下回车就可以打开软件或者文件。 你也能看到一列安装好的软件(更像 Mac 上的“启动台”),点击坞站中的“显示应用”图标,或者按 Super + A 就行。 总体来说,Linux 是一个轻量级的系统,即使在很老的硬件上也能跑得很顺畅,跟 macOS 比起来仅仅占用很少的磁盘空间。并且不像 macOS,你可以删除任何你不想要或不需要的预装软件。 自定义你的 GNOME 设置 浏览一下 GNOME 设置,熟悉它的选项,做一些更改,让它用起来更舒服。下面是一些我装好 GNOME 必做的事情。 在“鼠标和触摸板”中,我禁用“自然滚动”、启用“轻触点击”。 在“显示”中,我打开“夜光”功能,在晚上,屏幕会让颜色变暖,减少眼睛疲劳。 我也安装了 GNOME 优化 ,因为它可以更改额外的设置选项。 在“GNOME 优化”中,我启用了 “Over-Amplification” 设置,这样就能获得更高的音量。 在“GNOME 优化”中,相比默认的亮色主题,我更喜欢 “Adwaita Dark” 主题。 习惯使用键盘操作 GNOME 是以一个极度以键盘为中心的操作系统,所以尽量多使用键盘。在 GNOME 设置中的“键盘快捷键”部分,你可以找到各个快捷键。 你也可以根据自己的理想工作流程来设置键盘快捷键。我将我最常用的应用程序设置为使用超级键打开。比如说,Super + B 打开我的浏览器,Super + F 打开“文件”,Super + T 打开终端。我还把 Ctrl + Q 设置成关闭窗口。 我使用 Super + Tab 在打开的应用程序之间切换,Super + H 隐藏一个窗口,F11 全屏打开软件,Super + Left 把窗口吸附到屏幕左边,Super + Right 把窗口吸附到屏幕左边,等等。 在 Mac 上尝试 Linux 之后再做决定 在完全安装 Linux 之前,在你的 Mac 上先尝试 Fedora。从 Fefora 官网 下载 ISO 镜像。使用 Etcher 将 ISO 镜像写入 USB 驱动器,然后在启动时点击 Option 键,这样你就可以在即用模式下尝试了。 现在您无需在 Mac 上安装任何东西就可以探索 Fedora 工作站了。试试各种东西,能否正常工作:能不能连接 WiFi?触控板是否正常?有没有声音?等等。 也记得花时间来尝试 GNOME。测试我上面提到的不同功能。打开一些安装好的软件。如果一切看起来都还不错,如果你喜欢这样的 Fedora 工作站和 GNOME,并且很肯定这就是你想要的,那么把它安装到你的 Mac 吧。

    时间:2020-07-03 关键词: Linux mac apple

  • X50 Pro升级Android 11 Beta 1要注意的问题

    X50 Pro升级Android 11 Beta 1要注意的问题

    6月中旬,Realme副总裁许琦宣布,真正的X50Pro系列Android 11 Beta 1正在改编为第一个用户,它将很快与大家会面,现在就来了。 7月1日,realme官方发布了真我X50 Pro适配Android 11 Beta 1的教程说明,官方也指出,该版本仅供有需要的开发者浏览体验,并不具备持续更新的能力,故不建议普通真粉日常使用,所以大家还是要谨慎刷机。刷机前,需要先将机器升级到特定的Android 10基准版本,然后才可以卡刷至Android 11 Beta 1。官方也准备了真我X50 Pro回刷Android 10的卡刷包,以备大家降级使用。 刷机后手机资料会被清空,刷机前大家要备份好重要资料,而且刷机之后不会持续收到更新推送,需要回刷到A.20版本后,方可正常收到推送。升级之后,会有部分系统功能不可用,部分三方App图标界面不够美观,一些应用可能无法运行,以及系统稳定性的降低的情况,大家需要提前知晓。

    时间:2020-07-03 关键词: Android pro 11 beta 1 x50

  • 关于iOS 14的建议:不要升级

    关于iOS 14的建议:不要升级

    iOS 14正式发布后,小编将iPhone更新为最新系统。 我已经使用了几天,对iOS 14有了大致的了解。在本文中,小编将与您分享一些我遇到的问题和bug。 1.续航 本来续航就是iPhone的劣势,iOS 14公测版让这种劣势更雪上加霜。在不打游戏的情况下,iPhone的续航就出现了明显的降低。以前小编出门不带充电宝只是觉得不安全,升级后不带充电宝出门就不敢玩iPhone,这就是iOS 13和iOS 14的区别。还有一件事:升级iOS 14的第二天早上,小编起床很早,原因是iPhone居然没电了。所以,如果你对目前iPhone的续航不够满意,不推荐升级到iOS 14。 2.卡顿 在全新的iOS 14中,启动或者使用部分软件时,经常会出现卡顿的现象,特别是相片和输入法。对于已经习惯了流畅的用户来讲,这样的卡顿真的很难受,并且严重影响用户体验。

    时间:2020-07-01 关键词: 14 iOS 续航 卡顿 bug

  • 浅谈iOS14系统pasted from 提示

    浅谈iOS14系统pasted from 提示

    升级到iOS14系统后,许多用户会提示pasted from。我们该怎么解决这个问题呢? 1、pasted from实际上是系统有调用了剪贴板功能,也就是你手机上的某个软件使用了这项功能 2、原本剪贴板功能是用来提示用户有哪些应用一直在读剪切板,不过可能是没有设置好导致用户会一直被提醒 3、解决方法:屏幕截屏,分享,拷贝。然后再开京东/淘宝,不再出弹窗 4、由于iOS14正在测试和优化的过程中,后续这样提示可能会被弱化,用户也就不会一直被提示

    时间:2020-06-30 关键词: from ios14 pasted

  • Android 11的个别新功能并不能在所有安卓手机上使用

    Android 11的个别新功能并不能在所有安卓手机上使用

    Android 11包含许多新功能,但某些新功能却无法在所有Android手机上使用。 关于Android 11的新兼容性定义文档(CDD)的详细信息已经泄漏(通过XDA-Developers),其中提到了该更新的三个新功能,这些功能“被强烈推荐”,是设备制造商采用的,但不是必需的。这意味着当您的特定设备更新到Android 11时,它们可能不会出现在您的特定设备上。 顺便说一句,CDD将功能分为三类:“必须”,要求设备上包含一项功能才能访问Google应用和服务;“强烈推荐”,是Google推荐设备制造商推荐的功能,但不是必需的;和“不应”,这是OEM不能在其设备上使用的功能。据说这三个功能包含在“强烈推荐”类别中。 通知中的Android 11对话 首先是设备控件。通过此功能,您可以长按手机的电源按钮,并快速访问智能家居控件,从而轻松地通过手机打开和关闭照明灯,调节恒温器等。Device Controls最初是Android 11 CDD第一版中的“必备”功能,但最近已移至“强烈推荐”类别。 接下来是通知中的对话。有了此功能,您将在通知栏的顶部留出一个专用空间来进行正在进行的聊天,从而使您更轻松地快速响应传入的消息。不幸的是,此功能可能并非在所有Android 11设备上都可用。 Android 11设备控件 最后,还有IdentityCredential API,该API可以启用移动驱动程序许可证之类的功能。此功能最初也位于CDD的“必须”类别中,但随后被移至“强烈推荐”,XDA推测这可能是因为某些设备制造商可能需要更长的时间才能实现,因为该功能处理的是受信任的执行环境安全性。手机内部的处理器。 虽然这些都不是绝对必需品,但对于没有使用它们的任何人来说,它们都会使Android 11 变得无用,但它们却是很多人可能会使用的漂亮功能。当然,仅因为OEM不需要将这些功能包括在其Android 11更新中,并不意味着所有非Google手机都会跳过这些功能。因此,现在我们只需要等待今年晚些时候Android 11的发布以及随后的更新,即可了解哪些设备制造商最终采用了哪些设备制造商,而哪些则没有采用。

    时间:2020-06-29 关键词: google Android 11 cdd

  • 微信iOS最新版新增功能

    微信iOS最新版新增功能

    一些iPhone用户注意到iOS 7.0.13版的微信时光现在支持删除和编辑。 发布新的朋友圈后,用户可以删除、编辑和重新发布。 纯文本、图形或链接可以删除并再次更改。 原朋友圈遭删除后,相应的评论点赞也会被删除,这一点与微博直接重新编辑大有不同。 而在App Store显示的7.0.13更新内容中,微信并未提及该功能的更新。此前,微信曾推出撤回对话重新编辑再发送功能。

    时间:2020-06-29 关键词: iPhone iOS 微信

  • iOS 14拍了拍你

    iOS 14拍了拍你

    2020年6月即将结束,我相信到目前为止,所有看过Mingmei Infinite的水果迷都应该知道Apple的WWDC 2020已经结束,但是对于想要尝试新事物的用户,我们的发布才刚刚开始。 是的,这是期待已久的iOS 14。 发布后几个小时,一些用户已经升级到该系统的最新版本。 关于iOS 14,明美无限已经在前两天的文章里,较为详细地介绍了其功能。然而,当明美无限将手中的设备更新之后,发现原来iOS 14上还有很多有意思的玩法。在体验了几天之后,明美无限才拿出了这一份iOS 14使用指南。 首先,iOS 14值得升级的理由又多了一条。 经对比发现,在照片APP中,图片支持双指缩放的级别有了显著增加,如图所示,iOS 13中仅能放大到花朵整体,而在iOS 14中则可以进一步查看花蕊细节。 此前在iOS 13中,为了提高缩放级别需要旋转图片或者使用三方APP等小技巧,iOS 14中就不需要这么操作了。 大家仍可借助旋转技巧来解锁超越iOS 14的缩放倍率,如果不嫌弃画面转为像素风,细节控们应该还是会很喜欢这一点的。 另外,iOS 14的更新为“照片”应用程序添加了一些新功能,其中包括一个选项,可以直接从iPhone向图像添加标题,这是照片用户长期以来一直想要的。 Mac版“照片”应用程序以前通过“描述”字段支持标题,但是在iPhone上,没有添加类似信息的方法。在iOS 14中,输入标题既快捷又容易。 点击可在iPhone上全屏查看照片,然后向上滑动以获取标题字段。点击该字段,键入标题,然后按 Enter。 如果用户启用了 iCloud 照片库,则 iOS 14 中的标题会在所有设备上同步,并且 macOS Big Sur 中的 “描述”字段已被重命名为 “标题”。 使用iOS 14为照片添加标题可以让标签和组织工作更上一层楼,因为可以使用照片搜索界面搜索标题。虽然仍然没有原生选项来编辑照片的元数据,但标题使添加跨设备可见的标签更容易。 照片应用还有其他一些有用的改进,例如可按收藏夹、已编辑、照片和视频查看所有图片或相册的过滤器,相册内的排序,以及更好的 Live Photos 自动播放功能。浏览照片还可以让用户放大和缩小所有相册,就像在iOS 13中的 "所有照片 "界面一样,这样可以更容易地找到用户要找的特定图片。 今天还值得一提的是,截止到目前,明美无限发现的iOS 14的BUG如下:蓝牙耳机不能调整音量加减,微信的撤回功能不见了,屏幕使用时间插件显示不准确。还有根据广大有关注明美无限公众号果粉们的留言反馈,他们还遇到了相片编辑闪退,部分游戏来消息时断触等问题,对于这些BUG不能忍的用户,请谨慎升级。 明美无限有感总结一下:纵观iOS这几年的大版本更新,给人的感觉就是不断地查缺补漏、不断地从安卓系统中汲取灵感,但缺少让人眼前一亮的创新。这个问题其实并不只苹果一家品牌遇到,当智能手机行业进入到成熟和衰退期后,无论是软件还是硬件,都碰到了天花板。 可以这样说,虽然苹果公司的iOS 14发布不到一周时间,虽然号称优化不断,并且推出不少全新功能,但其实大多数功能对于安卓用户,都已经不是什么新鲜功能了。对比一下iOS 14的新功能,甚至在安卓系统中会一一找到对应,尤其是EMUI、MIUI等经华为、小米等深度定制和优化后的安卓系统,iOS 14号称的全新功能更已经不再是什么新鲜功能了。甚至有业内人士称iOS 14失去了苹果公司原有的灵魂,越来越像安卓系统了。 不过对于像明美无限这样的资深老果粉而言,因为早已经用惯以及用多了苹果公司的产品设备和相对应的iOS软件等等。所以,不管这次苹果公司刚刚最新推出的这个iOS 14首个测试版是否被众多果粉们吐槽越来越像安卓系统之类的话语甚嚣尘上,明美无限依旧还会坚定不移的把苹果公司、iOS、iPhone最新发生的那些事分享给默默持续关注并且支持明美无限的果粉们,果粉关注明美无限不迷路,让我们共建起果粉们的新天地!

    时间:2020-06-29 关键词: app 14 iOS 13

  • 苹果手机这样设置,腾讯会员免费拿

    苹果手机这样设置,腾讯会员免费拿

    端午节假期到此结束,没有美丽的风景和女孩,只有冰冻的可乐和电视连续剧。 众议院的日子都由球员陪伴。 我看过所有我通常没有时间的迷你剧和综艺节目。 幸运的是,在假期期间,小雷通常会分享很多免费的播放器,追剧打发时间。 作为一个没有钱的男人,嗅觉总是要比普通人更强一些,哪里能白嫖哪里就有小雷的身影,假期不仅让我看到了更多的剧,而且发现了一个免费拿会员的方法。这个方法只限苹果用户,这下子就再也不用羡慕安卓用户了。 这次微信推出"App Store关联微信支付免费得腾讯视频VIP月卡"活动,其目的就是让苹果用户在使用App Store支付的时候可以使用微信支付,如果不喜欢微信支付的朋友也没有关系,可以先拿会员后再取消绑定。 方法如下,到"雷科技"公众号上面回复【腾讯】获取活动链接,建议大家用Safari浏览器打开,按活动步骤操作即可,主要是在App Store上的付款方式里面添加微信的付款方式。 这次白嫖还是有一定门槛的,需要iOS 13以上的系统才行,且解绑App Store上的微信支付不超过两次。绑定好之后返回活动界面,就能看到视频月卡到账的信息。

    时间:2020-06-29 关键词: app store ios13

  • iOS14系统占用多少内存?

    iOS14系统占用多少内存?

    在启动iOS14系统之后,许多iPhone手机用户都更新了该系统,但是许多用户发现iOS14系统占用的容量相对较大,并且对于64GB用户来说不是很友好 手机容量相对较低。我们来看下iOS14系统占多少空间? 1、iOS14系统占用多少空间?下载包大约是4GB-5GB左右,安装完成后大约在13GB-14GB左右 2、有一些用户出现占用空间大的情况,原因可能是系统bug导致下载安装包没有被删除干净占用了部分空间 3、而很多用户会发现还有一个“其他”的占用,这个可能是目前很多用户觉得iOS14占用空间大的主要原因 4、如果是64GB的用户,现在不太建议升级到iOS14,可能会导致空间不够使用 5、在今年秋季正式版发布的时候,可能会修复iOS14占用大量空间的问题。

    时间:2020-06-29 关键词: iPhone 内存 ios14

  • iOS14系统降级操作流程

    iOS14系统降级操作流程

    iOS14系统在6月下旬的Apple WWDC开发者大会上正式宣布,然后宣布了beta版。 许多用户开始升级系统以进行早期测试,但希望降级到iOS13。 我们看下从iOS14降级到iOS13的步骤。 1、如果想要从iOS14降级到iOS13的话,现在可以选择的版本只有iOS13.5.1版本 2、首先下载要iOS13.5.1正式版的固件,注意需要找对自己机型对应的文件 3、之后打开itunes软件,并且将自己的iPhone或者iPad用数据线连接到电脑上 4、在iTunes的设备信息界面,按住Option键(Windows用户则需要按住Shift 键),单击「恢复 iPhone...」按钮 5、之后会弹出文件选择窗口,找到你下载好的固件文件,打开它 6、最后点击“恢复”即可开始进行降级操作 7、需要注意的是,降级的时候会抹掉安装的应用内容并且重新安装iOS13,所以大家每次升级iPhone系统前一定要记得备份,这样在重新降级之后,还有数据保存下来

    时间:2020-06-29 关键词: itunes ios13 ios14

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章