主题 ==> [序号]
- 开关机 ==> [1-6]
- 启动X-Windows ==> [7]
- 日期/时间 ==> [8-10]
- 公告/清屏 ==> [11-12]
- 帮助 ==> [13-18]
- 系统设定 ==> [19-20]
- 网络命令 ==> [21-26]
- 系统信息查询 ==> [27-38]
- 查看历史命令 ==> [39]
- 账号管理 ==> [40-51]
- 目录与路径 ==> [52-60]
- 文件查看 ==> [61-69]
- 文件新建 ==> [70]
- 文件编辑 ==> [71]
- 文件复制/移动/删除 ==> [72-74]
- 链接文件 ==> [75]
- 挂载设备 ==> [76-77]
- 修改文件权限 ==> [78-81]
- 搜索文件or目录 ==> [82-85]
- 查找字符串 ==> [86-88]
- 显示 ==> [89]
- 用户切换 ==> [91-92]
- 进程管理 ==> [93-99]
- 硬盘管理 ==> [100-103]
- 打包 ==> [104]
- 压缩 ==> [105-113]
- 安装 ==> [114-118]
- 系统服务 ==> [119-120]
- 任务计划 ==> [121-129]
- Bash ==> [130-160]
- 计算器 ==> [161]
- 端口查看、关闭 ==> [162-164]
Linux常用操作命令合集
主题 | 命令 | 作用 | 参数 | 备注 | |
---|---|---|---|---|---|
1 | 开关机 | shutdown | 关机或重启 | -r 重启 -h 关机 -k 警告 -c 取消 |
shutdown -r now shutdown -h now shutdown -r +1 shutdown -r 11:30 |
2 | reboot | 重启 | reboot | ||
3 | init | 运行级别 | 0 关机 3 命令行模式 5 图形界面 6 重启 |
init 0 | |
4 | halt | 硬件关机 | halt | ||
5 | poweroff | 硬件关机 | -f 强行关机 | poweroff poweroff -f |
|
6 | sync | 将内存中数据回填到硬盘 | sync;sync | ||
7 | 启动X-Windows | startx | 进入X-Window | 进入X-Windows后可以用logout注销回到命令行 | |
8 | 日期/时间 | cal | 日历 | cal 2011 cal 03 2011 |
|
9 | date | 日期 | -s 修改日期 |
date +%Y/%m/%d 按指定格式显示日期 date -s 07/13/2011 date -s 11:55:00 clock --systohc 将时间保存到硬件 date 071610512011 月日时分年 hwclock -w 写入主板芯片 |
|
10 | time | 计算某个命令执行所耗费时间 | time sh myshell.sh 运行myshell.sh这个脚本所花的时间 | ||
11 | 公告 | wall | 广播 | wall hello | |
12 | 清屏 | clear | 清屏 | clear | |
13 | 帮助 | whatis | 命令介绍 | whatis ls | |
14 | apropos | 帮助一览 | |||
15 | help | 帮助 | help cd | ||
16 | --help | 帮助 | ls --help | ||
17 | man | 参考手册 | 可以像在vi里一样使用斜杠来查找字符串 | man ls | more | |
18 | info | 相关信息 | info ls | ||
19 | 系统设定 | setup | 系统设定工具 | 修改/etc/sysconfig的内容 | |
20 | locale | 显示语系 | -a 显示所有支持的语系 | locale -a cat /etc/sysconfig/i18n |
|
21 | 网络命令 | ifconfig | 查看IP 设置IP 启用网卡 禁用网卡 |
ifconfig ifconfig eth0 172.168.0.201 netmask 255.255.0.0 ifconfig eth0 up ifconfig eth0 down |
|
22 | ifup | 启用网卡 | ifup eth0 | ||
23 | ifdown | 禁用网卡 | ifdown eth0 | ||
24 | route | 路由 | |||
25 | netstat | 显示Tcp/IP网络状态 | -a 显示所有的socket -n 以IP地址显示 -p 显示进程号 |
netstat -na | |
26 | netconfig | 配置网络 | 修改的内容实际在 /etc/sysconfig/network-scripts 中 | ||
27 | 系统信息查询 | whoami | 查看自己是谁 | ||
28 | who am i | 查看自己账号及登录信息 | 通过su可以看到whoami和who am i的不同 | ||
29 | who | 查看当前系统在线用户 | who | ||
30 | w | 查看当前系统在线用户 | who | ||
31 | last | 查看这个月的用户登录信息 | last | ||
32 | hostname | 查看自己的主机名 | hostname | ||
33 | uname | 列出系统信息 | -a 查询所有 | uname -a | |
34 | dmesg | 查看开机启动信息 | dmesg | ||
35 | uptime | 查看开机时长 | uptime | ||
36 | id | 查看自己及所属的组的信息 | id | ||
37 | finger | 查看用户信息 | -s 完整列出 | finger -s username | |
38 | groups | 查看自己属于哪些组 | groups root | ||
39 | 查看历史命令 | history | 历史命令 | history | tail -10 可以用!n执行第n条历史,!!执行最后一条命令 |
|
40 | 账号管理 | newgrp | 登录另一个组 | 类似login动作 | |
41 | groupadd | 添加组(在/etc/group) | groupadd testing | ||
42 | groupdel | 删除组 | groupdel test | ||
43 | groupmod | 修改组 | groupmod -n test testing | ||
44 | gpasswd | 修改组的密码 | |||
45 | useradd | 添加用户 | -g | useradd zhangsan | |
46 | userdel | 删除用户 | -r 连用户主目录一起删除 | userdel -r zhangsan | |
47 | usermod | 编辑用户 | -g 修改所属组 -d 修改主目录 |
usermod -g test51 root usermod -d /home/lisi zhangsan |
|
48 | passwd | 修改用户的密码 | passwd zhangsan 备注:如果忘记root密码,可以在开机时按下e进入grub编辑模式,移到kernel所在行,在最后的rhgb quiet后输入 single。按回车确定后,按下b进入single模式。然后输入passwd修改密码。 |
||
49 | chsh | 修改用户的默认SHELL 查看SHELL |
-l -s |
chsh -l 查看shell chsh root 修改root的默认shell |
|
50 | chfn | 更改注释字段 | |||
51 | userconf | ||||
52 | 目录与路径 | cd | 进入到某个目录下 | ~ 进入指定用户的主目录 - 返回之前进入的目录 |
cd ~zhangsan cd ~ cd cd - |
53 | pwd | 显示当前目录的全路径 | pwd | ||
54 | ls | 列出当前目录下的文件和目录 | -l 详细信息 -m 以逗号分割 -a 显示隐藏文件 -r -t -R -x |
ls -lrt ls -la ls -R |
|
55 | ll | 列出当前目录下的文件和目录 | 等价于ls -l --color=tty (有颜色) | ||
56 | vdir | 列出当前目录下的文件和目录 | 等价于ls -l (无颜色) | ||
57 | mkdir | 新建目录 | -p | mkdir -p /dir1/dir2/dir3/dir4 | |
58 | rmdir | 删除空目录 | -p | rmdir dir1 | |
59 | basename | 获取文件名 | basename $0 | ||
60 | dirname | 获取目录名 | dirname $0 | ||
61 | 文件的查看 | cat | 显示文件内容 | -n 对输出行编号 -v 显示控制字符 -b 和-n类似,但空白行不编号 |
cat /etc/profile cat ~/.bash_profile cat -b file1 file2 file3 cat -v file1 DOS下的换行符会以^M显示 |
62 | tac | 逆向输出文件内容 | tac myfile | ||
63 | nl | 显示文件内容 | nl myfile | ||
64 | od | 以八进制显示文件内容 | od myfile | ||
65 | more | 分页显示内容 | more myfile | ||
66 | less | 分页显示内容(可以上下翻页) | less myfile | ||
67 | head | 显示文件前面几行的内容 | -n | head -n 10 /etc/passwd | |
68 | tail | 显示文件后面几行的内容 | -n | tail -n 20 /etc/passwd | |
69 | strings | 查看二进制文件中的可打印字符 | strings /bin/ls | ||
70 | touch | 新建文件 更新文件时间 |
touch myfile | ||
71 | 文件的编辑 | vi | 编辑文件内容 | 编辑模式:a/i/o 命令模式:冒号或者斜杠或者问号 一般模式:上下左右hjkl |
常用的:x dd ndd u n $ G L |
72 | 文件的复制、移动和删除 | cp | 拷贝 | -R 递归 | cp hello.txt /opt/test/hello.cp |
73 | mv | 移动 重命名 |
-f 连同子目录一起 -i |
mv hello.txt /opt/test/ok.txt | |
74 | rm | 删除 | -r -f 强制删除 -i |
rm -rf / 此命令慎用! | |
75 | 链接文件 | ln | 连接 | -s 建立符号链接 -d 建立硬链接(默认,可以不写) |
ln -s /root/myfile /s_myfile ln -d hello.txt dhello |
76 | 挂载设备 | mount | -t | 文件系统有vfat/iso9660,装优盘前先用fdisk -l查看 mount -t vfat /dev/sdb1 /mnt/udisk mount -a |
|
77 | umount | -f 强制将该文件系统退出 | umount -a umount /home |
||
78 | 修改文件权限 | chgrp | 切换组改变文件的所属组 | -R 递归 | chgrp mary /opt/test chgrp -R mary /opt/test |
79 | chown | 改变文件的所有者 | -R 递归 | chown -R mary /opt/test | |
80 | chmod | 修改权限 | -R 递归批量修改 | chmod u=rwx,og=rx .bashrc chmod a+w .bashrc chmod a-x .bashrc chmod -R 777 /home/test |
|
81 | chattr | 改变文件的特殊属性 | +i 属性不可更改 -i 属性可以更改 |
chattr +i myfile 文件删不掉 | |
82 | 搜索文件或目录 | which | 查看可执行文件的位置 | which ls | |
83 | whereis | 查看文件位置 | whereis ls | ||
84 | locate | 配合数据库查看文件位置 | locate ls 首次先要用updatedb初始化一下数据库 |
||
85 | find | 搜索硬盘上的文件 | -name -type -size -newer -user -group -amin -atime -cmin -ctime -perm |
find / -name man find /home -amin -10 十分钟内访问过的文件 find /home -atime -10 十天内访问过的文件 find /home -cmin -10 十分中内修改过的文件 find /home -ctime +10 十天内被改过、新增的文件 find /home -size +1000c 大于1000bytes的文件 find . -perm 777 权限是777的所有文件 find . -path "./test" -prune -o -name "hello" find . -user mary find . -group dev find . -newer hello.txt 比hello还要新的文件 find . ! -newer hello.txt find . -type d 找目录 find / -name vmware-tools查找根目录下名字为"vmware-tools"的目录 find . -perm 764 -exec rm {} ; find . -perm 764 -ok rm {} ; find . -perm 764 | xargs rm -f find . -name 'a' -prune 文件名包含a,目录名不包含a find . -size +1000c | xargs touch |
|
86 | 查找字符串 | grep | reGulaR ExPression | -i 忽略大小写 -n 显示行号 -v 取反 |
grep "^ma" /etc/passwd grep "bash$" /etc/passwd grep "^[r|d]" /etc/passwd |
87 | egrep | ||||
88 | fgrep | ||||
89 | 显示 | echo | 显示、打印 | -e 使转义符生效 | echo -e "hello\tworld" echo -e """" |
90 | 用户切换 | su | 切换用户 | - | |
91 | sudo | 以其他用户的身份执行命令 | 只有/etc/sudoers内的用户才有权限执行。用visudo编辑 | ||
92 | visudo | 用vi编辑/etc/sudoers文件 | 在文件中的 root ALL=(ALL) ALL下面加一行: zhangsan ALL=(ALL) ALL |
||
93 | 进程管理 | ps | 查看进程(静态) | -e 显示所有进程 -f 全格式 |
ps -ef |
94 | pgrep | 类似于ps -ef | grep | |||
95 | top | 查看进程(动态) | -d 指定刷新频率(秒) -n 输出n次后退出 u 显示指定用户进程 k 杀掉进程 |
第一行的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载(小于0.6较妥)。 第二行为进程情况,依次为进程总数、休眠进程数、运行进程数、僵尸进程数、终止进程数。 第三行为CPU状态,依次为用户占用、系统占用、优先进程占用、闲置进程占用。 第四行为内存状态,依次为平均可用内存、已用内存、空闲内存、共享内存、缓存使用内存。第五行为交换状态,依次为平均可用交换容量、已用容量、闲置容量、高速缓存容量。 top -d 1 |
|
96 | kill | 杀掉进程 | -9 强行杀掉进程 -2 中断进程 -15 停止进程(默认) |
kill -9 PID | |
97 | free | 查看内存使用情况 | free | ||
98 | nice | 调整程序的执行优先级 | nice -n -5 find / -name core > /tmp/core | ||
99 | renice | 通常和ps配合使用 | |||
100 | 硬盘管理 | df | 查看磁盘使用情况 查看目录在哪个分区下 |
-h 以易读方式显示 -l |
df df /boot/ df -h |
101 | du | 查看文件已有容量 | -k 以KB输出 -m 以MB输出 -s 只列出总量 |
du -m /home du -s du -sk hello.txt |
|
102 | fdisk | 分区 查看分区的具体情况 |
-l | ||
103 | mke2fs | ||||
104 | 打包 | tar | 打包 解包 |
-c -v -f -x -z |
tar -c mydir > mydir.tar tar -cvf test.tar /opt/test tar -xvf test.tar tar -zcvf hello.tar.gz hello.txt tar -zxvf hello.tar.gz |
105 | 压缩 | gzip | 解压缩 | -d | gzip hello.tar gzip -d hello.tar.gz |
106 | gunzip | 解压 | gunzip hello.tar.gz | ||
107 | zip | 压缩 | -r | zip file.zip * zip m file.zip to.txt zip -r file.zip * |
|
108 | unzip | 解压 | unzip hello.zip unzip -v hello.zip |
||
109 | zcat | 显示压缩文件的内容 | |||
110 | zmore | 显示压缩文件的内容 | |||
111 | zless | 显示压缩文件的内容 | |||
112 | zgrep | 查找压缩文件的内容 | |||
113 | zdiff | 比较压缩文件的不同 | |||
114 | 安装 | gcc | 编译 | -o 指定目标文件 | gcc hello.c gcc -o hello.o *.c |
115 | configure | 生成makefile文件 | --help -h 帮助说明 |
./configure --help | |
116 | make | 编译 | make 编译生成目标文件、可执行文件 make install 安装程序 make clean 去除目标文件 |
||
117 | rpm | 软件包管理器 | -ivh 安装 -Uvh 升级 -e 卸载 -e --nodeps强卸 -q 查询 -V 验证 |
rpm -qa 列出所有安装过的套件和版本 rpm -qi 列出这个套件的详细信息 rpm -ql 列出这个套件安装后的文件和路径 rpm -qf 查询某文件属于那一个套件 |
|
118 | yum | yum search raid yum info mdadm yum list yum install pam-devel |
|||
119 | 系统服务 | chkconfig | 开机自动启停服务 | --list 列出所有服务 --add 添加服务 --del 删除服务 |
chkconfig vsftpd on chkconfig sshd on chkconfig iptables off chkconfig --add httpd chkconfig --del httpd chkconfig --level 35 httpd on |
120 | service | 立即启停服务 | start 启动 stop 停止 restart 重启 status 查看 |
service network restart service iptables stop service vsftpd start service iptables status |
|
121 | 任务计划 | tab键 | 命令自动补全 | 按一下会自动展开; 按两下会列出所有命令 |
|
122 | nohup | 不挂断的运行 | |||
123 | & | 后台运行 | command & | ||
124 | Ctrl+Z | 后台运行 | |||
125 | jobs | 列出作业 | |||
126 | fg | 前台 | %number 表示jobs的工作代号 | fg %2 后台程序切到前台 | |
127 | bg | 后台 | %number 表示jobs的工作代号 | bg %1 将Stopped状态的后台程序改为Running状态 | |
128 | at | 一次性运行的任务计划 | -f 要提交的脚本 -r 清除 -l 罗列 |
at 3:00pm tomorrow -f /home/wuxh/hello.sh at now + 5 minutes |
|
129 | crontab | 循环运行的任务计划 | -u 用户 -e 编辑crontab -l 罗列 -r 删除crontab |
格式: 分<>时<>日<>月<>星期<>要运行的命令 45 4 1,10,22 * * /apps/bin/backup.sh |
|
130 | Bash | bash | 执行脚本 | bash helloworld.sh ./w.sh |
|
131 | 重定向符 > | 标准输出 | command > out.file 2>&1 & command 2> err.txt >&2 |
||
132 | 重定向符 >> | 追加 | cal >> c.txt | ||
133 | 重定向符 2> | 标准错误 | ls ddd 2> /dev/null | ||
134 | 重定向符 < | sort < name.txt > name.out | |||
135 | 重定向符 << | ||||
136 | 正则表达式 | . 匹配任意字符 ^ 匹配行首 $ 匹配文件尾 [] 匹配字符组之一 * 匹配0到n个字符 {min,max} (…) |
XXX* 匹配至少两个连续的X X{1,10} 匹配1到10个连续的X ^(.) 匹配行首的第一个字符(不管是什么 |
||
137 | 管道符 | | ||||
138 | 双引号 | 引用字符串,但对$,`,\敏感 | "" | echo "$$" echo "\$$" |
|
139 | 单引号 | 引用字符串,对特殊字符不敏感 | '' | echo '$$' | |
140 | 反引号 | 将反引号内的字符串作为命令 | `` | echo `date` | |
141 | 命令集 | 一行中执行多个命令 | ① ; 顺序执行 ② && 前面成功后续才执行 ③ || 前面失败后续才执行 |
ls;ls ls&&ls ls||ls |
|
142 | wc | 统计字数 | -l 统计行数 -c 统计字符 -w 统计字 |
cat /etc/passwd | wc -l | |
143 | sleep | 等待 | sleep 5 暂停5秒 usleep 500 这个单位是纳秒 |
||
144 | read | 从键盘读入信息到变量中 | read name | ||
145 | 变量赋值 | PATH="$PATH":/root LANG=C LANG=zh_CN.gb2312 PS1='[\u@\h \W]$ ' |
|||
146 | set | 显示当前shell的变量,包括当前用户的变量(即环境变量) | set | ||
147 | unset | 删除变量 | unset i | ||
148 | export | 把变量即刻导入到当前的用户环境中(被export的变量叫环境变量),这时可以在env中看到 | 环境变量相当可以被子进程使用,其他变量不行。 | export LANG=C export LC_ALL=en |
|
149 | env | 显示当前用户环境的变量(被export的变量可以用env查看到) | env | ||
150 | alias | 命令别名 | alias ll alias l=ls -la |
||
151 | unalias | 取消命令别名 | unlias l | ||
152 | sort | 对文件内容做排序 | -n 以数字排序 -r 反向排序 -u 同样的只出现一次 |
sort -n name.txt | |
153 | cut | 提取字符串 | -c 字符 -d 分隔符 -f 字段 |
cat /etc/passwd | cut -d ":" -f1 last | cut -d " " -f1 列出第一个区块 who | cut -c1-8,18- 每行的1-8个字符和第18行到行尾 cut -d: -f1,6 /etc/passwd |
|
154 | paste | 和cut相反的命令,合并行 | -d 指定合并的分隔符 -s 把文件内的所有行合并为一行 |
paste names numbers 把两个文件的每行都分别合起来 paste -d'+' names addresses numbers paste -s names ls | paste -d' ' -s |
|
155 | diff | 比较两个文件的不同 | diff file1 file2 | ||
156 | uniq | 删除重复行从而只显示一个 | last | cut -d " " -f1 | sort | uniq 查看这个月登录主机的用户都有谁 |
||
157 | source | 执行脚本 | source helloworld.sh | ||
158 | tee | 输出到文件的同时显示在屏幕上 | -a 追加到末尾 | ||
159 | tr | 替换指定内容 | -d 删除指定串 -s 替换重复字符 |
||
160 | split | 分割文件 | -b 以文件size分 -l 以行数分 |
split -l 5 /etc/passwd test | |
161 | 计算器 | bc | 用quit退出 | ||
162 | 查看端口占用 | lsof | 查看指定端口所占用的进程 | -i:端口号 | lsof -i lsof -i:xxxx |
163 | 查看端口占用 | netstat | grep 端口号 | netstat -ntlp netstat -tunlp | grep xxxx |
|
164 | 关闭占用的端口 | kill | 强制关闭指定PID对应的进程 | kill -9 PID | kill -9 xxxx |