关于linux入门:Linux服务器登录注销-用户和用户组管理

登录、登记# 立即关机shutdown -h now# 1分钟后,关机shutdown -h 1 # 立即重启shutdown -r now # 2分钟后,重启shutdown -r 2 #立即关机halt #立即重启reboot#把内存的数据,写入磁盘sync 不论是重启零碎还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中用户治理Linux零碎是一个多用户多任务的分时操作系统,任何一个要应用系统资源的用户,都必须首先向系统管理员申请一个账号,而后以这个账号的身份进入零碎。 用户的账号一方面能够帮忙系统管理员对应用零碎的用户进行跟踪,并管制他们对系统资源的拜访;另一方面也能够帮忙用户组织文件,并为用户提供安全性爱护。 每个用户账号都领有一个惟一的用户名和各自的口令。 用户在登录时键入正确的用户名和口令后,就可能进入零碎和本人的主目录。 实现用户账号的治理,要实现的工作次要有如下几个方面: 用户账号的增加、删除与批改。用户口令的治理。用户组的治理。增加账户useradd 选项 用户名选项: -c comment 指定一段正文性形容。-d 目录 指定用户主目录,如果此目录不存在,则同时应用-m选项,能够创立主目录。-g 用户组 指定用户所属的用户组。-G 用户组,用户组 指定用户所属的附加组。-s Shell文件 指定用户的登录Shell。-u 用户号 指定用户的用户号,如果同时有-o选项,则能够重复使用其余用户的标识号。用户名:指定新账号的登录名。 实例1 useradd –d /home/sam -m sam此命令创立了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。 实例2 $ useradd -s /bin/sh -g group –G adm,root gem此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。 这里可能新建组:#groupadd group及groupadd adm 减少用户账号就是在/etc/passwd文件中为新用户减少一条记录,同时更新其余系统文件如/etc/shadow, /etc/group等。 Linux提供了集成的系统管理工具userconf,它能够用来对用户账号进行对立治理。 删除账户如果一个用户的账号不再应用,能够从零碎中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。 删除一个已有的用户账号应用userdel命令,其格局如下: userdel 选项 用户名罕用的选项是 -r,它的作用是把用户的主目录一起删除,若不加该选项则会保留家目录。 ...

March 18, 2021 · 2 min · jiezi

关于linux入门:makefile葵花宝典

什么是makefile?或者很多Winodws的程序员都不晓得这个货色,因为那些Windows的IDE都为你做了这个工作,但我感觉要作一个好的和professional的程序员,makefile还是要懂。这就如同当初有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要理解HTML的标识的含意。特地在Unix下的软件编译,你就不能不本人写makefile了,会不会写makefile,从一个侧面阐明了一个人是否具备实现大型工程的能力。因为,makefile关系到了整个工程的编译规定。一个工程中的源文件不计数,其按类型、性能、模块别离放在若干个目录中,makefile定义了一系列的规定来指定,哪些文件须要先编译,哪些文件须要后编译,哪些文件须要从新编译,甚至于进行更简单的性能操作,因为makefile就像一个Shell脚本一样,其中也能够执行操作系统的命令。makefile带来的益处就是——“自动化编译”,一旦写好,只须要一个make命令,整个工程齐全主动编译,极大的进步了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比方:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译办法。       当初讲述如何写makefile的文章比拟少,这是我想写这篇文章的起因。当然,不同产商的make各不相同,也有不同的语法,但其本质都是在“文件依赖性”上做文章,这里,我仅对GNU的make进行讲述,我的环境是RedHat Linux 8.0,make的版本是3.80。必竟,这个make是利用最为宽泛的,也是用得最多的。而且其还是最遵循于IEEE 1003.2-1992 规范的(POSIX.2)。 在这篇文档中,将以C/C++的源码作为咱们根底,所以必然波及一些对于C/C++的编译的常识,相干于这方面的内容,还请各位查看相干的编译器的文档。这里所默认的编译器是UNIX下的GCC和CC。 0.1 对于程序的编译和链接    在此,我想多说对于程序编译的一些标准和办法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。而后再把大量的Object File合成执行文件,这个动作叫作链接(link)。               编译时,编译器须要的是语法的正确,函数与变量的申明的正确。对于后者,通常是你须要通知编译器头文件的所在位置(头文件中应该只是申明,而定义应该放在C/C++文件中),只有所有的语法正确,编译器就能够编译出两头指标文件。一般来说,每个源文件都应该对应于一个两头指标文件(O文件或是OBJ文件)。        链接时,次要是链接函数和全局变量,所以,咱们能够应用这些两头指标文件(O文件或是OBJ文件)来链接咱们的应用程序。链接器并不论函数所在的源文件,只管函数的两头指标文件(Object File),在大多数时候,因为源文件太多,编译生成的两头指标文件太多,而在链接时须要显著地指出两头指标文件名,这对于编译很不不便,所以,咱们要给两头指标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。       总结一下,源文件首先会生成两头指标文件,再由两头指标文件生成执行文件。在编译时,编译器只检测程序语法,和函数、变量是否被申明。如果函数未被申明,编译器会给出一个正告,但能够生成Object File。而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种谬误个别是:Link 2001谬误,意思说是说,链接器未能找到函数的实现。你须要指定函数的ObjectFile.              好,言归正传,GNU的make有许多的内容,闲言少叙,还是让咱们开始吧。 1 Makefile 介绍       make命令执行时,须要一个 Makefile 文件,以通知make命令须要怎么样的去编译和链接程序。       首先,咱们用一个示例来阐明Makefile的书写规定。以便给大家一个感兴意识。这个示例来源于GNU的make使用手册,在这个示例中,咱们的工程有8个C文件,和3个头文件,咱们要写一个Makefile来通知make命令如何编译和链接这几个文件。咱们的规定是:            1.如果这个工程没有编译过,那么咱们的所有C文件都要编译并被链接。 ...

March 7, 2021 · 22 min · jiezi

关于linux入门:华硕官方源码编译斐讯K2

应用工具VirtualBox 应用Ubuntu 20.04.2 LTS版本。 编译步骤参考的文章间接逐行复制了上面的命令,我理论应用时,第一行我是一个个先用man命令测试了是否曾经装置过。前面就间接复制粘贴了。装置时用过sudo apt install命令,之前看过区别,但当初遗记了。 sudo apt-get install git autoconf automake bash bison bzip2 diffutils file flex sudo apt-get install m4 g++ gawk groff-base libncurses-dev libtool libslang2 make patch perl sudo apt-get install pkg-config shtool subversion tar texinfo zlib1g zlib1g-dev git-core gettext sudo apt-get install libexpat1-dev libssl-dev cvs gperf unzip python libxml-parser-perl gcc-multilib sudo apt-get install gconf-editor libxml2-dev g++-4.7 g++-multilib gitk libncurses5 mtd-utils sudo apt-get install libncurses5-dev libstdc++6-4.7-dev libvorbis-dev g++-4.7-multilib git autopoint sudo apt-get install autogen sed build-essential intltool libelf1:i386 libglib2.0-dev xutils-dev sudo apt-get install lib32z1-dev lib32stdc++6在复制到sudo apt-get install gconf-editor libxml2-dev g++-4.7 g++-multilib gitk libncurses5 mtd-utils时,报了错,后续解决方案写在另一篇文章里装置g++ 4.7 ...

March 1, 2021 · 1 min · jiezi

关于linux入门:VirtualBox-中的Ubuntu-1604-server-与主机Windows-10文件共享

抉择Windows中的一个文件夹作为待共享的文件夹,我选的是share在VirtualBox-设置-共享文件夹,新建一个固定调配的门路,就是选中的文件夹,如下图运行虚拟机,点击设备-装置加强性能,如下图,而后把虚构机关机,在VirtualBox管理器-存储-控制器的地位能够看到第二IDE控制器主通道曾经变成了VBoxLinuxAdditions.iso,如下图从新把虚拟机开机,执行挂载 sudo mount /dev/cdrom /media/cdrom, 胜利后会提醒 mount: /dev/sr0 is write-protected, mounting read-only执行 cd /media/cdrom ,而后执行 sudo ./VBoxLinuxAdditions.run,我这提醒了Please install the gcc make perl packages from your distribution., 依照提醒执行 sudo apt install gcc perl make,装置结束后再次执行 sudo ./VBoxLinuxAdditions.run,这次顺利运行。重启虚拟机,执行 ls /media,能够看到多了一个文件夹 sf_Share ,然而目前还没有拜访权限,再执行一遍 sudo usermod -aG vboxsf $(whoami),而后重启便能够了。再次进入 /media/sf_Share,能够看到windows外面的文件了。参考https://www.cnblogs.com/adfor...

February 28, 2021 · 1 min · jiezi

关于linux入门:VirtualBox中的Ubuntu联网

上次写了一篇Xshell登录虚拟机VirtualBox中的Ubuntu办法,前面发现虚拟机中的Ubuntu没方法联网,又折腾了半天搞定后,又看到对于VirtualBox在桥接模式下无奈联网 解决方案,这个计划也没有尝试,就写写我当初应用的计划吧。 首先,将Virtualbox相应的虚拟机-设置-网络-网卡1,设置为仅主机网络;同时网卡2设置为网络地址转换,两个网卡都要勾上插入网线关上Virtualbox-治理-主机网络管理器,将DHCP服务器关掉,设置成手动配置网卡,记下其IP地址,我的是 192.168.56.1登录虚拟机,执行 sudo vi /etc/network/interfaces, 编辑网卡如下,其中enp0s3是用于主机用Xshell登录的,设置规定 address 前三段和后面第2步的IP保持一致为192.168.56,第四段不一样就行,我设置的是192.168.56.2, netmask设置为255.255.255.0, gateway设置为第二部的IP,我这就是192.168.56.1。而后设置第二个网卡enp0s8,设置成主动就好,这个网卡就是用来联网用的。这样设置完,重启虚拟机应该就能够联网了,试一下 ping baidu.com,看一下曾经能够ping通了。要留神的是,在 /etc/network/interfaces 外面,可能本来只有一个网卡,能够通过 sudo lshw -class network 查问进去另外的网卡信息。还要另外留神,两个网卡的设置要和Virtualbox外面的一一对应,如果设置完不行,能够看一下这里的serial是否和Virtualbox外面的MAC地址对应上参考文章VirtualBox下虚拟机和主机内网互通+虚拟机动态IP的网络配置VirtualBox的四种网络连接形式为VirtualBox中的Ubuntu配置双网卡

February 28, 2021 · 1 min · jiezi

关于linux入门:Xshell登录虚拟机VirtualBox中的Ubuntu方法

在官网下载Xshell,抉择Home/School版本,能够收费应用VirtualBox,设置-网络中抉择桥接网卡,界面名称抉择virtual adapter那个,如下图:在Windows零碎中,控制面板-网络和Internet-网络连接中,选中当初曾经联网的网卡(我的是WLAN)和VirtualBox Host-only network,单击右键,抉择桥接,胜利后的界面如下图:登录虚拟机中的Ubuntu零碎,装置ssh服务,执行 sudo apt install ssh装置胜利后,启动ssh服务,执行sudo service ssh start查看ip地址,执行ifconfig,如下图中的 inet addr:192.168.137.13关上Xshell,文件-新建会话,名称中填入虚拟机的名字,主机填入上一步查到的ip,端口号默认22,点击连贯,依照提醒即可连贯胜利。改成桥接模式会有一个问题,如果没有第3步桥接网络,在Ubuntu启动的时候,会在一步 a start job is running for the raise network 期待5分钟,破费很长时间。这是Linux初始化超时造成的,能够减小等待时间解决(参考 how to fix “ a start job is running for the raise network ” in ubuntu server 16.0 LTS)。

February 25, 2021 · 1 min · jiezi

关于linux入门:为了后续练习集群项目在vm中安装centos

下载centos,抉择DVD 为了进行更具体的配置抉择稍后装置: 而后始终点下一步到这个界面: 电脑是16G的内存就设置虚拟机的内存为4,8G就设置为2CPU是四核八线程,处理器就设置为数量1,每个处理器内核数量为2若是八核十六线程,处理器就设置为数量1,每个处理器内核数量为4 网络适配器就选NAT模式,不知为何我抉择桥接模式总是无奈ping通宿主机 而后点击敞开 点击开启此虚拟机 只有点这两个地位,装置地位点进去什么都不必改,网络和主机名点击关上 本人设置账号密码 剩下就是配置SSH与SFTP了

September 20, 2020 · 1 min · jiezi

ssh-别名登录

1.修改配置,打开密匙登录vim /etc/ssh/sshd_config,修改配置项为如下。 RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys2.本地生成密匙 ssh-keygen -t rsa执行以上命令,会在~/.ssh 目录下生成密匙文件 id_rsaid_rsa.pub3.服务器保存公匙在本地执行 cat .ssh/id_rsa.pub复制里面的内容进入服务器,在~/.ssh目录下创建authorized_keys文件(已存在则不用创建),将刚刚复制的内容粘贴到里面 这样就可以在本地无密码登录服务器了 ssh 192.168.10.10

November 3, 2019 · 1 min · jiezi

vsftpd安装配置

一.简介 vsftpd 是linux上的一款强大ftp服务器,可配置为2种模式:PASV(被动模式)和PORT(主动模式)。2种模式在建立控制通道的时候是完全一样的,但是在数据通道的建立上有所不同。被动模式(推荐)下在数据通道建立的时候,服务器被动开放随机端口(可限定)让客户端来连接,从而建立数据通道。而主动模式(默认)下在建立数据通道时,服务器主动通过客户端发出的端口信息建立数据通道。 二.步骤 yum -y install vsftpd //yum安装 mkdir /home/dev/ftpfile //创建ftp共享文件夹 useradd cyl -d /ftpfile -s /sbin/nologin //创建虚拟用户,为了安全起见,不给登录权限 chown -R cyl.cyl /home/dev/ftpfile //修改文件夹权限 passwd cyl 111111 //重设密码 cd /etc/vsftpd vim chroot_list //用户列表 vim /etc/selinux/config 修改为SELINUX=disabled //启用ftp支持 reboot //重启服务器 vim /etc/vsftpd/vsftpd.conf //修改配置项 配置防火墙: 重启防火墙和vsftpd 访问后报错:500 OOPS: cannot change directory:/home/dev/ftpfile/ 修改dev文件夹权限:chmod 777 dev 本人创业团队产品MadPecker,主要做BUG管理、测试管理、应用分发网址:www.madpecker.com,有需要的朋友欢迎试用、体验!本文为MadPecker团队技术人员编写,转载请标明出处

June 25, 2019 · 1 min · jiezi

常用的linux命令行笔记

ls-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);-A:显示除影藏文件“.”和“..”以外的所有文件列表;-C:多列显示输出结果。这是默认选项;-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;--file-type:与“-F”选项的功能相同,但是不显示“*”;-k:以KB(千字节)为单位显示文件大小;-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;-m:用“,”号区隔每个文件和目录的名称;-n:以用户识别码和群组识别码替代其名称;-r:以文件名反序排列并输出目录内容列表;-s:显示文件和目录的大小,以区块为单位;-t:用文件和目录的更改时间排序;-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;-R:递归处理,将指定目录下的所有文件及子目录一并处理;--full-time:列出完整的日期与时间;--color[=WHEN]:使用不同的颜色高亮显示不同类型的。 cat-n或-number:有1开始对所有输出的行数编号;-b或--number-nonblank:和-n相似,只不过对于空白行不编号;-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;-A:显示不可打印字符,行尾显示“$”;-e:等价于"-vE"选项;-t:等价于"-vT"选项; mv--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;-b:当文件存在时,覆盖前,为其创建一个备份;-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。--strip-trailing-slashes:删除源文件中的斜杠“/”;-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;--target-directory=<目录>:指定源文件要移动到目标目录;-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作 touch-a:或--time=atime或--time=access或--time=use 只更改存取时间;-c:或--no-create 不建立任何文件;-d:<时间日期> 使用指定的日期时间,而非现在的时间;-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;-m:或--time=mtime或--time=modify 只更该变动时间;-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;-t:<日期时间> 使用指定的日期时间,而非现在的时间;--help:在线帮助;--version:显示版本信息。 如何使用 explainshell.com ?打开网站在搜索框里输入你要查询的git命令行,就会跳出相应的解释。

May 22, 2019 · 1 min · jiezi

Linux 搭建 Ftp 服务

使用 RH 系 Linux,Debian 系请酌情参照安装 ftp 所需包安装 ftp 包yum -y install ftp安装 vsftpd 包yum -y install vsftpd注:配置文件路径 /etc/vsftpd/,需要时用 vim 修改即可创建 ftp 用户,并赋权创建普通用户(我这里用户名为 huoher)useradd huoher设置该用户只能使用 ftp 而不能通过 ssh 或其他协议登录进来usermod -s /sbin/nologin huoher由于用户是 ftp 的,不是正常的登录用户,修改其用户主目录(我的是/mnt)usermod -d /mnt huoher设置用户密码passwd huoher可能你是用 root 创建的目录,现在更改所有者chown huoher huoher/#chown 用户名 目录名以及,关闭 sellinux为何关闭的原因不在此详述setenforce 0大功告成可以试试 ftp 服务了我的博客: blog

February 14, 2019 · 1 min · jiezi

写在使用 Linux 工作一年后

start去年公司空了几台台式机,当时看了下似乎配置比我用的乞丐版 air 略高一些,而且除了 ssd 以外还有一个 1T 的大硬盘,加上后面可能会有一段时间不做 iOS 了,那就不需要 macOS 了,于是顺了一台过来桌上用来打算做开发机,当时可选的方案有 Windows 10 和 Linux,思考了下机器上 60G 的 ssd 估计是不能装那么多东西的,而 Windows 要把好多东西装到 D 盘,其实用起来好麻烦,感觉自己不太会用,于是选择了 Linux本文写在我使用 Linux 作为开发环境后的三个月,也就是主力开发环境为纯 Linux 环境,偶尔使用虚拟机做配合,Linux 是天生为喜欢折腾的人准备的,当然也是为了知道自己想要做什么和想要什么的人准备的,所以本文的目的是为了以 Linux 作为生产开发环境为目标的人准备的,如果只有想要装个 Linux 的想法,或者只有想要试试玩玩的想法,个人建议使用自己熟悉的环境(Windows 或者 macOS)搭配虚拟机从完整配置一个 ArchLinux 开始学习本文主要是为了将要以 Linux 作为自己主力开发环境的同学准备的一些意见建议,以及自己的踩坑经历,如果你想要以 Linux 作为主力开发环境可以把本文作为开始,但是本文绝对不是结束,linux 的折腾是无止境的好处和坏处好处开箱即用的开发环境,和 macOS 一样,Linxu 几乎为所有主流开发平台、语言提供了开箱即用的环境大量开箱即用的开源工具,后来我喜欢上了 Kate(KDE 上提供的一个文本编辑器,虽然插件少,但是本身功能完善)很少让人分心的东西(没有 QQ,基本没有游戏)超好用的终端模拟器很多好用的开源工具,有些甚至带到了 mac 上继续使用高度可配置,只要你有心思,外表想做成什么样都可以折腾折腾折腾坏处折腾折腾折腾没有 QQ,只能虚拟机或者 wine,smart qq 消息或者群多,就二了微信,只有 web 微信,或者经过 electronic 包装的 Electronic-Wechat 或者非官方的 wewechat,但是一直用 web 版本微信,容易被封号,前几天我被封号了,用户反馈了,理所当然的未果,用了两周虚拟机,莫名的解封了高度可配置,双刃剑,配置的后果,杀敌1000,起码自损300,用了一些暗色系主题。。。结果有些文本,button 看不清了,wps 的表格居然变黑了(暂时懒得解,用 libreoffice 其实挺顺畅的,之前在 mac 上这东西可卡了)Linux 中折腾,既是好处也是坏处,好的地方是让你知道盒子里到底是哪个齿轮坏了,坏的地方是找来找去,发现盒子里齿轮没坏,只是每个齿轮都有那么一丢丢不正常,所以我一直觉得开源那帮人其实是非常不靠谱的,如果没有需求,真心不需要折腾 Linux,你看得没错,我在劝退开始折腾上面介绍完了,有兴趣的同学继续往下看吧,接下来我们开始正题吧,Linux 之路折腾无限,但是作为开发环境,我们需要在折腾和稳定之间找到平衡点折腾的背景下面是我在 Linux 世界探索(碰壁)以及对我使用 Linxu 有帮助的一些经验,希望对大家有用很多的 Windows 安装经验和 Linux 安装经验,多体验不同的发行版,找到合适自己使用的,以前电脑性能很差跑虚拟机很费劲,对于现在电脑来说,有虚拟机会很方便你的学习通过配置一个完整的 ArchLinux 环境,学习整个 Linux 系统的配置,启动,桌面环境相关的所有基础知识4年的 macOS 使用经验,大家别说,从 macOS 迁移到 Linux 除了开发者们给我们准备的各色精致的 mac 应用以外,整个迁移过程非常顺滑知道自己想要什么遇到问题能自己解决上面几点,是我这次能成功把工作环境迁移到 Linux 的一个基本保障,接下来我在下面列下我折腾了哪些东西,让我的工作丝般顺滑发行版选择作为生产开发环境不同于实验研究环境,最主要是需要稳定能够持续支持工作,至少不经常崩溃或者每过几个月就需要重装系统。我曾经在大学时候和工作以后,体验过很多主流的发行版(这里说主流就是真的主流主要包括,Debina,Fedora,Ubuntu,openSuse,ArchLinux),最终选择了 Fedora 27(当时是测试版,但是我相信自己有坑能踩过并且正式版还有一个月就发布了,不太信自己的同学可以在选择的时候选择正式版,毕竟是用于支持生产开发的环境,最主要是稳如老狗)排除的理由Debian:排除,装的次数太少了,熟悉程度不高Ubuntu:安装了两次,每次都有奇奇怪怪的问题(可能跟我安装的是非 LTS 版本有关)openSusu:上大学的时候用的最多的就是他,但是那时候总有些奇奇怪怪的问题没办法解决ArchLinux:太过于折腾,工作以后装了几次,从安装到桌面环境,一般需要一到两天的时间,个人感觉坚守 Arch 的简单哲学 pacman 其实没有 dnf 那么完善,但是如果初学 linux,那么这个是首选选择的理由我第一次折腾 Linux 的时候,尝试了 RedHat 9,之后尝试了 Fedora Core(那时候 Fedora 的原名),选择 Fedora 有种熟悉的配方的感觉服务器大多数用 CentOS,依然是熟悉的配方的感觉,将来部署应用也会有熟悉的味道知呼看介绍,Fedora 是 Linux 的 Cutting-Edge,想要体验最新最棒的 Linux 就靠他了两次 Ubuntu 的安装失败。。。让我怀疑这最广的发行版,不是为我准备的(我真不是黑 Ubuntu,在想要切换的一开始就想到他了,也动手装上了)桌面环境的选择Linux 上的开放性,所以,我们在不喜欢当前用着的桌面环境的时候,可以换一个。。。这似乎是个很美好的事情。。。但是很遗憾,开源社区再次 show 出了他们的不靠谱最终我选择了 GNOME on Xorg,原因如下:KDE 依然是炫技的平台,高端大气上档次,但是各种 bug 不断GNOME on Wayland,不能用 shutter 截图,偶尔整个 GNOME 挂,Wayland 离稳定使用还有一些距离虽然 GNOME 的臃肿是大家一直诟病的问题,但是我只是需要一个常用的工作环境,并不想花一两天去折腾,而 GNOME 确实符合这个需求感觉 GNOME 的文件管理器跟 Finder 很类似,稍微好用一些了为什么不直接全盘命令行?我虽然熟悉以及喜爱命令行,但是我倡导合适的地方使用合适的工具,我们主要的目的是工作,而不是炫技,并不是所有人都能只用命令行完成所有工作相比每次找到项目路径,敲入 push,pull 我还是喜欢用点下鼠标就能 push pull 代码还能分组库的 GitEyeVSCode – 我的主力开发工具,并没有命令行版图形界面下,有 Tilix 这样方便的神器,可以类似 iTerm 一样分割窗口各种,也有 Hyper 这样能随意扩展的现代命令行工具多窗口管理,对,我还要聊天呢这里可以说下,个人建议使用 KDE 或者 GNOME,因为我的目的是稳定,当然大家也可以尝试其他的桌面环境,毕竟 linux 最大的优势就是开放安装安装指引需要材料网络fedora live 镜像,可以到 Fedora 官网 下载一个 4G 的优盘(live 镜像大约 1.7G ~ 2G 左右,大一点没啥坏处)Etcher 用于将 live 镜像写入优盘中上面就是安装 fedora 需要的所有材料了安装步骤使用 Etcher 将 fedora 的镜像写入到优盘中重启电脑,在 BIOS 中设置通过优盘启动启动后会进入到 fedora 的 live 界面中,在 live 界面中找到安装程序并打开根据提示选择安装位置,语言,市区等各种东西,之后点击开始安装,这样就开始了安装之旅因为安装的时候我没有截图,这里用虚拟机打开了镜像给大家看下安装界面,等待半小时左右,就可以安装完成了,安装完成后重启就会进入到新的系统了,我们就进入纯 linxu 的世界了系统调配安装完成后,这只是一个刚好可以用,并附带了 GNOME 所附带的大部分应用程序的系统,那么离我们可以使用,其实还是有距离的,接下来我会介绍我对系统的初步调配将消耗空间的东西链接到磁盘上去我的初衷就是为了想要一个启动快速的系统,并且能安装大量应用,所以第一步,我将会把很多消耗磁盘空间的路径链接到 1T 的机械硬盘上(哎呀,好长,下面统一叫 HDD 了),如果这一步失败了,那么也不会有剩下的步骤了,链接后给我的感觉是,整体系统速度并没有变慢很多,不过在打开大应用(比如 Jetbrain 家的大型 Java 应用)时会有一些卡顿,但是打开后,整个使用体验是很流畅的,不过也因为本机内存不是很大(8G)所以应用开多了还是会卡,特别开了虚拟机以及某些大型 Java 应用的时候很容易出现卡顿的现象下面是我电脑上磁盘使用的截图,data 1 - 3 就是 HDD(切勿嘲笑别人取名无力),这里没有显示 home 的分区,我的 home 分区大约是 20G,root 分区大约是 40G(当然还有 boot 啊之类的分区,这个在选择自动分区的时候,安装程序会帮你搞定)data1 作为 home 的延伸,主要用来存放文档,开发中的项目等data2 用作虚拟机存储空间,单独分区,方便管理data3 就是这一环节的主角了,大部分的系统应用都链接到了这里不过我并不是一次性把所有的路径链接好的,而是在用的过程中发现 SSD 空间不足的时候,找到一些消耗空间大的路径,把他链接到 HDD 上,这里是我链接的一部分路径,供大家参考下:/.icons 和 /.themes:主题和图标路径,链接这个主要是装主题方便/.local:当前用户的应用数据,链接这个帮你解决大部分的空间问题/.var:当前用户的 var 路径,一部分(主要是 flatpak 打包的)应用会把数据写到这个路径/opt:部分应用会安装到这个路径/var/lib/flatpak:flatpak 的应用会安装到这里/var/log:日志把这些路径链接后,相信磁盘空间会空闲出很多了,这样小 SSD 的电脑也能愉快玩耍了另外,除了上面的路径外,还有一些比较特殊的路径也会占用大量空间,这里也列举下~/.stack:学 haskell 的时候,stack 是 haskell 的包管理器,通过 stack 安装的包会在这里~/.nixnote:nixnote 是 linux 下的 evernote 实现,他的数据会放这里/usr/share/dotnet:.net 相关的东西,老占空间了/usr/lib64/ghc-x.x.x:haskell 的编译器,老占空间了除了这些如果大家在使用过程中发现某个路径,或者某个应用特别占空间,也可以把他们链接到 HDD 上,节约 SSD 上宝贵的空间安装大概率用得到的包启用 RPMFusion 源参考 -> RPMFusion 配置 根据系统版本启用 RPMFusion 自由(free)和非自由(nonfree)的软件源配置启用 FDZH 源参考 -> FDZH 配置 根据系统启用 FDZH 中的源,同时 FDZH 的 wiki 中也包含了一些常用软件的安装配置,大家可以参考下刷新下 dnf 源第一次安装完成,或是添加了 RPMFusion 和 FDZH 的源后,需要刷新一下 dnf 的源,这样我们就能安装到新添加的软件包了sudo dnf update –refresh安装 Development Tools 软件组Development Tools 包含了开发使用到的各种工具,所以我们首先要把他装上sudo dnf group install “KDE Plasma Workspaces"安装 KDE这一步是可选的,如果喜欢 KDE 的,那么可以输入下面的命令安装sudo dnf group install “KDE Plasma Workspaces"看看还需要什么使用 Linux 作为主力环境最方便的地方就是我们需要什么那么就安装什么,可以使用下面的命令看下还有些什么软件组可以安装使用dnf group list配置工具系统Font Tweaks Tool:调配字体渲染的,如果看着字体不舒服,就靠他了Fedy:fedora 调教工具,附带了一些调教脚本以及一些应用商店没有的应用的安装渠道存活指引安装配置结束后,接下来介绍下 linux 的日常存活指引开发存活指引本文介绍是以主力使用 Linux 开发为主,所以优先介绍开发使用到的工具,其实大部分工具都是开源或是跨平台的,在其他系统中我们也能用到Visual Studio Code:微软搞的开源代码编辑器,个人认为最好的编辑器之一,曾经我觉得我不会放弃 vim 的,后来真香CherryTree:代码笔记上品,代码贴大集合,也是跨平台的(Mac 上没有独立包,最近尝试达了一个,但是始终不是那么顺利)Tilix:媲美 iTerm 的终端模拟器GitEye:基于 eclips 平台开发的 git 工具Zeal:linux 上的 Dash,文档库兼容 Dash 的,并且也可以直接下载 Dash 的文档Jetbrains:全家桶,不得不说 Jetbrains 为我们提供了最好用的 IDE 系列,要说缺点的话,那就一个字 —— 贵!StarUML:画 UML 的好工具,跨平台neovim:作为 vim 党,这个必推,虽然现在主力已经是 VSCode 了,但是我也要 VSCode 掺着 vim 插件才能真香MySQL Workbench:MySQL 官方提供的数据库工具,只用 MySQL 没有比他好的DataGrip:多数据库链接工具,贵!GitKraken:相比 GitEye 是一个更好看的 git 客户端,不过只能免费用于开源项目Kate:KDE 默认的文本编辑器,好用,快速,稳定,但是插件少很多,无法作为主力开发担当小程序开发工具:https://github.com/cytle/wechat_web_devtools开发小程序必备有了上面的一堆开发工具相信是可以从容面对日常开发工作了,linux 上除了 DataGrip,Navicat 之类的商业软件以外确实没找到很好用的多数据库链接工具,这点算是一个遗憾了,大家要是有推荐的可以联系我虚拟机建议如果虚拟系统是 linux 系并且不使用 GUI,建议直接使用系统自带的 qemu 或是 kvm,另外不要使用 GNOME 带的 Boxes,Boxes 是为了简化虚拟机操作而开发的应用,但是实际上还不是很成熟,建议安装 Virtual Machine Manager 作为虚拟机管理工具,虽然 Virtual Machine Manager 上手会比 Boxes 稍微麻烦一些,但是可配置性要好很多,并且 qemu 和 kvm 对共享文件系统支持要好一些,据说文件读写速度接近原生并且 qemu 是系统服务,Virtual Machine Manager 只是一个管理界面,在启动好虚拟机后,我们可以直接 ssh 上虚拟机即可操作,无需继续开着管理界面,并且在系统 UI 崩溃的时候,虚拟机服务并不会崩溃,也不会影响我们运行在虚拟机中的程序如果虚拟系统是 Windows 系或是使用 GUI 的 linux,那么建议使用 Virtual Box 或 VMWare 商业软件,qemu 在图形化操作系统上始终并不是很好用,经常有鼠标位移,速度慢之类的问题日常存活指引日常存活主要包括了聊天和 Office 办公系列,以及笔记之类的日常应用ElectronWechat:微信聊天必备WPS:Linux 上唯一能叫做 Office 的工具LibreOffice:Linux 上第二的 Office 工具,这也是对多编码 csv 文件支持最好的工具,就算是 MS 家的 Excel 也没这个对多编码 csv 支持好用,如果需要从数据库导数据做报表之类的,建议一定装一个Nextcloud:如果你有一个私人的服务器,那么建议部署一个 ownCloud 或是 Nextcloud 作为文件共享使用,同步文件丝般顺滑,同时还能提供部分应用使用QOwnNote:比较好的跨平台笔记软件,搭配 Nextcloud 使用完美实现笔记同步Typora:好用跨平台 markdown 写作工具,可以将 markdown 输出为 pdf 和 html 页面,本文就是用 Typora 和 Kate 共同完成写作Firefox:忘了 chrome 吧,firefox 才是最好用的,哈哈哈哈哈CopyQ:好用的剪贴板管理工具为没有程序起动器的应用添加程序起动器程序起动器我们可以理解是 Windows 里面的快捷方式,linux 中很多应用最主要就是执行二进制文件,但是有些应用却没有提供一个起动器(在 Launcher 中),这让我们每次打开的时候还需源通过命令行去运行,当然还有的应用更过分比如用 python 写的,还需要用 python 去找到那个应用的脚本去执行,既然我们都进入图形界面了,那不能倒退啊,这里说下怎么创建起动器这里我用 Typora 来举例,Typora 并没有提供 rpm 包装,也没有在 dnf 的软件源中,所以 Typora 在下载后就是一个朴实无奇的压缩包,解压后,就是一堆文件,看下图我圈起来那个文件,那就是 Typora 的可执行文件,双击他也能运行,那么我们起动器的目标就是打开这个可执行文件在 linux 中,每一个起动器都对应一个 desktop 文件,所有的 desktop 文件都在 /usr/local/share/applications 路径下,用户自己的起动器,也可以放到 ~/.local/share/applications 路径下,接下来我们来看看起动器的内容,起动器其实就是一个文本文件,告诉系统如何启动这个应用Name=TyporaComment=Markdown WriterExec=/home/noark9/data1/Applications/Typora/current/TyporaIcon=/home/noark9/data1/Applications/Typora/current/resources/app/asserts/icon/icon_512x512@2x.pngStartupWMClass=TyporaTerminal=falseType=ApplicationEncoding=UTF-8Categories=Productive;Name[en_US]=Typora.desktop这里就描述了 Typora 这个应用如何启动,之后把这个文件放到 /usr/local/share/applications 或是 ~/.local/share/applications 路径下,这样在应用程序中就能看到他了,在 /usr/local/share/applications 路径下还有很多起动器,大家在自己写的时候可以多多参考让心情愉悦的指引心情愉悦啊,那就包括一些娱乐活动了VLC:看电影的不二之选Steam:其实支持 Linux 的游戏还挺多的OpenRA:红警的开源实现,支持在线对战,玩起来其实挺开心的ioquake3:Quake3 的开源实现,玩起来炒爱心的DosBox:DOS 模拟器,玩 DOS 游戏专用,还可以装个 Win 3.1 在里面,方便管理文件dolphin:wii 模拟器,wii 游戏走起end使用了 linux 一年以后,我发现我已经可以很好的在 linux 桌面下存活了,也能很好的完成我的工作,我并不推崇大家盲目的上 linux,毕竟这并不是一个想上就能上的系统,在使用过程中还是遇到了很多奇奇怪怪的问题,也有作死把桌面环境网络全搞挂最后自己恢复的时候,但是 linux 确实是一个能锻炼人的好系统,使用 linxu 能大大增强自己查找资料的能力,解决问题的能力,以及独立思考的能力本来本文应该是今年年初的时候就会写完了,所以这里最早的标题是在使用 Linux 工作三个月后,直到年末了,我也开始用回 Mac 后才完成本文的撰写,但是本文依然是完全在 linxu 下撰写完成,并未使用到 Mac 做任何的辅助,中途由于我的失误把 GNOME,KDE 等桌面环境卸载了,并且删掉了网卡驱动后重新配置了网卡驱动和重新安装桌面环境,导致部分我使用的部分应用已经没有安装在系统里面了,这样也让我遗失了一些资料大家也可以经常看看 Fedora Magazine ,我挺喜欢 Fedora Magazine 的,里面经常有有趣的开源工具和 linux 使用经验分享最后欢迎大家订阅我的微信公众号 Little Code公众号主要发一些开发相关的技术文章谈谈自己对技术的理解,经验也许会谈谈人生的感悟本人不是很高产,但是力求保证质量和原创 ...

October 26, 2018 · 3 min · jiezi