非常有用的Linux系统操作命令

Posted 为何一再沦落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非常有用的Linux系统操作命令相关的知识,希望对你有一定的参考价值。


非常有用的Linux系统操作命令。

系统

# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源

# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区

# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络

# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程

# ps -ef # 查看所有进程
# top # 实时显示进程状态
用户

# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务

# chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务
程序

# rpm -qa # 查看所有安装的软件包




RPM

在Linux 操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,
但是功能又比“添加/删除程序”强很多,它就是 Red Hat Package Manager(简称RPM)。
此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。
由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。
下面就介绍一下它的具体使用方法。

1.我们得到一个新软件,在安装之前,一般都要先查看一下这个软件包里有什么内容,
假设这个文件是:
Linux-1.4-6.i368.rpm,

我们可以用这条命令查看:
rpm -qpi Linux-1.4-6.i368.rpm

系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。

2.上面列出的所有文件在安装时不一定全部安装,就像Windows下程序的安装方式分为典型、完全、自定义一样,
Linux也会让你选择安装方式,此时我们可以用下面这条命令查看软件包将会在系统里安装哪些部分,
以方便我们的选择:

rpm -qpl Linux-1.4-6.i368.rpm

3. 选择安装方式后,开始安装。我们可以用rpm-ivh Linux-1.4-6.i368.rpm命令安装此软件。
在安装过程中,若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命令,
可以在 -ivh后加一参数“-replacepkgs”:

rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm

4.有时我们卸载某个安装过的软件,只需执行rpm-e <文件名>;命令即可。

5.对低版本软件进行升级是提高其功能的好办法,这样可以省去我们卸载后再安装新软件的麻烦,要升级某个软件,
只须执行如下命令:rpm -uvh <文件名>;,注意:此时的文件名必须是要升级软件的升级补丁

6. 另外一个安装软件的方法可谓是Linux的独到之处,同时也是RMP强大功能的一个表现:通过FTP站点直接在线安装软件。
当找到含有你所需软件的站点并 与此网站连接后,执行下面的命令即可实现在线安装,
譬如在线安装Linux-1.4-6.i368.rpm,可以用命令:

rpm -i ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm

7. 在我们使用电脑过程中,难免会有误操作,若我们误删了几个文件而影响了系统的性能时,
怎样查找到底少了哪些文件呢?RPM软件包提供了一个查找损坏文件的 功能,
执行此命令:rpm -Va即可,Linux将为你列出所有损坏的文件。
你可以通过Linux的安装光盘进行修复。

8.Linux系统中文件繁多,在使用过程中,难免会碰到我们不认识的文件,
在Windows下我们可以用“开始/查找”菜单快速判断某个文件属于哪个文件夹,
在Linux中,下面这条命令行可以帮助我们快速判定某个文件属于哪个软件包:

rpm -qf <文件名>;

9.当每个软件包安装在Linux系统后,安装文件都会到RPM数据库中“报到”,所以,我们要查询某个已安装软件的属性时,
只需到此数据库中查找即可。注意:此时的查询命令不同于1和8介绍的查询,这种方法只适用于已安装过的软件包!
命令格式:
rpm -参数 <文件名>;

APT-GET

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

linux界两大主流:RPM和DPKG
Linux 开发商先在固定的硬件平台与操作系统平台上面将需要安装或升级的软件编译好, 然后将这个软件的所有相关文件打包成为一个特殊格式的文件,在这个软件文件内还包含了预先侦测系统与相依软件的脚本, 并提供记载该软件提供的所有文件资讯等。最终将这个软件文件释出。用户端取得这个文件后,只要透过特定的命令来安装, 那么该软件文件就会依照内部的脚本来侦测相依的前驱软件是否存在,若安装的环境符合需求,那就会开始安装, 安装完成后还会将该软件的资讯写入软件管理机制中,以达成未来可以进行升级、移除等动作。

目前在 Linux 界软件安装方式最常见的有两种,分别是:

DPKG:
这个机制最早是由 Debian Linux 社群所开发出来的,透过 dpkg 的机制, Debian 提供的软件就能够简单的安装起来,同时还能提供安装后的软件资讯,实在非常不错。 只要是衍生於 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等。
RPM:
这个机制最早是由 Red Hat 这家公司开发出来的,后来实在很好用,因此很多 distributions 就使用这个机制来作为软件安装的管理方式。包括 Fedora, CentOS, SuSE 等等知名的开发商都是用这。
目前新的 Linux 开发商都有提供『线上升级』机制,透过这个机制, 原版光盘就只有第一次安装时需要用到而已,其他时候只要有网络,你就能够取得原本开发商所提供的任何软件了呢! 在 dpkg 管理机制上就开发出 APT 的线上升级机制,RPM 则依开发商的不同,有 Red Hat 系统的 yum , SuSE 系统的 Yast Online Update (YOU)。

distribution 代表 软件管理机制 使用命令 线上升级机制(命令)
Red Hat/Fedora RPM rpm, rpmbuild YUM (yum)
Debian/Ubuntu DPKG dpkg APT (apt-get)
Linux换源
因为在线安装需要在服务器上下载需要软件和依赖关系文件,所以下载的速度很影响使用体验。一般来说,Linux默认的源安装和更新速度很慢,所以安装好系统一般会选择换源。

个人常用的源:

清华源:​​https://mirrors.tuna.tsinghua.edu.cn/​

163源:​​http://mirrors.163.com/​

举例在Ubuntu16.04和Centos7上如何换源

在Ubuntu上更换清华源:
Ubuntu 16.04的软件源配置文件是 /etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 TUNA 的软件源镜像。(其他版本sourcelist 参看 网页)
​​​https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/​​ 先备份在编辑

mv /etc/apt/sources.list /etc/apt/sources.list.bakup
sudo vim /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。使用update命令更新。

sudo apt-get update

在Centos上更换163源
Centos7的源文件是/etc/yum.repos.d/CentOS-Base.repo。同理先备份,然后再替换文件即可。

首先备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

再下载Centos,并且将其改成默认源文件。

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo

运行命令生成缓存

yum clean all
yum makecache

关于update和upgrade
在Ubuntu下

sudo apt-get update

这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。

sudo apt-get upgrade

这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果源里面有系统更新,直接给你把系统升级。有网友表示会导致原来软件无法使用。

在Centos下

yum makecache

等同于 sudo apt-get update

yum -y update

升级所有包,改变软件设置和系统设置,系统版本内核都升级。

yum -y upgrade

升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变。


linux 软连接的使用
软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。

具体用法是:ln -s 源文件 目标文件。

当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在其它的 目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。

例如:

ln -s /usr/local/mysql/bin/mysql /usr/bin
这样我们就对/usr/bin目录下的mysql命令创建了软连接

【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

使用方式

创建软链接

ln -s [源文件或目录] [目标文件或目录]

例:

当前路径创建test 引向/var/www/test 文件夹

ln –s /var/www/test test
创建/var/test 引向/var/www/test 文件夹

ln –s /var/www/test /var/test
删除软链接

和删除普通的文件是一样的,删除都是使用rm来进行操作

例:

删除test

rm –rf test
修改软链接

ln –snf [新的源文件或目录] [目标文件或目录]

这将会修改原有的链接地址为新的地址

例如:

创建一个软链接

ln –s /var/www/test /var/test
修改指向的新路径

ln –snf /var/www/test1 /var/test
常用参数:

-f : 链结时先将与 dist 同档名的档案删除
  -d : 允许系统管理者硬链结自己的目录
  -i : 在删除与 dist 同档名的档案时先进行询问
  -n : 在进行软连结时,将 dist 视为一般的档案
  -s : 进行软链结(symbolic link)
  -v : 在连结之前显示其档名
  -b : 将在链结时会被覆写或删除的档案进行备份
  -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
  -V METHOD : 指定备份的方式
  --help : 显示辅助说明
  --version : 显示版本


以上是关于非常有用的Linux系统操作命令的主要内容,如果未能解决你的问题,请参考以下文章

nmap命令总结

nmap使用求助

Linux系统中有用的Wget命令示例详解

Linux环境下实现对文件读写操作

n map探测目标操作系统需要添加啥参数

CMD是计算机操作系统吗?Linux有没有CMD命令