Linux
- Debian 参考手册
- Docker —— 从入门到实践
- Docker中文指南
- Docker入门实战
- FreeBSD 使用手册
- FreeRADIUS新手入门
- Linux Documentation (中文版)
- Linux Guide for Complete Beginners
- Linux 构建指南
- Linux 系统高级编程
- Linux工具快速教程
- Operating Systems: Three Easy Pieces
- The Linux Command Line (中英文版)
- Ubuntu 参考手册
- uCore Lab: Operating System Course in Tsinghua University
- UNIX TOOLBOX
- 命令行的艺术
- 嵌入式 Linux 知识库 (eLinux.org 中文版)
- 开源世界旅行手册
- 理解Linux进程
- 鸟哥的 Linux 私房菜 基础学习篇
- 鸟哥的 Linux 私房菜 服务器架设篇
- 轻而易举提升GNOME 3效率
- 如何在Linux的桌面上创建快捷方式或启动器
- 深入理解linux系统的目录结构(总结的非常详细)
- linux系统:rm-rf执行以后,怎么办?我来教你恢复文件。
- Linux系统入门教程:五大图像处理软件
- Debian 7 桌面美化
- [Linux 公社(https://linux.linuxidc.com/)
1. 镜像
2. Linux 各种版本
2.1. Debian
Debian运行起来极其稳定,这使得它非常适合用于服务器。Debian平时维护三套正式的软件库和一套非免费软件库,这给另外几款发行版(比如Ubuntu和Kali等)带来了灵感。Debian这款操作系统派生出了多个Linux发行版。它有37500多个软件包,这方面唯一胜过Debian的其他发行版只有Gentoo。Debian使用apt或aptitude来安装和更新软件。 Debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。Debian支持如今的大多数架构(处理器)。
- 下载Debian ISO映像文件:
![Debian Linux][1]
2.2. Ubuntu
Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。作为Debian Gnu Linux的一款衍生版,Ubuntu的进程、外观和感觉大多数仍然与Debian一样。它使用apt软件管理工具来安装和更新软件。它也是如今市面上用起来最容易的发行版之一。Ubuntu使用基于apt的程序包管理器。 Ubuntu是新手用户肯定爱不释手的一款操作系统。 - 下载Ubuntu ISO映像文件:
![Ubuntu Linux][2]
2.3. Gentoo
与Debian一样,Gentoo这款操作系统也包含数量众多的软件包。Gentoo并非以预编译的形式出现,而是每次需要针对每个系统进行编译。连Gentoo社区都觉得Gentoo安装和使用起来很困难;不过它被认为是最佳学习对象,可以进而了解Linux操作系统的内部运作原理。提到Gentoo总有人这么说:"如果你要学用Linux发行版,那就学用该发行版吧;如果你学会了Gentoo,也就学会了Linux。"Gentoo使用portage来安装和更新软件。 Gentoo这款操作系统适合对Linux已经完全驾轻就熟的那些用户。 - 下载和安装Gentoo:
![Gentoo Linux][3]
2.4. Damn Vulnerable Linux
当然,大多数人可能对这款发行版前所未闻,不过该发行版在本文中还是占有一席之地。那么,它有何过人之处呢? Damn Vulnerable Linux恰如其名:其字面意思就是"该死的易受攻击的Linux"。Vulnerable Linux(DVL)根本不是一般意义上的优秀的Linux发行版。它有意捆绑了坏的、配置不当的、过时的、很容易被不法分子攻击的软件。 它的目的在于借机训练Linux管理员。还有什么比给Linux管理员一款坏的发行版去排解问题来得更管用的吗?面对Apache、MySQL、PHP、FTP和SSH等比较旧或破的版本,接受训练的管理员够有得忙了。 Damn Vulnerable Linux堪称旨在训练管理员的实验室。 - 下载Damn Vulnerable Linux(DVL)ISO映像文件:DVL_1.5_Infectious_Disease.iso
![Damn Vulnerable Linux][4]
2.5. 红帽企业级Linux
这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。就全球市场而言,总利润中80%来自支持,另外20%来自培训和认证,不过在印度不是这样。 在印度,红帽的利润中80%来自认证和培训,只有20%来自支持。而Fedora是个平台,而不是开发新产品或新应用程序的测试环境;一旦成为稳定版,就与红帽企业级Linux捆绑在一起,包括支持。红帽提供了非常多的稳定版应用程序,但是众所周知的缺点是,把太多旧程序包打包起来,支持成本确实相当高。不过,如果安全是关注的首要问题,那么红帽企业级Linux的确是款完美的发行版,它使用YUM程序包管理器。 红帽企业级Linux是系统管理员的第一选择,它有众多的程序包,还有非常到位的支持。 由于该发行版是商业化产品,所以不是免费的。不过,你可以下载用于教学用途的测试版。 - 红帽企业级LinuxRedHat Enterprise Linux
补充说明:通常认为,开发了该发行版的Marc Ewin将该产品命名为红帽,因为他丢失了似乎很心爱的那顶红色帽子,帽子是他爷爷在他过生日时送的礼物。
![红帽企业级Linux][5]
2.6. CentOS
CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。 非常稳定的程序包;谁要是想在桌面端测试一下服务器的运作原理,都应该试试这款操作系统。 - 下载CentOS DVD ISO映像文件:
![CentOS Linux][6]
2.7. Fedora
小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。Fedora同样使用YUM来管理软件包。 - 下载Fedora 18(Spherical Cow):
![Fedora Linux][7]
2.8. Kali Linux
Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。它大概在三个月前才发行。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。 毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。 - 下载Kali Linux DVD ISO映像文件:Kali Linux
![Kali Linux][8]
2.9. Arch Linux
Arch是一款采用滚动发行方式的操作系统:只要安装一次就够了;每当发行了某个新版本,就可以升级发行版,不需要重新安装。Pacman是Arch Linux的软件包管理器。Arch Linux既支持X86处理器架构,又支持X86_64架构,安装程序可以从光盘或U盘来运行。Arch旨在从开发者的角度而不是从用户的角度做到力求简单。Arch配置和安装起来超容易。它真是一款面向高手的发行版,让你可以了解Linux系统的每一个细枝末节。 - 下载Arch Linux ISO映像文件:
![Arch Linux][9]
2.10. OpenSuse
OpenSuse这款Linux发行版是免费的,并不供商业用途使用,仍然供个人使用。OpenSuse的真正竞争对手是红帽企业级Linux。它使用Yast来管理软件包。有了Yast,使用和管理服务器应用程序就非常容易。此外,Yast安装向导程序可以配置电子邮件服务器、LDAP服务器、文件服务器或Web服务器,没有任何不必要的麻烦。它随带snapper快照管理工具,因而可以恢复或使用旧版的文件、更新和配置。由于让滚动发行版本成为可能的Tumbleweed,可将已安装的操作系统更新到最新版本,不需要任何的新发行版。 SUSE在管理员当中的名气更大,因为它有Yast以及让系统管理员能够自动管理任务的其他此类应用程序,同样水准的其他发行版没有这项功能。 - 下载OpenSuse DVD ISO映像文件:
2.11. elementary OS
快速、开源的 Windows / macOS 替代方案 - elementary OS
3. Linux 安装
4. Linux 目录结构
/boot
启动 内核驱动等/dev
硬件/etc
配置/home
用户数据/root
root用户数据/lib
库/mnt
挂载/opt
大型软件安装目录/proc
内存实时信息/sbin
root用户执行命令/bin
用户执行命令/tmp
临时目录/usr
应用软件安装目录/var
log等经常变化的信息5. Linux 字体安装
首先获得一套“微软雅黑”字体库(Google一下一大把),包含两个文件msyh.ttf(普通)、msyhbd.ttf(加粗);
- 在/usr/share/fonts目录下建立一个子目录,例如win,命令如下:
mkdir /usr/share/fonts/win
- 将msyh.ttf和msyhbd.ttf复制到该目录下,例如这两个文件放在/root/Desktop下,使用命令:
cd /root/Desktop cp msyh.ttf msyhbd.ttf /usr/share/fonts/win/
- 建立字体索引信息,更新字体缓存:
至此,字体已经安装完毕!cd /usr/share/fonts/win mkfontscale mkfontdir fc-cache
6. Linux 软件安装
6.1. 配置
/etc/apt/sources.list
- 通过root权限修改/etc/apt/sources.list
$ su #输入密码进入root权限 $ chmod 0666 /etc/apt/sources.list #取消只读属性 $ gedit /etc/apt/sources.list #修改内容 $ chmod 0644 /etc/apt/sources.list #恢复只读属性 $ apt-get update #保存更新 $ sudo apt-get dist-upgrade #发布版升级 $ dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P #将系统中所有安装过,现在已经删除,但保留有配置文件的包,再把这些配置文件通通都删掉。
6.2. source.list文件格式说明
类型
deb_二进制软件
deb-src_软件的源代码
- url 开源镜像站
- 安全情报保持您 Debian 系统的安全性非常重要
#安全情报 deb http://security.debian.org/ jessie/updates main contrib non-free
- Debian 全球镜像站
#Debian 全球镜像站_中国大陆 deb http://ftp.cn.debian.org/debian/ jessie main deb-src http://ftp.cn.debian.org/debian/ jessie main
- 网易开源镜像站
#网易开源镜像站 deb http://mirrors.163.com/debian/ jessie main non-free contrib deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib deb-src http://mirrors.163.com/debian/ jessie main non-free contrib deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
- 阿里云开源镜像
#阿里云开源镜像 deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
url里边包含/dists/(发行版)
6.3. debian版本号
lsb_release -a
命令可以查看内容
- 安全情报保持您 Debian 系统的安全性非常重要
- main Debian 里最基本及主要且符合自由软件规范的软件 ( packages )。
- contrib 这里头软件虽然可以在 Debian 里头运作,即使本身属于自由软件但多半却是相依于非自由 ( non-free ) 软件。
- non-free 不属于自由软件范畴的软件。
- non-us 这个分类里头的软件都来自非美国地区,当中可能有牵扯到专利、加密..等等问题。
- marillat 对应 Christian Marillat 的软件仓库,包括mplayer, transcode等。
- rareware 对应 rarewares.org 的软件仓库, 包括很多音效程序,如lame, musepack, beep media player等。
- ustc 对应 debian@ustc 维护的一些软件包,如 mule-gbk, gaim-openq, scim, stardictdicts, patched xpdf, irssi, xmms。
- Java 对应 Blackdown java。包括 j2re, j2sdk ,mozilla java plugin。
- firefly 对应打过firefly补丁的包,包括 fontconfig mozilla mozilla firefoxpango1.0 qt-x11-free xft
- misc 对应其它无分类的包,包括 nvidia-kernel,winex3, rox, chmsee等
6.4. 终端命令
- sudo
apt-get
- apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。
- apt-get命令一般需要root权限执行,所以一般跟着sudo命令。
apt-get install packagename
安装一个新软件包apt-get remove packagename
卸载一个已安装的软件包(保留配置文档)apt-get remove --purge packagename
卸载一个已安装的软件包(删除配置文档)apt-get autoremove packagename
删除包及其依赖的软件包apt-get autoremove --purge packagname
删除包及其依赖的软件包+配置文件,比上面的要删除的彻底一点apt-get autoclean
apt会把已装或已卸的软件都备份在硬盘上,所以假如需要空间的话,能够让这个命令来删除您已卸载掉的软件的备份。apt-get clean
这个命令会把安装的软件的备份也删除,但是这样不会影响软件的使用。apt-get upgrade
可以使用这条命令更新软件包,apt-get upgrade不仅可以从相同版本号的发布版中更新软件包,也可以从新版本号的发布版中更新软件包,尽管实现后一种更新的推荐命令为apt-get dist-upgrade
在运行
apt-get upgrade
命令时加上-u选项很有用(即:apt-get -u upgrade
)。这个选项让APT显示完整的可更新软件包列表。不加这个选项,你就只能盲目地更新。APT会下载每个软件包的最新更新版本,然后以合理的次序安装它们。注意在运行该命令前应先运行apt-get update
更新数据库,更新任何已安装的软件包。apt-get dist-upgrade
将系统升级到新版本。
- apt-cache
apt-cache search string
在软件包列表中搜索字符串。dpkg -l package-name-pattern
列出任何和模式相匹配的软件包。假如您不知道软件包的全名,您能够使用“package-name-pattern
”。apt-cache showpkg pkgs
显示软件包信息。apt-cache dumpavail
打印可用软件包列表。apt-cache show pkgs
显示软件包记录,类似于dpkg –print-avail
apt-cache pkgnames
打印软件包列表中任何软件包的名称。apt-file search filename
查找包含特定文档的软件包(不一定是已安装的),这些文档的文档名中含有指定的字符串。apt-file是个单独的软件包。您必须先使用apt-get install来安装他,然后运行apt-file update
。假如apt-file search filename
输出的内容太多,您能够尝试使用apt-file search filename | grep -w filename
(只显示指定字符串作为完整的单词出现在其中的那些文档名)或类似方法,例如:apt-file search filename | grep /bin/
(只显示位于诸如/bin或/usr/bin这些文件夹中的文档,假如您要查找的是某个特定的执行文档的话,这样做是有帮助的)。apt-get autoclean
定期运行这个命令来清除那些已卸载的软件包的.deb文档。通过这种方式,您能够释放大量的磁盘空间。假如您的需求十分迫切,能够使用apt-get clean以释放更多空间。这个命令会将已安装软件包裹的.deb文档一并删除。大多数情况下您不会再用到这些.debs文档,因此假如您为磁盘空间不足而感到焦头烂额,这个办法也许值得一试。
sudo apt-get install
- dpkg
dpkg -i *.deb
本地安装dpkg --force-all --purge packagename
有些软件很难卸载,而且还阻止了别的软件的应用,就能够用这个,但是有点冒险。dpkg -S file
这个文档属于哪个已安装软件包。dpkg -L package
列出软件包中的任何文档。dpkg -l
列出所有已安装的软件包。
aptitude 周详查看已安装或可用的软件包。和apt-get类似,aptitude能够通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。
由于aptitude比apt-get了解更多信息,能够说他更适合用来进行安装和卸载。
7. 子进程
已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2
子进程 已安装 pre-removal 脚本 返回了错误号 1或2 解决办法:
sudo gedit /var/lib/dpkg/status
找到Package:
,比如Package: vsftpd 删除这部分的描述,删到下个Package: XXX前就好。存档后,再进行操作就OK了。
子进程 已安装 post-installation 脚本 返回了错误号 1或2 解决办法:
sudo rm /var/lib/dpkg/info/
.* 比如sudo rm /var/lib/dpkg/info/vsftpd.*,存档后,再进行操作就OK了。
8. Linux清除已删除软件包的配置文件
今天清理一下系统,使用了一个命令行,可能对其他人有参考价值
dpkg -l |grep "^rc"|awk '{print $2}' |xargs aptitude -y purge
用途:
删除已经删除的软件包的残留配置文件。因为 debian 中 remove 包不删除配置文件,purge 才能清除,但根据依赖关系自动清除都是 remove,在加上自己失手操作,所以用得时间长了,难免残留很多没必要的配置文件,比较烦,于是有了上述操作。
9. 说明:
- dpkg -l
列出系统中安装的所有包的状态,
ii' 开头的是正常安装的包,
rc'开头的则是删除但仍留下配置文件的包,其他状态则是有错误的状态,自己执行一次就明白了,输出结果的开头有说明的。 - grep "^rc" 提取以 rc 开头的包,也就是被删除但仍残留配置文件的包的信息的行。
- awk '{print $2}' 打印这些包的名字,他们位于 dpkg -l 输出结果的第二个字段,估计有很多人是通过这个命令认识到 awk 的,也有很多人只在这个命令行中才使用 awk,我就是其中之一。
- xargs aptitude -y purge 把上述输出,也就是要清除配置文件的包的名字放在 aptitude -y purge 后面,purge命令会清除配置文件,而 -y 参数会自动对后面 aptitude 命令的提示回答是,这个开关通常是危险的,所以在一般情况下不要轻易使用,而在这里,如果你确定这些包的配置文件的清除是没有问题的的话,可以使用这个开关。
10. Linux 环境变量设置
环境变量分各个用户和系统全局 命令行切换用户时要带上 - 即
$ su - root
10.1. 系统级:
- /etc/profile:
该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件。
参考# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). ########################################################################### if [ "`id -u`" -eq 0 ]; then #Debian root用户(用户ID 0)获得path和其他用户不同。这是因为系统二进制(sbin目录)的位置是保留用于系统管理,必须以root身份运行。其他用户永远不应该运行的。 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" fi ########################################################################### export PATH if [ "$PS1" ]; then if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1='\h:\w\$ ' if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if [ -r $i ]; then . $i fi done unset i fi ########################################################################### #set java JAVA_HOME=/usr/local/jdk;export JAVA_HOME JRE_HOME=/usr/local/jdk/jre;export JRE_HOME PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH export CLASSPATH=$CLASSPATH:$PATH:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:.
- /etc/bash.bashrc: 系统级的bashrc文件。
- /etc/environment: 在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。 *要注销一下才能生效
10.2. 用户级(这些文件处于用户目录下):
- ~/.profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。这里是推荐放置个人设置的地方
- ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。不推荐放到这儿,因为每开一个shell,这个文件会读取一次,效率肯定有影响。
- ~/.bash_profile or ~./bash_login: 这里没有引用作者的,下面会提到
- ~/.pam_environment: 用户级的环境变量设置文件,没有做测试,不知道管不管用。
11. Linux 常用命令
data
查看操作系统时间
data =%Y/%m/%d
hwclock
查看硬件时间
echo
查看输入内容
echo "写入文本" >> text
cat
显示文本内容
head -n
显示文本头几行
tail -n
显示文本尾几行
tail -f
追踪文件更新
more
翻页显示文本
less
翻页显示文本
lspci
查看PCI设备
lspci -v
详细显示
lsusb
查看USB设备
lsmod
查看加载的模块(驱动)
shutdown
关机
shutdown -h
关机
shutdown -r
重启
shutdown -h now
现在关机
shutdown -h +10
十分钟后关机
shutdown -h 23:30
23点三十分关机
locate
快速查找文件
updatedb
更新locate数据库
find
实时查找
find . -name *tmp*
查找当前目录文件名通配tmp的文件
find / -name *tmp*
查找根目录
find / -perm 777
按权限查找
find / -type d
按类型查找
find . name "a*" - exec ls -l{}\;
find . -user
用户
find . -group
组
find . -ctime
修改时间
find . -size
大小
11.1. 系统
uname -a
查看内核/操作系统/CPU信息
head -n 1 /etc/issue
查看操作系统版本
cat /proc/cpuinfo
查看CPU信息
hostname
查看计算机名
lspci -tv
列出所有PCI设备
lsusb -tv
列出所有USB设备
lsmod
列出加载的内核模块
env
查看环境变量
11.2. 资源
free -m
查看内存使用量和交换区使用量
df -h
查看各分区使用情况
du -sh <目录名>
查看指定目录的大小
grep MemTotal /proc/meminfo
查看内存总量
grep MemFree /proc/meminfo
查看空闲内存量
uptime
查看系统运行时间、用户数、负载
cat /proc/loadavg
查看系统负载
11.3. 磁盘和分区
mount | column -t
查看挂接的分区状态
fdisk -l
查看所有分区
swapon -s
查看所有交换分区
hdparm -i /dev/hda
查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE
查看启动时IDE设备检测状况
11.4. 网络
ifconfig
查看所有网络接口的属性
iptables -L
查看防火墙设置
route -n
查看路由表
netstat -lntp
查看所有监听端口
netstat -antp
查看所有已经建立的连接
netstat -s
查看网络统计信息
11.5. 进程
ps -ef
查看所有进程
top
实时显示进程状态
11.6. 用户
w
查看活动用户
id <用户名>
查看指定用户信息
last
查看用户登录日志
cut -d: -f1 /etc/passwd
查看系统所有用户
cut -d: -f1 /etc/group
查看系统所有组\
crontab -l
查看当前用户的计划任务
11.7. 服务
chkconfig --list
列出所有系统服务
chkconfig --list | grep on
列出所有启动的系统服务
11.8. RPM
rpm -qa
查看所有安装的软件包
在Linux 操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是 Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。下面就 给大家介绍一下它的具体使用方法。
- 我们得到一个新软件,在安装之前,一般都要先查看一下这个软件包里有什么内容,假设这个文件是:Linux-1.4-6.i368.rpm,我们可以用这条命令查看:
rpm -qpi Linux-1.4-6.i368.rpm
系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。 - 上面列出的所有文件在安装时不一定全部安装,就像Windows下程序的安装方式分为典型、完全、自定义一样,Linux也会让你选择安装方式,此时我们可以用下面这条命令查看软件包将会在系统里安装哪些部分,以方便我们的选择:
rpm -qpl Linux-1.4-6.i368.rpm
- 选择安装方式后,开始安装。我们可以用rpm-ivh Linux-1.4-6.i368.rpm命令安装此软件。在安装过程中,若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命 令,可以在 -ivh后加一参数“-replacepkgs”:
rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm
- 有时我们卸载某个安装过的软件,只需执行
rpm-e <文件名>
命令即可。 - 对低版本软件进行升级是提高其功能的好办法,这样可以省去我们卸载后再安装新软件的麻烦,要升级某个软件,只须执行如下命令:
rpm -uvh <文件名>
,注意:此时的文件名必须是要升级软件的升级补丁 - 另外一个安装软件的方法可谓是Linux的独到之处,同时也是RMP强大功能的一个表现:通过FTP站点直接在线安装软件。当找到含有你所需软件的站点并 与此网站连接后,执行下面的命令即可实现在线安装,譬如在线安装Linux-1.4-6.i368.rpm,可以用命令:
rpm -i ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm
- 在我们使用电脑过程中,难免会有误操作,若我们误删了几个文件而影响了系统的性能时,怎样查找到底少了哪些文件呢?RPM软件包提供了一个查找损坏文件的 功能,执行此命令:
rpm -Va
即可,Linux将为你列出所有损坏的文件。你可以通过Linux的安装光盘进行修复。 - Linux系统中文件繁多,在使用过程中,难免会碰到我们不认识的文件,在Windows下我们可以用“开始/查找”菜单快速判断某个文件属于哪个文件夹,在Linux中,下面这条命令行可以帮助我们快速判定某个文件属于哪个软件包:
rpm -qf <文件名>
- 当每个软件包安装在Linux系统后,安装文件都会到RPM数据库中“报到”,所以,我们要查询某个已安装软件的属性时,只需到此数据库中查找即可。注意:此时的查询命令不同于1和8介绍的查询,这种方法只适用于已安装过的软件包!命令格式:
rpm -参数 <文件名>
11.9. APT-GETDebian
apt-get update
——在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。
apt-get install packagename
安装一个新软件包(参见下文的aptitude)
apt-get remove packagename
卸载一个已安装的软件包(保留配置文件)
apt-get --purge remove packagename
卸载一个已安装的软件包(删除配置文件)
dpkg --force-all --purge packagename
有些软件很难卸载,而且还阻止了别的软件的应用,就可以用这个,不过有点冒险。
apt-get autoclean
apt会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件
apt-get clean
这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。
apt-get upgrade
更新所有已安装的软件包
apt-get dist-upgrade
将系统升级到新版本
apt-cache search string
在软件包列表中搜索字符串
dpkg -l package-name-pattern
列出所有与模式相匹配的软件包。如果您不知道软件包的全名,您可以使用“package-name-pattern”。
aptitude
详细查看已安装或可用的软件包。与apt-get类似,aptitude可以通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。由于aptitude比apt-get了解更多信息,可以说它更适合用来进行安装和卸载。
apt-cache showpkg pkgs
显示软件包信息。
apt-cache dumpavail
打印可用软件包列表。
apt-cache show pkgs
显示软件包记录,类似于dpkg –print-avail。
apt-cache pkgnames
打印软件包列表中所有软件包的名称。
dpkg -S file
这个文件属于哪个已安装软件包。
dpkg -L package
列出软件包中的所有文件。
apt-file search filename
查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字符串。apt-file是一个独立的软件包。您必须 先使用apt-get install来安装它,然后运行apt-file update。如果apt-file search filename输出的内容太多,您可以尝试使用apt-file search filename | grep -w filename(只显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的话,这样做是有帮助的)。
11.10. 每天一个linux命令
开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天一个linux命令。学习的主要参考资料为: 1.《鸟哥的linux私房菜》 2.http://codingstandards.iteye.com/blog/786653 3.linux命令五分钟系列 4.其他互联网资料,google,baidu等搜索引擎
- 一. 文件目录操作命令:
- 每天一个linux命令(1):ls命令
- 每天一个linux命令(2):cd命令
- 每天一个linux命令(3):pwd命令
- 每天一个linux命令(4):mkdir命令
- 每天一个linux命令(5):rm 命令
- 每天一个linux命令(6):rmdir 命令
- 每天一个linux命令(7):mv命令
- 每天一个linux命令(8):cp 命令
- 每天一个linux命令(9):touch 命令
- 每天一个linux命令(10):cat 命令
- 每天一个linux命令(11):nl命令
- 每天一个linux命令(12):more命令
- 每天一个linux命令(13):less 命令
- 每天一个linux命令(14):head 命令
- 每天一个linux命令(15):tail 命令
- 二. 文件查找命令
- 三. 文件和目录属性
- 四. 文件打包上传和下载
- 五. linux文件权限设置
- 六.磁盘存储相关
- 七.性能监控和优化命令:
- 八. 网络命令:
- 九.其他命令:
- 每天一个linux命令(35):ln 命令
- 每天一个linux命令(36):diff 命令
- 每天一个linux命令(37):date命令
- 每天一个linux命令(38):cal 命令
- 每天一个linux命令(39):grep 命令
- 每天一个linux命令(40):wc命令
- 每天一个linux命令(41):ps命令
- 每天一个linux命令(48):watch命令
- 每天一个linux命令(49):at命令
- 每天一个linux命令(50):crontab命令
- 每天一个linux命令(51):lsof命令
- 每天一个linux命令(52):ifconfig命令
- 每天一个linux命令(53):route命令
- 每天一个linux命令(54):ping命令
- 每天一个linux命令(55):traceroute命令
- 每天一个linux命令(56):netstat命令
- 每天一个linux命令(57):ss命令
- 每天一个linux命令(58):telnet命令
- 每天一个linux命令(59):rcp命令
- 每天一个linux命令(60):scp命令
- 每天一个linux命令(61):wget命令
12. Linux 文件操作
mkdir
新建文件夹touch
新建文本文件ls
查看文件目录ls -a
查看全部文件ls -l
查看文件详细信息cp
复制文件cp -r
递归复制整个文件夹cp -v
显示详细复制信息mv
移动文件,有重命名作用 参数同cprm
删除文件rm -i
交互式删除,有提示rm -r
删除文件夹rm -f
强制删除rmdir
删除空文件夹 rm-rf执行以后,怎么办?
13. Linux 压缩解压
- 压缩
zip
- 归档
tar
- 解压
tar –xvf file.tar
//解压 tar包tar -xzvf file.tar.gz
//解压tar.gztar -xjvf file.tar.bz2
//解压 tar.bz2tar –xZvf file.tar.Z
//解压tar.Zunrar e file.rar
//解压rarunzip file.zip
//解压zip 1、.tar 用 tar –xvf 解压 2、.gz 用 gzip -d或者gunzip 解压 3、.tar.gz和.tgz 用 tar –xzf 解压 4、.bz2 用 bzip2 -d或者用bunzip2 解压 5、.tar.bz2用tar –xjf 解压 6、.Z 用 uncompress 解压 7、.tar.Z 用tar –xZf 解压 8、.rar 用 unrar e解压 9、.zip 用 unzip 解压
XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。 之前xz使用一直很少,所以几乎没有什么提起。 我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。 最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些东西就使用xz压缩。不过xz也有一个坏处就是压缩时间比较长,比7z压缩时间还长一些。不过压缩是一次性的,所以可以忽略。 xz压缩文件方法或命令 xz -z 要压缩的文件 如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加入参数 -0 到 -9调节压缩率。如果不设置,默认压缩等级是6. xz解压文件方法或命令 xz -d 要解压的文件 同样使用 -k 参数来保留被解压缩的文件。 创建或解压tar.xz文件的方法 习惯了 tar czvf 或 tar xzvf 的人可能碰到 tar.xz也会想用单一命令搞定解压或压缩。其实不行 tar里面没有征对xz格式的参数比如 z是针对 gzip,j是针对 bzip2。 创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz 解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。
14. 常用窗口快捷键
14.1. 多窗口间切换
- Shift+Ctrl+Up: 在屏幕上(全屏)显示所有工作区中的所有打开窗口的缩略视图
- Shift+Ctrl+Down: 在屏幕上(全屏)显示当前工作区中所有打开窗口的缩略视图
- Alt+Tab: 在打开的窗口间循环,仅限当前工作区
窗口显示
- Alt+Up: 最大化窗口
- Alt+Down: 最小化窗口
- Alt+F5: 取消最大化窗口
- Alt+F4: 关闭窗口
- super+D: 显示桌面
- Alt+Space: 显示窗口菜单
- Alt+F10: 切换最大化状态
窗口定位
- Alt+F8:改变窗口大小
- Alt+F7: 移动窗口
跨工作区
- Shift+Ctrl+Alt+Left: 移动窗口到左边工作区
- Shift+Ctrl+Alt+Right: 移动窗口到右边工作区
跨屏幕
- Shift+Super+Left: 移动窗口到左边屏幕
- Shift+Super+Right: 移动窗口到右边屏幕
14.2. 工作区
- Ctrl+Left: 切换到左侧工作区
- Ctrl+Right: 切换到右侧工作区
14.3. 系统
- Ctrl+Alt+End: 关机
- Ctrl+Alt+Delete: 锁定屏幕
14.4. 启动器
- Ctrl+Alt+T: 启动终端
- Super+E:打开主目录
14.5. 自定义快捷键
- Alt+G: 打开Gnome Do