linux(debian/ubuntu)常用命令(1)

apt-get

apt-get是所有基于debian的linux系统(如ubuntu)中包管理软件,yum是基于redhat的linux系统(redhat 与centos)的包管理工具。我们先来说说apt-get:

说起apt-get就不能不提起dpkg,dpkg是最原生的linux系统工具,其常用命名如下:

  • dpkg -i(--install) 安装一个Debian包裹文件,包裹文件是以.deb格式的
  • dpkg -r(--remove) 移除一个已安装的包裹,清除可执行文件和数据
  • dpkg -P(--purge) 完全清除一个已安装的包裹,它可以删除配置文件,清除的更加彻底
  • dpkg -s(--status) 显示一个已安装包的完全信息
  • dpkg -L(--listfiles) 显示这个包的安装的所有文件

基本上通过dpkg和apt-get安装的包的信息均可以通过dpkg -s(--status)来获取,如果使用apt-get 安装比较慢时,使用现成的本地包用dpkg来安装是个不错的选择。apt-get显然是一款强大的软件,它 允许我们在线去安装软件,而不必像dpkg那样事先去下载软件包,这是因为apt-get有一个包含众多软件 (.deb)的远程仓库,我们先来看看apt-get怎么用:

  • sudo apt-get install package 安装包
  • sudo apt-get remove package 删除包
  • sudo apt-get remove package --purge 删除包,包括删除配置文件
  • sudo apt-get update 更新源
  • sudo apt-get dist-upgrade 升级系统
  • sudo apt-get build-dep package 安装相关的编译环境
  • apt-get source package 下载该包的源代码
  • apt-cache search package 搜索包
  • apt-cache show package 获取包的相关信息,如说明、大小、版本等
  • apt-cache depends package 了解使用依赖
  • apt-cache rdepends package 是查看该包被哪些包依赖
  • sudo apt-get clean && sudo apt-get autoclean 清理无用的包,例如我们可以将/var/cache/apt/archives 中的.deb包清除

上面我们把一些常用的命令,上面需要注意的是apt-cache search package与yum list package有本质 区别,前者是搜索相关的包,而后者是按名称匹配包。

我们再来看一看apt-get的源怎样修改,如果你嫌官方的源很慢,可以改成你认为快一点的源,指定源的 文件就是:

/etc/apt/sources.list

sudo sed -i 's/us.archive.ubuntu.com/mirrors.sohu.com/g' /etc/apt/sources.list

我们可以用第二条命令,将官方的源修改成sohu的源库,速度改观不少。安装软件的可执行文件一般会 出现在/usr/bin目录下,详细信息可以通过dpkg来查看。在redhat中,很显然yum与rpm的配合和debian 很像,我会在后续的博文中详细地阐述两个系统中命令的差异。

chmod 与 chown

我们在linux中经常要修改系统文件或者文件夹的权限或者所有者,在实际操作过程中我们经常被root与 非root用户之间的切换所烦恼,在c语言中有这两个函数接口。先从chmod开始:

chmod [-cfvR] [--help] [--version] mode file

  • -c 当权限发生改变时报告处理信息
  • -v 运行时显示详细处理信息
  • -R 处理指定目录及子目录下的所有文件
  • -f 不报告错误信息

指定mode是这个命令的关键,有两种指定方式:

  • [u|g|o|a] [=|+|-] [r|w|x|s] 这种表述很好理解,其中a代表所有用户,s代表特殊权限
  • -rwxrwxrwx 三组权限分别对应于owner,group,others,用数字来表示上述权限就是:-421421421, 我们在指定权限的过程中只需将各位上的数字相加即可,如sudo chmod 777 filename就是给一个文件指 定最高的访问权限。我们在修改文件权限的时候,最好遵照最少权限的原则,这样才是最安全的做法。

这一部分中有更高级的umask,suid等用法,后续更新。再来看看chown:

chown [option]... [owner][:group] filename

命令中选项与上面chmod差不多,但是增加了对符号链接的特殊处理,在使用linux过程中符号链接确实 是一个比较讨厌的东西,时时需要考虑到它。

  • -deference 作用于符号链接的指向,而不是链接文件本身

这个命令使用起来比较简单和方便,只是需要注意指定组的时候需要在前面加上:,指定owner与group与否 都是可选的。

df与du

df与du是linux系统管理中最常用的命令,用它来查看系统的磁盘使用情况

  • df -h 查看各个文件系统中已分配空间的大小,它是通过磁盘总容量-未分配空间计算出来的。
  • du -h 查看文件夹或文件占用磁盘空间大小

在df命令中加上i就能知道文件系统中i节点的使用情况,du命名后面必须加上目录或者文件名,默认显示 大小的单位是kb,也可以用-m改成MB。最这两个命名,一般情况下不会去用太高级的功能。

netstat

我们经常用netstat -ntlp来查看系统中的网络端口信息,但是对这个命令的详细使用情况未必清楚,它 能让你知道linux的所有网络使用情况,这里我们来梳理一下常用的:

  • -n 显示已建立的所有连接,直接用ip来显示,而不通过域名服务器
  • -r 查看路由表的信息
  • -a 显示所有有效连接,包括udp
  • -e 以太网的数据流量统计
  • -s 按照协议来统计包流量
  • -t 显示tcp传输协议的连接状况
  • -l 显示监控中的服务器socket
  • -p 显示使用该连接的程序的pid和名称

ps

ps这个命令我们都不陌生,它是显示系统中所有进程信息的命令,ps显示瞬间时刻的程序运行状态,它 并不动态地显示程序,动态地显示程序状态需要用top,直接看怎么使用吧:

  • -e 显示所有进程和环境变量
  • -f 全格式显示
  • -l 长格式显示
  • -r 当前进程信息
  • -x 显示没有控制终端的进程

我们平时用的比较多的还是ps -ef 与ps aux这两种组合方式,前者是全格式显示,后者是长格式显示 用哪一个全凭习惯,ps命令和其他命令组合起来也非常地方便如:ps -ef | grep *,或者是kill。

sed

当我们去调试某个软件的时候,我们经常得去修改配置文件,如果手动修改,有时候会很繁琐,例如上述 apt-get源的修改,我们可以借助sed来轻松地修改配置文件。用法如下:

  • sed -i 's/被替换的内容/替换的内容/g' filename

我们只列出了这一条命令,是因为这条命令确实很强大和使用,在‘被替换的内容’前加上^表示行首,里 面完全可以使用unix正则表达式的规则,碰到正则表达式的保留字符需要加上\来转换之。

后记

上面的命令我并没有列出详细的使用说明,只是它们实在是太重要了,不得不单独列出来。



Previous     Next
zhing /
Published under (CC) BY-NC-SA in categories linux  tagged with linux