本文记录Linux/Unix系统中常用命令:
先列几个基本的:
ls : 列出当前文件夹下所有文件(不包括隐藏文件)
cd [文件夹] : 改变当前路径
pwd : 打印当前路径
rm [文件]: 删除文件
touch [文件]: 新建一个文件
mv [文件旧路径] [文件新路径]: 剪切文件到新路径(也可用于文件重命名)
cp [文件原路径] [复制的文件路径]:复制文件到其他路径
mkdir [文件夹]: 新建一个文件夹
rmdir [文件夹]: 删除一个文件夹
cat [文件] : 打印文件所有内容
less [文件] : 类似cat,但是一次只打印一页
more [文件] :进入浏览模式
ps : 查看当前进程, 常用 ps A 或者 ps aux 查看所有进程
kill 9 [进程ID] : 杀死某个进程
列下Linux下特殊符合:
. 当前文件夹
.. 父文件夹
~ 当前用户的home文件夹
* 可以代替任意个数字符(除了.)
? 可以代替一个字符(除.)
1 chmod 更改文件夹或者文件的权限
$ chmod [权限] [file]
一般一个文件可以对不同的3个 群组(所有者,某一指定群组,其他群组)定义不同权限, 用 ls l [文件]查看. 所有在 [权限]处是有3为数字组成
而对每个组都有三种操作类型,即读R,写W,运行X,分别对应 4,2,1
也就是说如果想要一个文件只读,则在权限中代入4, 只写是2,如果读写就是6,所以最大权限是7(读写运行都包括)
chmod 777 [file] 来开启一个文件的所有权限
2 apt 包管理器的使用
寻找可用的安装包
$ aptcache search [关键字] 在软件源下查找并输出具有关键字的所有软件包
查询pkgs包的依赖包
$ aptcache showpkg [pkgs] 打印某软件包所依赖的其他软件包
安装pkgs包
$ aptget install [pkgs] 安装指定的单个软件包
$ aptget builddep [pkgs] 自动安装指定及其所依赖的所有包 (当缺少软件包是很适合)
卸载包
$ aptget remove [pkgs]
$ aptget purger [pkgs] /*同时删除该pkgs的配置文件*/
更新
$ aptget upgrade 对电脑中已安装所有软件包升级(如果存在新版本)
$ a ptget update 更新并整理软件源下所提供的软件包
还有类似的 dpkg debian包管理工具
3. jobs 管理终端任务命令
$jobs : 打印该终端的所有任务
$fg [任务id] : 将该任务转为前台 (我们将失去对该终端控制权)
$% [ 任务id ]: 唤醒该任务
$bg [ 任务id ] : 将该任务转为后台 (我们仍然有对终端的控制权)
$[命令] & :在后台运行该命令(要有空格)
ctrlz :刮起当前任务, 可用 %唤醒
ctrlc :杀死当前任务
4.终端已执行命令的记录操作
$history 打印所有终端已执行的命令
$!! 重新再执行最后一条命令
$![编号] 重新再执行编号的那条命令
$![字符串] 重新再执行由字符串开头的最后一条命令
ctrl+R 用来查找已执行过的命令
ctrl+P 查看上条命令,相对于方向键上
5 netstat 查看进程占用端口命令
$ netstat tlnp
6 route 添加,删除路由 链条
$ sudo route add default gw 10.0.19.254 添加 默认路由
$ sudo route add net X.X.X.X netmask 255.255.255.0 gw X.X.X.X 添加一条 路由链条
$ sudo route del XXXX 删除 一条路由链条
7. diff 比较两个文件。
$ diff <file1> <file2>
或者 cmp
$ cmp [clsv] [i <字符数目>] [help] [第一个文件] [第二个文件]
8. finger 打印 用户信息
$ finger [user]
9. id 查看用户的UID和GID等信息
$ id [user]
10. Passwd 设置密码, Ubuntu安装后root是没有默认的密码的,
$sudo passwd root
11. NMap (Network Mapper)是Linux下的网络扫描和嗅探 工具包, 可以用来扫描主机上开启的所有端口
$nmap [IP]
IP可以是对方的,如果本机就用 localhost
12. telinit 改变linux的运行状态
$ telinit [系统运行等级]
等级可以是 0 1 2 3 4 5 6 等
0 : 关机
1 : 单用户(维修模式
2 à 5 : 视操作系统
2: 可以是多用户模式但无任何服务
3: 可以是多用户模式且开启服务
4, 5:可能启用图形界面
6 : 重启 telinit 等效于 reboot
13. shutdown 立即关机, reboot重启,
$ shutdown h now
$ reboot
14. tunctl /*创建一个虚拟网卡*/
$tunctl u root /*avoir une interface*/
$ifconfig tap0 10.0.XXX.1 netmask 255.255.255.0
15. chgrp 更改文件夹或者文件的所在群组 (属组)
$chgrp [群组] [文件/夹]
16. chown 更改文件夹或者文件的所有者(属主)
$chown [-Rv][用户] [文件/夹]
17. mount 挂载系统文件
mount [option] [类型] [要被挂载的目的dev文件][挂载的文件夹]
/etc/fstab: 系统启动时自动加载文件的配置
*挂载window的 fat 分区
mount t vfat [/dev/had1] [挂载文件夹]
* 用 ntfs-3g 来加载ntfs分区
mount t ntfs3g [ /dev/hda1] [挂载文件夹]
* 挂载 ISO 映象文件
mount [ISO映像文件][挂载文件夹] t iso9660 o loop
取消加载
umount
查看所有加载信息
mount
如果不知道系统文件,介绍个小窍门(以Usb为例): 文件肯定在/dev文件夹下,一般以sdb开头
所以可以先ls /dev/sdb* 列出所有可能文件,然后用fdisk l [文件名] 来查看文件属性,根据给出的信息很容易就能辨认那个自己想要的,然后用mount 加载
18. 几个硬盘管理命令
* df 查看分区存储情况 $df
* du 报告磁盘空间使用情况 $du [文件]
* dump ext2/3 系统文件的备份 $dump 0f [目的文件夹] [要备份的系统文件]
19. 系统管理内核模块
lsmod : 查看内核所有模块
modinfo [模块] : 查看某个模块信息
modprobe : 挂载新模块及新模块相依赖的模块
$modprobe l : 列出所有已加载或未加载的模块
$modprobe [模块] : 加载该模块, 能够自动处理 module 载入的相依问题
$modprobe r [卸载]:卸载模块
rmmod : 卸载模块
depmod 创建模块依赖关系的列表
insmod 挂载模块,但是不会处理相依的模块,建议用 modprobe
20. mknod 建立块专用或字符专用文件
mknod [options] name {bc} major minor
(option:-p:FIFO型 ; c:字符 ; b: 块 )
例子:
$mknod /dev/net/tun c 10 200
21. nslookup ( Name System Look Up) 用来跟你所在的DNS服务器交流,可以是查看某个域名的信息等
$nslookup [域名]
打印该域名对应的信息(IP,端口等)
22. gnomesessionsave 用来保存当前系统会话下正在运行的应用程序的快照,并在下次启动时加载恢复该会话
$ gnomesessionsave [logout] [forcelogout] [logoutdialog] [shutdowndialog] [gui] [kill [silent]]
23. WC 用来打印文件的大小(行数,字符,字节等模式)
$wc [Option] [文件]
c, bytes
打印字节数
m, chars
打印字符数
l, lines
打印行数
L, maxlinelength
打印最长行的长度
w, words
打印单词数
24. last 显示目前和过去登录系统的用户相关信息
$last
25. who 命令显示当前登录的所有用户信息。Who的缺省输出包括用户名、终端类型、登录日期及远程主机
$who
26. uname 查看linux的内核信息版本
$uname a
27. dmesg 显示开机信息 日志 (适用于系统出问题时)
文件为: /var/log/dmesg
var/log/messages可能保存着被dmesg忽略的系统信息
$dmesg
28. imswitch 为 X windows 设定输入方式
$imswitch s [ 输入法的引擎]
常见输入法的引擎有: ibus , Fcitx 或 scim
29. tar 用于归档、压缩等
$tar [options] 目标路径 [路径名pathname … ]
cvf 压缩文件或目录 $tar cvf [生成文件名] [被压缩的文件]
xvf 解压缩文件或目录 $tar xvf [目标文件]
zcvf 压缩文件或,格式tar.gz , tgz $tar zcvf [生成文件名] [被压缩的文件]
zxvf 解压缩文件或,格式tar.gz, tgz $tar zxvf [目标文件]
30. chkconfig 命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接 ,重启后生效
语法:
chkconfig list [name] 显示所有系统服务(包括未运行的)
chkconfig add name 添加一个服务
chkconfig del name 删除一个服务
chkconfig [level levels] name <on|off|reset> 更改一个服务 相对于系统运行等级的运行模式(开启,关闭等)
例如想关闭 任何系统运行等级下的Apache服务,可以用
$chkconfig level 123456 apache off
系统重启后生效,如果想立即关闭,请用
$sudo /etc/init.d/apache stop
31 . nohup 不挂断地运行命令不会从任何tty输出。
语法:nohup [命令] [ Arg … ] [ & ]
描 述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部。
32. whois 查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)
$whois [域名]
33. debugfs 用来恢复用rm 命令删除的文件
$debugfs [device]
34. find 命令搜索系统中的文件
$ find [要搜索的根目录] name [file]
35. traceroute 列出到某个IP所经过的所有路由器
$ traceroute [IP或域名]
36. 为系统添加额外的交换SWAP空间(通过创建交换空间文件)
$ dd if=/dev/zero of=/.swap bs=1024 count=100000
/*if: 输入的文件(保持不变) of: 需要创建的交换空间文件路径 bs: 每个block的大小(字 节),1024=1Ko count: block的数量,所以真实大小为 bsXcount 字节 ,此例为1G的交换空间文件*/
$ mkswap /.swap /*格式化文件*/
$ swapon /.swap /* 启用交换空间文件*/
$ more /proc/swaps /*查看交换空间是否已经成功启用*/
$swapoff /.swap /*停用交换空间*/
如果想以后重启后自动挂载,则编辑/etc/rc.local (不同系统稍微有点差异,记得最后要有exit 0,否则可能无法自动加载), 增加一行:swapon /.swap 即可。