开关机命令
1、shutdown –h now
: 立刻进行关机
2、shutdown –r now
: 现在重新启动计算
3、reboot
: 现在重新启动计算机
4、su -
: 切换用户;passwd:修改用户密码
5、logout
: 用户注销
常用快捷命令
1、tab
= 补全
2、ctrl + l -
:清屏,类似clear命令
3、ctrl + r -
:查找历史命令(history);ctrl+c = 终止
4、ctrl+k
= 删除此处至末尾所有内容
5、ctrl+u
= 删除此处至开始所有内容
日常操作命令
1、ls
ls命令:列出目录内容
。运行它就是列出文件夹的内容,可能是文件也可能是文件夹。
ls -l
:以详情模式列出文件夹的内容。
ls -a
:会列出文件夹里的所有内容,包括以"."开头的隐藏文件。
注意:在Linux中,文件以“.”开头就是隐藏文件,并且每个文件,文件夹,设备或者命令都是以文件对待。
2、lsblk
lsblk就是列出块设备。除了RAM外,以标准的树状输出格式,整齐地显示块设备。
lsblk -l
:以列表格式显示块设备(而不是树状格式)。
注意:lsblk是最有用和最简单的方式来了解新插入的USB设备的名字,特别是当你在终端上处理磁盘/块设备时。
3、uname
"uname"命令就是Unix Name的简写。显示机器名,操作系统和内核的详细信息。
注意:uname显示内核类别,uname -a显示详细信息。
4、history
“history”命令就是历史记录。它显示了在终端中所执行过的所有命令的历史。
5、sudo
“sudo”(super userdo)命令允许授权用户执行超级用户或者其它用户的命令。
注意:sudo允许用户借用超级用户的权限,然而"su"命令实际上是允许用户以超级用户登录。所以sudo比su更安全。并不建议使用sudo或者su来处理日常用途,因为它可能导致严重的错误如果你意外的做错了事。
6、chmod
“chmod”命令就是改变文件的模式位。chmod会根据要求的模式来改变每个所给的文件,文件夹,脚本等等的文件模式(权限)。
7、chown
“chown”命令就是改变文件拥有者和所在用户组。每个文件都属于一个用户组和一个用户。在你的目录下,使用"ls -l",你就会看到像这样的东西。
8、apt
Debian系列以“apt”命令为基础,“apt”代表了Advanced Package Tool。APT是一个为Debian系列系统(Ubuntu,Kubuntu等等)开发的高级包管理器,在Gnu/Linux系统上,它会为包自动地,智能地搜索,安装,升级以及解决依赖。例如:apt-get install mplayer
9、cal
“cal”(Calender),它用来显示当前月份或者未来或者过去任何年份中的月份。
10、date
“date”命令使用标准的输出打印当前的日期和时间,也可以深入设置。
查看文件内容
cat file1
从第一个字节开始正向查看文件的内容
tac file1
从最后一行开始反向查看一个文件的内容
more file1
查看一个长文件的内容
less file1
类似于 ‘more’ 命令,但是允许在文件中和正向操作一样的反向操作
head -2 file1
查看一个文件的前两行
tail -2 file1
查看一个文件的最后两行
tail -f /var/log/messages
实时查看被添加到一个文件中的内容
系统常用操作命令
1、指定运行级别
命令:init[0123456]
运行级别:(0:关机;1:单用户;2:多用户状态没有网络服务;3:多用户状态有网络服务;4:系统未使用保留给用户;5:图形界面;6:系统重启)。
常用运行级别是3和5,要修改默认的运行级别可修改文件/etc/inittab的id:5:inittab:这一行的数字。
在启动引导界面的时候按e进入编辑,在进入grub引界面时,请输入e再选中第二个选项按e,再最后输入1[单用户级别],然后按b进入单用户模式。
*
:可通过此方法进行linux用户密码的修改。
2、文件显示命令
more
:显示文件内容,带分页;
less
:显示文件内容带分页;
grep
:在文件中查询内容,grep –n “查找内容” 文件名
;
|
[管道命令]:在linux和unix系统中 | 就是管道命令,把上一个命令的结果交给 | 的后面的命令进行处理。
例:grep –n “查找内容” 文件名 | more
cat
:把文件串连接后输出到屏幕或加 > fileName 到另一个档案。
head
:格式:head [-n|c num]filename
说明:显示文件头部。没有参数时,显示最前10行。
tail
:格式:tail [-n|c num]fileName,说明:显示文件尾部。没有参数时,显示最后10行。
cut
:格式:cut -cnum1-num2 filename,说明:显示每行从开头算第 num1 到 num2 的字符。
3、文件搜索命令find
find
:搜索文件及目录
在linux中,因为文件系统是以级别式的结构来组成的,所以要在整个系统中找到特定的文件和目录并不是件容易的事。而find命令可以解决上述问题。
1、在特定的目录下搜索并显示指定名称的文件和目录。
find / -name man
:意思是说从根目录开始搜索名称为man的文件或目录。
2、搜索一段时间内被存取/变更的文件或目录
find / home–amin -10
:十分钟内存取的文件或目录
find / home–atime -10
:十小时内存取的文件或目录
find / home–cmin -10
:十分钟内更改过的文件或目录
find / home–ctime -10
:十小时内更改过的文件或目录
3、搜索指定大小的文件
find / home–size +10k
:意思是说查找/home目录下大小为10K的文件。
4、重定向命令
重定向命令:管道定向命令“>”为覆盖,“>>”追加写在原文件内容后面。
ls –l >a.txt
列表的内容写入文件a.txt中(覆盖写)。
ls –al>> aa.txt
列表的内容追加到文件aa.txt的末尾。
其他命令
who
:格式:who - [husfV] [user]
。
显示有哪些用户登录到系统中,显示的信息包含用户ID,使用的终端,上线时间,呆滞时间,CPU使用量,动作等等。相关命令 : who am i:显示当前用户是谁。
sleep
:格式:sleep [--help] [--version] number[smhd]
。说明 : sleep 可以用来将当前动作延迟一段时间。
kill
:格式:kill [ -s signal ] pid ... 或 kill -l [ signal ]
。
kill送出一个特定的信号 (signal) 给进程号为 pid 的进程。根据该信号而做特定的动作,若没有指定,默认是送出终止(TERM)信号。
ps
:格式:ps [options] [--help]
。 显示进程的名称、占用资源、状态等。
top
:显示CPU的使用率、内存大小、内存使用率、进程状态等。
文件和目录
cd /home
进入 ‘/ home’ 目录’
cd …
返回上一级目录
cd …/…
返回上两级目录
cd
进入个人的主目录
cd ~user1
进入个人的主目录
cd -
返回上次所在的目录
pwd
显示工作路径
ls
查看目录中的文件
ls -F
查看目录中的文件
ls -l
显示文件和目录的详细资料
ls -a
显示隐藏文件
ls [0-9]
显示包含数字的文件名和目录名
tree
显示文件和目录由根目录开始的树形结构(1)
lstree
显示文件和目录由根目录开始的树形结构(2)
mkdir dir1
创建一个叫做 ‘dir1’ 的目录’
mkdir dir1 dir2
同时创建两个目录
mkdir -p /tmp/dir1/dir2
创建一个目录树
rm -f file1
删除一个叫做 ‘file1’ 的文件’
rmdir dir1
删除一个叫做 ‘dir1’ 的目录’
rm -rf dir1
删除一个叫做 ‘dir1’ 的目录并同时删除其内容
rm -rf dir1 dir2
同时删除两个目录及它们的内容
mv dir1 new_dir
重命名/移动 一个目录
cp file1 file2
复制一个文件
cp dir/* .
复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1
. 复制一个目录到当前工作目录
cp -a dir1 dir2
复制一个目录
ln -s file1 lnk1
创建一个指向文件或目录的软链接
文件搜索
find / -name file1
从 ‘/’ 开始进入根文件系统搜索文件和目录
find / -user user1
搜索属于用户 ‘user1’ 的文件和目录
find /home/user1 -name *.bin
在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件
find /usr/bin -type f -atime +100
搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10
搜索在10天内被创建或者修改过的文件
whereis halt
显示一个二进制文件、源码或man的位置
which halt
显示一个二进制文件或可执行文件的完整路径
VIM常用命令
<命令模式>:
用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
i
切换到输入模式,以输入字符。
x
删除当前光标所在处的字符。
:
切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
<编辑模式>:
:qx
开始记录宏,并将结果存入寄存器x
q
退出记录模式
@x
播放记录在x寄存器中的宏命令
标签命令:
:tabe fn
在一个新的标签页中编辑文件fn
gt
切换到下一个标签页
gT
切换到上一个标签页
:tabr
切换到第一个标签页
:tabl
切换到最后一个标签页
:tabm [N]
把当前tab移动到第N个tab之后
窗口命令:
ctrl+w s
水平分割窗口
ctrl+w w
切换窗口
ctrl+w q
退出当前窗口(由于同时有多个文件,此命令不会影响其他窗口)
ctrl+w v
垂直分割窗口
其他:
vim在保存之前不会对文件做实际的修改,只是加载到缓冲区中,对文件的编辑其实是对缓冲区的编辑,直到:w时才会存入物理文件。
:e file
把file加载到新的缓冲区中
:bn
跳转到下一个缓冲区
:bd
删除缓冲区(关闭文件)
:sp fn
分割窗口,并将fn加载到新的窗口中
退出编辑器:
:w
将缓冲区写入文件,即保存修改
:wq
保存修改并退出
: x
保存修改并退出
:q
退出,如果对缓冲区进行过修改,则会提示
:q!
强制退出,放弃修改
查找替换
/pattern
向后搜索字符串pattern
?pattern
向前搜索字符串pattern
n
下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N
上一个匹配(同上)
复制粘贴
dd
删除光标所在行
dw
删除一个字(word)
x
删除当前字符
X
删除前一个字符
D
删除到行末
yy
复制一行,此命令前可跟数字,标识复制多行,表示从当前行开始复制多行
yw
复制一个字
y$
复制到行末
p
粘贴粘贴板的内容到当前行的下面
P
粘贴粘贴板的内容到当前行的上面
]p
有缩进的粘贴,vim会自动调节代码的缩进
移动光标
在vim中移动光标跟其他的编辑器中有很大的区别,不过一旦学会了,就会飞速的在文本中移动了。
h,j,k,l
上,下,左,右
ctrl-f
上翻一页
ctrl-b
下翻一页
%
跳到与当前括号匹配的括号处,如当前在{,则跳转到与之匹配的}处
w
跳到下一个字首,按标点或单词分割
W
跳到下一个字首,长跳,如end-of-line被认为是一个字
e
跳到下一个字尾
E
跳到下一个字尾,长跳
b
跳到上一个字
B
跳到上一个字,长跳
0
跳至行首,不管有无缩进,就是跳到第0个字符
^
跳至行首的第一个字符
$
跳至行尾
gg
跳至文件的第一行
gd
跳至当前光标所在的变量的声明处
[N]G
跳到第N行,如0G,就等价于gg,100G就是第100行
fx
在当前行中找x字符,找到了就跳转至
;
重复上一个f命令,而不用重复的输入fx
tx
与fx类似,但是只是跳转到x的前一个字符处
Fx
跟fx的方向相反
),(
跳转到上/下一个语句
系统信息
arch
显示机器的处理器架构(1)
uname -m
显示机器的处理器架构(2)
uname -r
显示正在使用的内核版本
dmidecode -q
显示硬件系统部件 - (SMBIOS / DMI)
cat /proc/cpuinfo
显示CPU info的信息
cat /proc/interrupts
显示中断
cat /proc/meminfo
校验内存使用
cat /proc/swaps
显示哪些swap被使用
cat /proc/version
显示内核的版本
cat /proc/net/dev
显示网络适配器及统计
cat /proc/mounts
显示已加载的文件系统
lspci -tv
罗列 PCI 设备
lsusb -tv
显示 USB 设备
date
显示系统日期
cal 2007
显示2007年的日历表
date 041217002007.00
设置日期和时间 - 月日时分年.秒
clock -w
将时间修改保存到 BIOS
关机 (系统的关机、重启以及登出 )
shutdown -h now
关闭系统(1)
init 0
关闭系统(2)
telinit 0
关闭系统(3)
shutdown -h hours:minutes &
按预定时间关闭系统
shutdown -c
取消按预定时间关闭系统
shutdown -r now
重启(1)
reboot
重启(2)
logout
注销
磁盘空间
df -h
显示已经挂载的分区列表
ls -lSr |more
以尺寸大小排列文件和目录
du -sh dir1
估算目录 ‘dir1’ 已经使用的磁盘空间’
du -sk * | sort -rn
以容量大小为依据依次显示文件和目录的大小
用户和群组
groupadd group_name
创建一个新用户组
groupdel group_name
删除一个用户组
groupmod -n new_group_name old_group_name
重命名一个用户组
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1
创建一个属于 “admin” 用户组的用户
useradd user1
创建一个新用户
userdel -r user1
删除一个用户 ( ‘-r’ 排除主目录)
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1
修改用户属性
passwd
修改口令
passwd user1
修改一个用户的口令 (只允许root执行)
chage -E 2005-12-31 user1
设置用户口令的失效期限
pwck
检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户
grpck
检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组
newgrp group_name
登陆进一个新的群组以改变新创建文件的预设群组
文件的权限 - (使用 “+” 设置权限,使用 “-” 用于取消)
ls -lh
显示权限
ls /tmp | pr -T5 -W$COLUMNS
将终端划分成5栏显示
chmod ugo+rwx directory1
设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1
删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1
改变一个文件的所有人属性
chown -R user1 directory1
改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1
改变文件的群组
chown user1:group1 file1
改变一个文件的所有人和群组属性
find / -perm -u+s
罗列一个系统中所有使用了SUID控制的文件
打包和压缩文件
bunzip2 file1.bz2
解压一个叫做 'file1.bz2’的文件
bzip2 file1
压缩一个叫做 ‘file1’ 的文件
gunzip file1.gz
解压一个叫做 'file1.gz’的文件
gzip file1
压缩一个叫做 'file1’的文件
gzip -9 file1
最大程度压缩
rar a file1.rar test_file
创建一个叫做 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1
同时压缩 ‘file1’, ‘file2’ 以及目录‘dir1’
rar x file1.rar
解压rar包
unrar x file1.rar
解压rar包
tar -cvf archive.tar file1
创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1
创建一个包含了 ‘file1’, ‘file2’ 以及’dir1’的档案文件
tar -tf archive.tar
显示一个包中的内容
tar -xvf archive.tar
释放一个包
tar -xvf archive.tar -C
/tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1
创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2
解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1
创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz
解压一个gzip格式的压缩包
zip file1.zip file1
创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1
将几个文件和目录同时压缩成zip格式的压缩包
unzip file1.zip
解压一个zip格式压缩包
RPM 包 - (Fedora, Redhat及类似系统)
rpm -ivh package.rpm
安装一个rpm包
rpm -ivh --nodeeps package.rpm
安装一个rpm包而忽略依赖关系警告
rpm -U package.rpm
更新一个rpm包但不改变其配置文件
rpm -F package.rpm
更新一个确定已经安装的rpm包
rpm -e package_name.rpm
删除一个rpm包
rpm -qa
显示系统中所有已经安装的rpm包
rpm -qa | grep httpd
显示所有名称中包含 “httpd” 字样的rpm包
rpm -qi package_name
获取一个已安装包的特殊信息
rpm -qg “System Environment/Daemons”
显示一个组件的rpm包
rpm -ql package_name
显示一个已经安装的rpm包提供的文件列表
rpm -qc package_name
显示一个已经安装的rpm包提供的配置文件列表
rpm -q package_name --whatrequires
显示与一个rpm包存在依赖关系的列表
rpm -q package_name --whatprovides
显示一个rpm包所占的体积
rpm -q package_name --scripts
显示在安装/删除期间所执行的脚本l
rpm -q package_name --changelog
显示一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf
确认所给的文件由哪个rpm包所提供
rpm -qp package.rpm -l
显示由一个尚未安装的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY
导入公钥数字证书
rpm --checksig package.rpm
确认一个rpm包的完整性
rpm -qa gpg-pubkey
确认已安装的所有rpm包的完整性
rpm -V package_name
检查文件尺寸、类型、所有者、群组、MD5检查及最后修改时间
rpm -Va
检查系统中所有已安装的rpm包- 小心使用
rpm -Vp package.rpm
确认一个rpm包还未安装
rpm2cpio package.rpm | cpio --extract --make-directories bin
从一个rpm包运行可执行文件
rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm
从一个rpm源码安装一个构建好的包
rpmbuild --rebuild package_name.src.rpm
从一个rpm源码构建一个 rpm 包
YUM 软件包升级器 - (Fedora, RedHat及类似系统)
yum install package_name
下载并安装一个rpm包
yum localinstall package_name.rpm
将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm
更新当前系统中所有安装的rpm包
yum update package_name
更新一个rpm包
yum remove package_name
删除一个rpm包
yum list
列出当前系统中安装的所有包
yum search package_name
在rpm仓库中搜寻软件包
yum clean packages
清理rpm缓存删除下载的包
yum clean headers
删除所有头文件
yum clean all
删除所有缓存的包和头文件
APT 软件工具 (Debian, Ubuntu 以及类似系统)
apt-get install package_name
安装/更新一个 deb 包
apt-cdrom install package_name
从光盘安装/更新一个 deb 包
apt-get update
升级列表中的软件包
apt-get upgrade
升级所有已安装的软件
apt-get remove package_name
从系统删除一个deb包
apt-get check
确认依赖的软件仓库正确
apt-get clean
从下载的软件包中清理缓存
apt-cache search searched-package
返回包含所要搜索字符串的软件包名称
网络 - (以太网和WIFI无线)
ifconfig
查看本机ip
ifconfig eth0
显示一个以太网卡的配置
ifup eth0
启用一个 ‘eth0’ 网络设备
ifdown eth0
禁用一个 ‘eth0’ 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0
控制IP地址
ifconfig eth0 promisc
设置 ‘eth0’ 成混杂模式以嗅探数据包 (sniffing)
挂载一个文件系统:
mount /dev/hda2 /mnt/hda2
挂载一个叫做hda2的盘 - 确定目录 ‘/ mnt/hda2’ 已经存在
umount /dev/hda2
卸载一个叫做hda2的盘 - 先从挂载点 ‘/ mnt/hda2’ 退出
fuser -km /mnt/hda2
当设备繁忙时强制卸载
mount /dev/fd0 /mnt/floppy
挂载一个软盘
mount /dev/cdrom /mnt/cdrom
挂载一个cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder
挂载一个cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder
挂载一个cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom
挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5
挂载一个Windows FAT32文件系统
mount /dev/sda1 /mnt/usbdisk
挂载一个usb 捷盘或闪存设备
光盘
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force
清空一个可复写的光盘内容
mkisofs /dev/cdrom > cd.iso
在磁盘上创建一个光盘的iso镜像文件
mkisofs /dev/cdrom | gzip > cd_iso.gz
在磁盘上创建一个压缩了的光盘iso镜像文件
mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd
创建一个目录的iso镜像文件
cdrecord -v dev=/dev/cdrom cd.iso
刻录一个ISO镜像文件
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -
刻录一个压缩了的ISO镜像文件
mount -o loop cd.iso /mnt/iso
挂载一个ISO镜像文件
cd-paranoia -B
从一个CD光盘转录音轨到 wav 文件中
cd-paranoia – “-3”
从一个CD光盘转录音轨到 wav 文件中(参数-3)
cdrecord --scanbus
扫描总线以识别scsi通道
dd if=/dev/hdc | md5sum
校验一个设备的md5sum编码,例如一张 CD