Linux 系统常用命令汇总-文件和目录操作
文件和目录 |
|
命令 |
选项 |
注解 |
示例 |
文件的基本操作 |
ls |
[选项][文件] |
显示所有文件和目录 |
ls -al |
-a(A) |
显示所有文件和目录,包括隐藏文件和目录(显示所有文件和目录,包括隐藏文件和目录,但不现实“.”和“..”目录) |
查看当前目录下的所有文件的详细信息=ll |
-l |
显示文件和目录的完整属性信息 |
-d |
|
|
cd |
+路径 |
改变当前路径 |
cd /etc 转到etc目录下 |
pwd |
|
显示当前路径 |
pwd 显示当前路径 |
mkdir |
+目录名称 |
创建目录 |
mkdir abc 创建abc目录 |
-p |
父目录不存在时同时创建父目录 |
rmdir |
+目录名称 |
删除目录,只能删除空目录 |
rmdir abc 删除abc目录 |
cp |
[选项] 源 目标 |
复制文件 |
cp -r test /usr/ 将当前目录下的test目录中的所有内容包括子目录均复制到usr目录下 |
-r |
循环进行目录复制 |
-f |
|
mv |
源 目标 |
|
mv test /usr/ 将当前目录下的test目录移动到usr目录下 |
rm |
[选项] 文件名 |
删除 |
rm -rf test 强制删除当前目录下的test目录及其所有文件与子目录 |
-r |
循环删除,常用于目录删除,表示删除目录及目录下的所有文件 |
-f |
强制删除不提示 |
查看文件内容 |
cat |
[选项] 文件名 |
查看文件内容 |
cat -nb /etc/inittab 将etc目录下的inittab文件的内容显示出来,显示行号但不显示空行 |
-n |
连行号一起显示 |
-b |
连行号一起显示,但不显示空行 |
more |
+文件名 |
同cat,若文件内容超过40行,会分屏显示,按enter单行下移或者按ctrl+f翻页,按q退出浏览 |
用法同cat |
head(tail) |
[选项] 文件名 |
显示文件前(后)十行 |
head -5 /test |
-n |
指定显示多少行 |
显示当前目录下的test文件的前5行 |
cut |
选项 [文件] |
选择文件中每一行的一部分显示出来 |
cut –d “:” –f 2 c.txt |
-d |
用(…)进行分割 |
以:分割c.txt每一行,显示c.txt文档中每一行的第二列 |
-f |
显示第几列 |
|
链接文件 |
ln |
[选项] 源 目标 |
设置链接文件,参数为空时默认创建硬链接 |
ln (-d) ct.sh dlink |
-s |
创建符号链接 |
当前目录下建立一个dlink的硬链接,指向ct.sh |
-d |
创建硬链接 |
搜索文件和目录 |
find |
[路径] [选项] 文件名 |
可以指定目录及所有子目录进行搜索,因为查找硬盘,速度较慢 |
find . –name “*.txt” –atime 1 |
-name file |
寻找文件名为name file文件,可用通配符* |
查找在当前目录下一个小时内访问的.txt文件 |
locate |
+文件名 |
从已建立的数据库中查找,速度特别快,但是数据库内容需实时更新,可用updatedb命令手动更新数据库 |
用法同find |
which |
+文件名 |
查找可执行文件的位置,通过环境变量path下的路径查找 |
which ls |
whereis |
[选项] 文件名 |
根据设定好的目录进行查找,非path下的目录而是自定义目录 |
whereis ls |
-b |
只查找二进制文件 |
|
-m |
只找说明文件 |
|
grep |
选项 pattern(包含的字符串) 文件名 |
表示在文本文件中找包含指定内容的行 |
grep –n 456 b.txt |
-n |
显示行号 |
显示b.txt中含有456的行 同时显示行号 |
-i |
字符串不区分大小写 |
grep –v 456 b.txt |
-v |
反查,表示在文本文件中找不包含指定内容的行 |
显示b.txt中不包含456的行 |
文件与目录权限 |
chown |
[选项] user:group 目录或文件名称 |
变更文件或目录的所有者和所属群 |
chown -R lucy:root lamp |
-R |
连同目录下的所有文件都变更 |
将当前目录下的lamp目录及其所有文件与子目录文件的所有者改为lucy,所属群改为root |
chmod |
[选项] [参数] 目录或文件名称 |
变更文件或目录的读写执行权限 |
1.chmod 760 ct.sh 把当前目录下的ct.sh文件的权限改为rwxrw—- |
-R |
连同目录下的所有文件都变更 |
2.chmod ug=rwx,o=r ct.sh 把当前目录下的ct.sh 文件的权限改为rwxrwxr– |
3.chmod g-r,o+w ct.sh 把当前目录下的ct.sh文件的所属组的读权限去掉,给其他人增加写权限 |
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2016-03/129403p2.htm
文本编辑 |
vi |
命令 |
作用 |
+文件名 |
编辑文本文件,若文件不存在同时创建该文件 |
Ctrl+f |
向后翻一页 |
Ctrl+b |
向前翻一页 |
Ctrl+d |
向后翻半页 |
Ctrl+u |
向前翻半页 |
+ |
光标移动到下一行 |
– |
光标移动到上一行 |
数字+空格 |
光标向右移动n个字符 |
0 |
移动到本行首个字符处 |
$ |
移动到本行最后一个字符处 |
H |
光标移动到屏幕最上行 |
M |
光标移动到屏幕中间行 |
L |
光标移动到屏幕最下行 |
G |
光标移动到文件最后一行 |
nG |
光标移动到文件第n行 |
n+回车 |
光标向下移动n行 |
/word |
在光标后面查找名为word的字符串 |
?word |
在光标前面查找名为word的字符串 |
:n1,n2s/word1/word2/g |
在第n1行到n2行间查找word1,并替换为word2 |
:1,$s/word1/word2/g |
在第1行到最后行间查找word1,并替换为word2 |
:1,$s/word1/word2/gc |
在第1行到最后行间查找word1,并替换为word2,但替换前需要用户确定 |
x(X) |
x删除光标所在位置的一个字符,X向前删除一个字符 |
nx |
从光标所在位向后删除n个字符 |
dd |
删除光标所在的整行 |
ndd |
删除光标向下的n行 |
d1G |
删除光标所在行到第一行的所有行 |
dG |
删除光标所在行到最后一行的所有行 |
yy |
复制光标所在行 |
nyy |
复制光标所在行往下n行 |
y1G |
复制光标所在行到第一行的所有行 |
yG |
复制光标所在行到最后一行的所有行 |
p(P) |
p黏贴复制的内容到光标所在行,P为黏贴到光标所在的上一行 |
u |
恢复上一次操作 |
:w |
存盘 |
:w! |
强制存盘 |
:q |
退出 |
:q! |
强制退出 |
:wq |
保存退出 |
:w 文件名 |
保存为另一个文件 |
:r 文件名 |
读入一个文件,把读入的文件内容添加到光标所在行 |
:set nu |
显示行号 |
:set nonu |
不显示行号 |
:n1,n2w 文件名 |
从第n1行到n2行保存成另一文件 |
i |
插入 |
a |
添加 |
o |
新增行 |
r,R |
替换 |
ESC |
退出编辑模式 |
用户和用户组管理 |
命令 |
选项 |
注解 |
示例 |
useradd |
[选项] 用户名 |
新建用户 |
创建一个名为tester的用户,并指定他的UID为555,指定加入test群,指定其使用C-shell: useradd -u 555 -g test -s /bin/csh tester |
-u +UID |
设定新用户的UID,若不加系统自动分配 |
-G +GID或组名 |
指定用户加入某个群组,同时创建用户自己的组 |
-g +GID或组名 |
指定用户所在群组,并加入 |
-s |
指定用户登录时启用的shell,默认为/bin/bash |
userdel |
[选项] 用户名 |
删除已存在的账户 |
删除tester用户:userdel tester |
-r |
将该账号的家目录和邮件文件一并删除 |
usermod |
[选项] 用户名 |
修改用户信息,如UID GID shell等 |
更改tester用户的UID为560,群组为test1 : usermode tester -u 560 -g test1 |
-u +UID |
改变用户的UID |
-g +GID或组名 |
改变用户的GID |
groupadd |
[选项] 群组名 |
添加新的组群 |
添加一个test群组,指定GID为555: groupadd -g 555 test |
-g GID |
设定创建的群组的GID,若不加该参数系统会随机分配一个,GID>500 |
groupdel |
+群组名 |
删除已存在的群组,需先删除该群组的用户 |
删除test群组: groupdel test |
passwd |
[用户名] |
用于设定用户密码,不加用户名表示修改当前用户密码 |
|
su |
[-][用户名] |
切换账号,加‘-’表示切换到另一用户的环境,不加表示使用当前环境,返回原来用户用exit |
|
gpasswd |
[选项] 群组名 |
设定用户群关系 |
|
|
-a 用户名 |
表示把用户加入到该群 |
groups |
[用户名] |
显示用户所属的群组信息 |
|
id |
[用户名] |
显示用户的UID GID以及所拥有的群组 |
|
chown |
[选项] user:group 目录或文件名称 |
变更文件的所有者及所属群 |
|
-R |
连同目录下所有文件及子文件都变更 |
chmod |
[选项] [参数] 目录或文件名称 |
变更文件及目录的读写执行权限 |
|
-R |
连同目录下所有文件及子文件都变更 |
程序和资源管理 |
分类 |
命令 |
选项 |
注解 |
背景管理 |
& |
command+& |
将任务放到后台进行 |
ctrl+z |
|
暂停任务 |
fg |
[%number] |
讲后台程序推到前台来,number表示进程编号,不加参数表示将最近的进程推到前台 |
jobs |
|
查询所有后台任务 |
系统状态监控 |
ps |
|
显示当前系统中运行的进程,ps -aux=ps -ef,都表示显示系统当前的所有进程 |
-a(-e) |
所有进程 |
-u |
显示用户 |
-x |
列出所有tty进程 |
-f |
完整显示进程信息 |
w |
|
查看当前系统负载,显示的内容依次为:时间,系统运行时间,登陆用户数,平均负载 |
vmsat |
|
监控当前系统状态,显示内容依次为 procs,memory,swap,io,system,cpu |
procs (r,b) |
显示进程相关信息;r:运行和等待cpu时间片的进程数,若长期大于cpu个数,则表明cpu不够用了;b:表示等待资源的进程数,若长期大于1需注意 |
memory |
内存相关信息;swpd:切换到交换分区中的内存数量 free:当前空闲的内存数量 buff:换缓冲大小 cache:缓存大小 |
swap |
内存交换情况 si:有内存进入交换区的数量;so 由交换区进入内存的数量 |
io |
磁盘使用情况; bi 读磁盘 bo写磁盘 |
system |
显示采集间隔内发生的中断次数 |
cpu |
显示cpu的使用装态 |
top |
|
动态监控进程所占系统的资源,每3秒变一次 |
free |
[选项] |
查看内存使用情况 |
-b(-k,-m) |
用字节做单位(用kb,mb作单位) |
-t |
显示total总计 |
netstat |
[选项] |
显示网络状况 |
-lnp |
当前系统启用哪些端口 |
-an |
用于显示网络连接状况 |
ping |
[选项] 目标 |
测试目标与本机的连接状况 |
|
-c |
用户指定测试多少次,若不加,会无休止测试下去,可用crtl+c强行停止 |
kill |
[选项] PID或任务号 |
用于停止或杀死进程 |
-1 |
让该进程重新读取配置文件 |
-9 |
强制杀掉进程或任务 |
-15 |
停止进程 |
网络设置 |
ifconfig |
|
显示当前网卡的IP相关信息(子网掩码、网关等) |
设备名(如eth0) |
查看该设备的网卡信息 |
设备名(如eth0)+IP地址 |
给该网卡配置IP地址 |
设备名(如eth0)+down=ifdown |
禁用eth0 网卡 |
设备名(如eth0)+up=ifup |
启用eth0 |
服务脚本 |
service |
服务脚本名 脚本参数 |
如service network restart 重启网络服务 |
start/stop restart status |
|
chkconfig |
|
查看所有后台服务 |
磁盘管理 |
命令 |
选项 |
注解 |
示例 |
df |
[选项] |
显示磁盘空间使用情况 |
显示磁盘空间是员工情况,以M显示: df -m |
-i |
使用inodes显示结果 |
-k(m) |
使用KB(MB)显示结果 |
du |
[选项][目录名称] |
显示指定目录下所有文件及其子目录所占用的磁盘空间大小,不指定则统计当前目录下的 |
统计当前目录下的占用情况,但只统计总值,以M显示:du -sm |
fdisk |
[选项][设备名称] |
不带参数,表示对设备进行分区(格式化) |
显示sda设备的分区情况: fdisk -l /dev/sda |
-l |
显示设备分区情况 |
free |
|
查看内存情况(内存分类: 总量 已使用 剩余 共享 应用缓存 内核缓存 buffers swap(交换存储即Windows中的虚拟内存) |
free; |
mount |
[-t 类型] 设备名称 挂载点 |
用于挂载存储设备 |
用iso9660文件系统格式挂载光盘设备,挂载点是/mnt目录: mount -t iso9660 /dev/cdrom /mnt |
-a |
依照/etc/fstab的内容挂载所有相关设备 |
-h |
mount 帮助信息 |
-l |
列出当前挂载的所有设备及挂载点 |
-v |
列出mount版本 |
-t |
指定挂载的存储设备的文件系统 |
unmount |
+挂载点或设备名称 |
卸载已经挂载的设备 |
卸载挂载的光盘: umount /mnt |
文件打包与压缩 |
命令 |
选项 |
注解 |
示例 |
compress |
文件名 |
压缩指定的文件,压缩后的格式为*.z |
compress install.log |
-d |
解压被压缩的文件 .z为后缀的文件;compress -d=uncompress |
compress -d install.log |
zip |
压缩名 文件列表 |
用于一个或多个文件压缩为一个压缩包,后缀.zip |
install ins.zip install.log install.log.systemlog |
unzip 文件名 |
解压缩 .Zip文件 |
unzip ins.zip |
bzip2 |
[选项] 文件名 |
压缩工具,压缩后缀为.bz2 |
|
-d |
解压被压缩的文件,支持bz2,bz,tbz的文件 =bunzip2 |
bzip2 -d install.log.bz2=bunzip2 install.log.bz2 |
-z |
压缩指定文件 |
bzip2 -z install.log |
gzip |
[选项] 文件名 |
最常用的压缩工具,后缀名为.gz |
gzip install.log |
-d |
解压被压缩的文件(后缀为.gz) =gunzip |
gzip -d install.log.gz=gunzip install.log.gz |
-数字 |
指定压缩率(1→9),1最低但最快,默认为6 |
|
tar |
[选项] 打包名 需要打包的文件 |
一个打包工具,不同于压缩,只是把多个文件打包放在一起,便于归档管理,打包后文件大小不变 |
打包:tar -cvf ins.tar install.log install.log.syslog |
-c |
建一个包 |
-t |
查看包中文件 |
解包:tar -xvf ins.tar |
-v |
打包过程中显示被打包的文件 |
-f |
需要打包的内容为文件 |
打包同时压缩:tar -zcvf 文件名 |
-x |
解开一个包 |
-z |
同时启用gzip工具进行压缩或解压 |
解包同时解压缩:tar -zxvf 文件名 |
-exclude file |
打包过程中,不要将file文件打包 |
安全设置 |
分类 |
命令 |
选项 |
注解 |
安全策略
selinux
|
setenforce |
number(0,1) |
设置selinux状态,0关闭,1开启 |
getenforce |
|
显示当前selinux状态,enforcing表示启用,permissive表示关闭 |
防火墙 |
iptables |
三个表:filter,nat,mangle |
例如:iptables -A INPUT -p tcp –dport 22 -j ACCEPT |
-A(-I,-D) |
增加(插入,删除)一条规则 |
INPUT(OUTPUT,FORWARD) |
链名称 |
-s |
源地址 |
-p |
协议(tcp,udp,icmp) |
–sport/–dport |
后跟源端口/目标端口 |
-d |
后跟目的IP |
-j |
后跟触发该规则后的动作,DROP/REJECT/ACCEPT |
关机/重启 |
shutdown |
[选项] |
关机 |
-t |
指定多少秒后关机 |
-r |
指定时间关机后重启 |
-h |
指定时间关机 |
-c |
取消正在进行的shutdown |
halt |
[选项] |
挂起 |
-p |
关机 |
reboot |
|
重启=shutdown -r now |
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-03/129403.htm