当前分类 / Linux / 总共6篇

十大 Linux 操作系统发行版概览

对于 Linux 新手来说,在各发行版之间困惑得进行选择和不断增加的数量实在令人头晕,这就是写作本文的原因,其中列出的 10 个(附加一个值得一提的 FreeBSD,BSD 一族中最为流行的)是被全世界的 Linux 玩家最广泛使用的发行版。没有数据来支持这个结论,而且对于人们特殊的需求也许会有其它更好的版本来满足,但作为一般原则,这些版本都使用广泛还有活跃的论坛或者邮件列表来让你在遇到问题卡住的时候求救。 Ubuntu, Linux Mint 和 PCLinuxOS 被认为是对想在熟悉系统的复杂内容之前尽可能早的开始使用的人来说最简单的版本;与之相反, Slackware Linux, Gentoo Linux 和 FreeBSD 是高级版本,在有效使用前需要进行大量的学习;openSUSE, Fedora, Debian GNU/Linux 和 Mandriva Linux 则可以被叫作优秀的“中间路线”版本; CentOS 是企业版本,适合对稳定性、可靠性、在尖端功能和软件的长期支持方面比较看重的用户。

Ubuntu

Ubuntu 于 2004 年 9 月首次发行。尽管以一个新人出现在 Linux 的舞台,这个项目还是发展的好像不存在对手一样,它的邮件列表很快即被热切的用户和激动的开发者的讨论所充满。在接下来的几年里, Ubuntu 成长为最流行的 Linux 桌面版本而且对“简单易用”和能够与其它任何在市场上的私有版本进行竞争的操作系统的发展有巨大贡献。

何为 Ubuntu 取得如此震惊成功的原因?首先,这个项目的发起人是 Mark Shuttleworth - 一个极有魅力的南非富翁、一个前 Debian 开发员和世界第二个太空游客-他注册在马恩岛的 Canonical 公司目前正在资助这个项目;其次, Ubuntu 从其它类似发行版的错误中汲取教训并且从开始就避免重蹈覆辙-它用 wiki 风格的文档、有创意的错误报告机制和面向终端用户的专业方法创建了一个完美的基于网络的底层结构;最后,感谢它富有的创始人使得 Ubuntu 有能力向全世界的爱好者免费发送 CD,这对版本的快速传播很有帮助。

关于技术方面的东西, Ubuntu 基于 Debian 的 Sid (不稳定分支),但是通过一些杰出的软件包,比如 GNOME , Firefox 和 OpenOffice.org 等可以升级到它们的最新版本。 Ubuntu 有 6 个月的发布周期,偶尔还会出现提供安全升级 3~5 年的长期支持版(LTS),这取决于版本号(非LTS版本提供18个月的支持)。 Ubuntu 的其它特点包括一张可安装的 live CD ;有创意的艺术作品和桌面主题;对于 windows 用户的移民手册;对最新技术的支持,比如3D桌面特效, ATI 和 NVIDIA 显卡以及无线网络的私有设备的驱动的简易安装;和非免费或专利担保的媒体解码器的有求必应的支持。

  • 支持论点:固定的发布周期和支持时间;新手友好性;包括官方提供和用户贡献的丰富文档
  • 反对论点: Ubuntu 自带的某些软件(比如: Rosetta )是私有的;与 Debian 兼容性不佳
  • 软件包管理工具:使用DEB包的高级包工具(APT)
  • 可用版本:Ubuntu, Kubuntu, Xubuntu, Ubuntu Studio and Mythbuntu for 32-bit (i386) and 64-bit (x86_64) processors; Ubuntu Server edition also for SPARC processors
  • 基于Ubuntu的推荐替代版:Linux Mint (desktop), gOS (desktop with Google applications), OpenGEU (desktop with Enlightenemnt), Ultimate Edition (desktop), CrunchBang Linux (desktop with Openbox), gNewSense (free software)

阅读更多

Linux系统上手篇

参考链接:

《鸟哥的Linux私房菜》 《深入理解yum工作原理》

常用命令汇总

创建用户

当前用户是root用户,想创建一个新用户lixiaoqiang使用命令useradd来添加。

[root@test ~]# useradd lixiaoqiang
[root@test ~]# passwd lixiaoqiang
Changing password for user lixiaoqiang
New UNIX password:

注意命令提示符的结构:[登录的用户名@主机名 当前目录]# (# root用户, $ 普通用户)

扫盲命令

命令解释
pwd查看当前路径
cd改变当前路径
ls列出文件和目录
cp拷贝文件
mv移动文件(相当于剪贴)
rm删除文件
touch创建空文件或者更新文件时间
mkdir创建目录
cat查看文件
su切换身份(切换登录用户, exit可以返回上一个用户)
rebot重启(shutdown 关机)
man帮助命令(例如: man ls)

上面这些命令都有相对应的参数,可以使用man命令来查看,也可以用搜索引擎搜索或者在下面网站查看中文解释:

Linux命令大全

阅读更多

使用shell命令自动打包和处理和安装apk

我最近在工作中遇到一个经常重复的安装和复制操作,需要不定期给某几台设备安装apk并且要预装文件和设置设备序列号以及Mac地址。我今天尝试将这些操作用shell脚本一键处理,结果很成功。

在shell脚本中执行adb命令的方式有多种,可以直接adb shell + 命令执行也可以将命令全部放入一个txt文本文件,通过adb shell < 文件路径, 来批量执行。

脚本运行过程

定义路径

shell_path="/home/shuihan/Documents/shell/"
model1_name="M_Liveness_Antispoofing_Binocular.model"
model2_name="M_Verify_MIMICG2_Common_3.17.0_v1.model"
project_path="/home/shuihan/workspace/Faceye/"
apk_path=$project_path"app/build/outputs/apk/release/"
assets_path="/home/shuihan/workspace/Faceye/app/src/main/assets/"
target_path="/sdcard/sensetime/"

shell_path是我当前shell脚本文件的所在路径 model1_name和model2_name是我需要写入移动设备的两个文件名称,这两个文件在assets_path目录下。 project_path是我Android工程的根目录。 target_path是需要写入到移动设备内的路径。

写入文件到移动设备

echo "写入第一个model文件"
adb push $assets_path$model1_name $target_path$model1_name

echo "写入第二个model文件"
adb push $assets_path$model2_name $target_path$model2_name

使用adb push命令将PC中的两个文件写入到移动设备中。

构建打包

read -p "是否需要执行构建打包操作y/n?" pk
if [ "$pk" == "y" ];then
echo "开始打包"
cd $project_path
chmod +x gradlew
./gradlew assembleRelease
fi

询问是否需要打包,如果需要打包,则执行项目根目录下的gradlew脚本,这个脚本是Android中gradle自动生成的,在windows系统中是gradlew.bat文件。

如果要打debug包,就执行./gradlew assembleDebug

阅读更多

使用shell脚本来实现多平台一键提交和发布

最近将我的gitlab上面的博客倒腾了一番,结果发现访问速度堪忧啊!但是服务器又买不起,就又想到了码云,毕竟码云在国内访问速度比gitlab块不少,但是我又舍不得直接放弃gitlab,所以就想到了这个办法,gitlab和码云同时发布我的hexo博客文章。

shell基本语法

定义只读变量

使用readonly关键字来定义只读变量

gitlab_path="/home/shuihan/Documents/lxqxsyu.gitlab.io"
readonly gitlab_path

注意定义变量的时候等号两边不要留空白,字符串可以用双引号也可以用单引号。

定义函数

commitToGitlab(){
    echo "开始提交代码到Gitlab"
    cd $gitlab_path
    git add .
    git commit -m "$1"
    echo "提交代码到Gitlab成功:$1"
}

函数的传参是通过$1,$2,…来实现的

commitToGitlab "submit"
#输出为 提交代码到Gitlab成功:submit

注意shell的执行是顺序执行的,所以函数的定义要放在调用前。

逻辑判断

echo -e "输入c只提交不发布\n输入p则发布到远程服务器\n输入cp提交并且发布"
read -t 5 ml
echo -e "\n"
if [ "$ml" == "p" ];then
    publish
elif [ "$ml" == "c" ];then
    commit
elif [ "$ml" == "cp" ];then
    commit
    publish
else
    echo "请输入正确的命令,执行失败"
fi

注意:[ ]内左右两边要留空白, read是等待输入的命令, -t参数代表等待时间。

阅读更多

Linux 用 ImageMagick 批量压缩图片形成缩略图

原文: http://www.lao8.org/article_1698/imagemagick_linux.html

我的ImageMagick使用心得 http://www.charry.org/docs/linux/ImageMagick/ImageMagick.html

使用ImageMagick如何对图片进行全面压缩 http://www.programgo.com/article/88632572307/

ImageMagick之图片裁剪 http://www.netingcn.com/imagemagick-crop.html

linux中批量缩放图片的命令

首先得安装ImageMagick,linux中批量缩小图片的这个工具超级强大

linux centos安装命令

sudo dnf -y install ImageMagick

阅读更多