ubuntu 下常用的命令(仅做记录)
1. vim 编辑器的常用命令
1.1 光标移动命令
- gg :将光标移动到文件首。(敲代码时,添加头文件时使用)
- `: 将光标移动到上次编辑处(添加完头文件,回到编辑处)
- n G:将光标跳转到第n行 (修改BUG时使用)
- G: 将光标移动到文件尾
- n j :n代表代表移动行数,光标向下移动n行。 例如: 20 j 代表光标向下移动20行。
- 0 (数字0): 将光标移动到行首
- $ : 将光标移动到行末尾
1.2 复制命令
- yy: 复制1行
- n yy :赋值n行
- y $ :从光标处复制到行尾
1.3 剪切命令
- dd : 剪切光标所在行
- n dd: 剪切光标所在行开始的n行
- x: 剪切1个字符
- n x: 剪切n个字符
注意:剪切命令实际上也可以作为删除命令使用。
1.4 粘贴命令
- p :将复制或者剪切的内容粘贴到光标所在位置。
- n p :将复制或者剪切的内容粘贴n次
1.5 撤销命令
- u : 撤销1次
- u n: 撤销n次
- Ctrl + r: 撤销 u撤销的内容
1.6 查找命令
- /查找内容 :
- n : 查找下一个
- N: 查找下一个
1.7 查看帮助手册及分屏
- sp 文件名 : 分屏代开另外一个文件
- v+m(光标停留在需要查询的函数处): 分屏打开需要查询函数的man 手册
- Ctrl +w +w :在分屏间进行切换
1.8 可视模式
- v :切换到可视模式
- 可视模式下按 上下左右,选择可视的块代码
- 可视模式下按 = 调整对齐
1.9 转换大小写
- Shift + ~ : 转换光标处字母的大小写
1.10 调整字体大小
- Ctrl + - : 将字体调小
- Ctrl + Shift + + :将字体调大
1.11 添加注释
- Ctrl + v 进入可视模式, 选中要添加注释的行
- 按大写的
I
进入插入模式 按两次/
- 按两次ESC, 此时所有选中的行加了注释
1.12 删除注释
- Ctrl +v 选中需要删除注释的的注释符号。
- 按delete 键删除
2. 文件相关
2.1 ls 命令 显示当前目录中的文件
常用的参数
- ls -l:详细显示文件权限,所有者,修改时间,文件大小等信息。
ls -l后显示的内容:第一位是文件类型(-普通文件、d目录、l链接……)接下来的9个数字3个为一组,共3组每组分别代表:文件所有者权限、与文件所有者同组的用户的组权限、其他用户的访客权限。内核看到的文件权限码是一个8进制数,例如0666。 - ls -a:显示所有文件(包含隐藏文件,就是文件名第一个字符为『 . 』的文件)
- ls -r:逆向显示文件
- ls -R:递归地列举所有目录(在当前目录下)的所有内容
2.2 cd 进入某个目录
常用的参数:
- cd …:返回上级目录
- cd …/…:返回上两级目录
- cd /:进入根目录
- cd ~:进入用户工作目录
2.3 rm 删除文件或目录
- rm 文件名:删除该文件
- rm -f 文件名:删除该文件并不询问
- rm -r 目录名:删除一个目录
- rm -v 文件名:删除文件时会显示信息
注意:
常用rm -rf来删除某个目录和该目录下的所有子文件。
2.4 mv 移动文件或重命名文件
- mv 源文件 目标文件:将源文件命名为目标文件
- mv 源文件 目标目录:将源文件移动至目标目录(源文件可多个)
- mv 源目录 目标目录:如果目标目录存在,则将源目录移动至目标目录;如果目标目录不存在,则重命名该目录为目标目录
- mv -i 源文件 目标文件:将源文件命名为目标文件,如果目标文件名存在,则询问是否覆盖
- mv -f 源文件 目标文件:将源文件命名为目标文件,如果目标文件名存在,则直接覆盖
- mv * …:移动当前目录下所有文件到上级目录
2.5 cp 复制文件或将文件复制到目录
- cp 源文件 目标目录:复制源文件到目标目录中(目标目录中无该源文件)
- cp -a 源目录 目标目录:复制整个目录到目标目录
-p :连同文件的属性一起复制,而非使用默认方式,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制
注意:
将自己的文件拷贝给他人时,需要更改文件所属用户组、文件所有者。
2.6 pwd:显示当前目录
2.7 mkdir:建立一个新的目录
2.8 rmdir:删除一个空的目录
- rmdir 目录名:删除一个空目录。
注意:
- 该目录必须是空的
- 使用rm -rf可以代替rmdir,不过使用时容易误删该目录下的文件。
2.9 who 显示当前用户
2.10 cat 命令查看文件
- cat file1: 在屏幕上显示文件ml的内容
- cat file1 file2: 同时显示文件ml和m2的内容
- cat -n file1: 为显示行添加行号
注意:
cat命令英文原意:concatenate and display files
功能描述:连接文件并打印到标准输出设备上
2.11 less more
- more [文件名]
(空格) 或f:显示下一页
(Enter):显示下一行
q或Q:退出
示例:
$ more /etc/services
注意:
less命令的用法与more命令类似,也可以用来浏览超过一页的文件。所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。
2.12 head tail
- head [参数] <文件名>
-n:显示前n行,不指定此参数显示前10行
[root@linux root]# head /etc/passwd
- tail [参数] <文件名>
-n:显示后n行,不指定此参数显示后10行
+n:从第n行显示到文件尾
-F:用于跟踪显示不断增长的文件结尾内容(通常用于显示日志文件)。
2.17 find命令
- find 路径 [参数]
-name filename :找出文件名为filename的文件
-size [±]SIZE :找出比SIZE还要大(+)或小(-)的文件
-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)、FIFO管道文件§;
-perm mode :查找文件权限刚好等于mode的文件,mode用
数字表示,如0755
2.13 grep命令
(Globally search a Regular Expression and Print)
功能:在文件中搜索匹配的字符并进行输出
- grep[参数] <要找的字串> <要寻找字串的源文件>
-a :将binary文件以text文件的方式查找数据
-c :计算找到“查找字符串”的次数
-i :忽略大小写的区别,即把大小写视为相同
-v :反向选择,即显示出不包含‘查找字符串’内容的那一行
2.14 打包命令
tar(tape archive)命令能够将用户所指定的文件或目录打包成一个文件,
也可以通过指定参数开启压缩/解压缩功能
- 格式:tar [参数] <文件>
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir
2.15 ln 命令
功能:用于创建链接
- ln file1 file2 : 为file1 文件创建一个硬链接
- ln -s file1 file2: 为file1 文件创建一个软连接
3.网络相关
- ifconfig :查看ip、子网掩码等
4. 进程控制类命令
4.1 ps命令
功能:ps命令是用来显示系统瞬间的进程信息,它可以显示出在用户输入ps命令时系统的进程及进程的相关信息。
- ps [参数]
l: 长格式输出
u: 按用户名和启动时间的顺序来显示进程
j: 用任务格式来显示进程
f: 用树形格式来显示进程
a: 显示所有用户的所有进程(包括其它用户)
x: 显示无控制终端的进程
r: 显示运行中的进程
4.2 top命令
功能:动态监视系统任务的工具,输出结果是连续的
- top [参数]
-b 以批量模式运行,但不能接受命令行输入
-c 显示命令行,而不仅仅是命令名
-d N 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒
-i 禁止显示空闲进程或僵尸进程
-n NUM 显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出
-p PID 仅监视指定进程的ID;PID是一个数值
-q 不经任何延时就刷新
-s 安全模式运行,禁用一些效互指令
-S 累积模式,输出每个进程的总的CPU时间
4.3 kill 命令
功能:该命令用于向某个进程(通过PID标识)传送一个信号,它通常与ps和jobs命令
- kill –signal PID,
常用的signal参数如下:
- 1:SIGHUP,启动被终止的进程
- 2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
- 9:SIGKILL,强制中断一个进程的进行
- 15:SIGTERM,以正常的结束进程方式来终止进程
- 17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
4.4 killall 命令
功能:
- killall命令使用进程的名称来杀死进程,使用此指令可以杀死一组同 名进程
- 使用kill命令可以杀死指定进程PID的进程,如果要根据进程名称找到需要杀死的进程,还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一
格式与参数:
- killall [参数] <正在运行的进程名>
-e:对长名称进行精确匹配;
-I:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称; -
s:用指定的进程号代替默认信号“SIGTERM”; -u:杀死指定用户的进程。
4.5 nice 命令
功能:nice 命令允许在默认优先级的基础上进行增大或减小的方式来运行命令
- nice [参数] <command [arguments…]>
command 是系统中任意可执行文件的名称
-n, --adjustment 指定程序运行优先级的调整值
注意:
优先级的调整值范围为-20 ~ 19 ,其中数值越小优先级越高,数值越大优先级越低
若 nice命令未指定优先级的调整值,则以缺省值10来调整程序运行优先级,既在命
令通常运行优先级基础之上增加10
4.6 renice 命令
功能:改变一个正在运行的进程的nice值
- renice [参数]
-n:指定程序运行优先级的调整值
[root@host root]# renice -5 777
//将正在运行的PID为777的进程nice值改为-5
4.7 其他杂项
- 进程的中止(挂起)和终止
挂起(Ctrl+Z)
终止(Ctrl+C) - 进程的恢复
恢复到前台继续运行(fg)fg [n]
恢复到后台继续运行(bg)bg [n] - 查看被挂起的进程(jobs)
- lsof -i : 查看端口、运行的进程等信息
5. 用户及权限管理类命令
5.1 useradd
功能:新建用户帐号(超级用户可用)
- useradd [参数] <用户名>
-d 指定用户登入时的主目录
-e 账号终止日期
-g 指定账户所属的用户组
-G 指定账户所属的附加组
-s 指定账户登录后所使用的shell
-u 指定用户ID号
举例:新建一个用户zhangsan,用户组为net04
useradd –g net04 zhangsan
5.2 passwd
功能:设置或修改用户的口令以及口令的属性
- passwd [参数] <用户>
-d 删除用户的口令
-l 暂时锁定指定的用户帐号
-u 解除指定用户帐号的锁定
-s 显示指定用户帐号的状态
//设置与修改属性
passwd zhangsan
//删除口令
passwd –d zhangsan
//锁定/解锁用户帐号
passwd –l zhangsan
passwd –u zhangsan
//显示用户帐号状态
passwd –s zhangsan
5.3 usermod
功能:修改用户的属性(超级用户可用)
- usermod [参数] <用户名>
d 指定用户登入时的主目录
-e 账号终止日期
-g 指定账户所属的用户组
-G 指定账户所属的附加组
-s 指定账户登录后所使用的shell
-u 指定用户ID号
-l 新用户名(用于修改用户名)
//将zhangsan改为zhangs
usermod –l zhangs zhangsan
5.4 userdel
功能:删除指定的用户帐号(超级用户可用)
- userdel [参数] <用户名>
-r:不仅删除此用户帐号,而且删除用户主目录及本地邮件存储的目录
或文件
-f:删除用户登入目录以及目录中所有文件
注意:
如果删除用户属于私人组群,而该组群没有其他用户,组群也一并删除。
正在使用系统的用户不能删除。
5.5 su
功能:切换用户身份
- 格式:su <用户名>
超级用户可以切换为任何普通用户,而不需要输入口令;
普通用户转换为其他用户时需要输入被转换用户的口令;
使用exit可以返回到本来的用户身份
5.6 id
功能:查看用户的UID、GID和用户所属用户组的信息,如果不指定用户,则显示当前用户的相关信息。
- id <用户名>
5.7 whoami
功能:查看当前用户名
5.8 w
功能:查看当前登录系统用户和详细信息
5.9 groupadd
功能:新建组群(超级用户可用)
- groupadd [参数] <用户组名>
-g:指定用户组ID
-o:允许组ID号不唯一
5.10 groupmod
功能:修改指定用户组的属性(超级用户可用)
- groupmod [参数] <用户组名>
-g:指定新的用户组ID
-n:指定新的用户组名字
-o: 允许组ID号不唯一
5.11 groupdel
功能:删除指定的用户组(超级用户可用)
- groupdel <用户组名>
注意:在删除指定用户组之前必须保证该用户组不是任何用户的主要组群,否则要先删除以此用户组为主要组群的用户才可以删除该用户组
5.12 chmod 改变文件权限
- chmod -R xyz 文件或目录:进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更。
- chmod xyz 文件或目录:更改xyz文件或目录的权限。
注意:rwx 读写执行 分别是4 2 1 。
5.13 chown 更改文件所有者
- chown 账号名称 文件或目录:更改文件或目录的所有者。
- chown 账号名称:组名 文件或目录 更改文件或目录的所有者 和所属组。
- chown -R 账号名称:组名 目录 递归改变目录中文件的所属者。
范例:将 initial-setup-ks.cfg 的拥有者改为 bin 这个账号:
[root@study ~]# chown bin initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 bin
users 1864 May 4 18:01 initial-setup-ks.cfg
范例:将 initial-setup-ks.cfg 的拥有者与群组改回为 root:
[root@study ~]# chown root:root initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg
5.14 chgrp 更改文件的所属组
- chgrp [-R] 目录名或文件名: 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
范例:
[root@study ~]# chgrp users initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 root users 1864 May
4 18:01 initial-setup-ks.cfg
[root@study ~]# chgrp testing initial-setup-ks.cfg
chgrp: invalid group:
`testing' <== 发生错误讯息啰~找不到这个群组名~
- 搜索包:apt search 包名
//举栗子
apt search netfilter_queue
- 查看头文件和库的路径
/usr/include, /usr/lib, /usr/lib64