一、快捷键
1)tab键:命令或者路径提示及补全
2)ctrl+c:放弃当前输入,终止当前任务或程序
3)ctrl+l:清屏
4)ctrl+insert:复制
5)鼠标右键:粘贴
6)alt+c:断开连接
7)ctrl+shift+R:重新连接
8)alt+1/2/3/4/5…:切换会话窗口
9)上下键:查找执行过的命令,或者是history命令(history命令最多存储1000个曾用命令,输入!命令编号后回车,可以执行相应的历史命令)
二、命令
1.帮助信息查看命令
1)command --help,命令后面加上--help即可查看相应命令的帮助信息,没有提供翻页,搜索等功能。
2)man command ,查询command命令的使用手册
*使用man时的操作:
2.常用基本命令
命令 | 说明 |
ls | 查看当前目录下全部内容,后面加参数的话就是指定目录下的全部内容 |
ls -a | 查看全部内容,包含隐藏文件 |
ls -l | 查看内容的详细信息,效果等同于ll命令 |
ls -lh | 以人能读懂的方式显示文件大小(给文件大小加上单位,无单位时单位默认是字节) |
ls -R | 树结构显示某文件夹下的所有文件,包括子文件夹 |
touch 不存在的文件 | 创建一个空白文件 |
touch 存在的文件 | 修改文件的末次访问时间 |
touch 文件1 文件2… | 一次创建多个文件 |
mkdir [-p] 要创建的目录 | 创建目录,加上-p参数可以递归创建目录 新建目录的名称不能与当前目录中已有的目录或文件同名 |
rmdir | 删除空目录,里面有文件或其他目录时无法删除 |
rm 文件名 | 删除一个文件 |
rm -f 文件名 | 不经确认删除文件 |
rm -r 目录 | 递归删除一个目录及目录中的内容 |
rm -rf 目录 | 递归删除一个目录,并且不经确认 |
cp [-r] 源文件(夹) 目标文件(夹) | 复制源文件(夹)到目标文件(夹)下; 复制文件夹时,需要加-r参数 |
mv 源文件(夹) 目标文件(夹) | 移动源文件(夹)到目标文件(夹)下; |
3.文件查看命令
查看文件使用的命令,其中cat是把文件整个展示出来,more支持翻页,less允许使用pageup和pagedown翻页。
命令 | 说明 |
cat [-option] 要查看的文件 | -b :列出行号,仅针对非空白行做行号显示,空白行不标行号! -E :将结尾的断行行字节 $ 显示出来; -n :列出行号,连同空白行也会有行号,与 -b 的选项不不同; -T :将 [tab] 按键以 ^I 显示出来; -v :列出一些看不出来的特殊字符 -A :相当于 -vET 的整合选项,可列列出一些特殊字符而不不是空白而已; |
more 要查看的文件 | 空格键 (space):代表向下翻一页; Enter:代表向下翻『一行』; q代表立刻离开 more ,不再显示该文件内容。 Ctrl+F 向下滚动一屏 Ctrl+B 返回上一屏 = 输出当前行的行号 |
less 要查看的文件 | 空格键 :向下翻动一页; [pagedown]:向下翻动一页; [pageup] :向上翻动一页; /字符串 :向下搜寻『字符串』的功能;n:向下查找;N:向上查找; q :离开 less 这个程序; |
head 文件名 | 查看文件的前十行 |
head -n 3 文件名 | 查看文件的前三行 |
head -c 3 文件名 | 查看文件的前三个字符 |
tail -n 10 文件名 | 查看文件的后十行 |
tail -f 文件名 | 实时追踪该文档的所有更新 |
tail -10f 文件名 | 动态追踪最后10行内容 |
4.命令组合符号
命令 | 说明 |
重定向输出:> | 将前面一个命令输出的内容输出到后面的文件中。 例:cat /etc/passwd > 1.txt(如果1.txt存在,则替换源文件中的内容) |
重定向输出并追加:>> | 将前面一个命令输出的内容追加到后面的文件中。 例:cat /etc/passwd >> 1.txt |
管道符:| | 将前面的命令的输出作为后面的命令的输入。 例: ls --help | more 分页查询帮助信息 ps -ef | grep 'java' 查询所有进程中包含了java的进程 |
逻辑控制:&& | 用&&连接命令,只有当前面的命令执行成功时,才会执行符号后面的命令,否则符号放后面的命令不执行。 例:想查看启动软件时的日志信息 ./startup.sh && tail -100f catalina.out |
5.打包,解包,压缩,解压缩命令
命令 | 说明 |
tar -cvf | 将目录或文件打包,可以一次打包多个文件 tar -cvf 打包名.tar 被打包的目录 tar -cvf 打包名.tar 被打包的文件1 被打包的文件2 被打包的文件3 *参数说明 -v:详细输出打包过程 -f:指定档案的文件名称,f后面一定是.tar文件,所以必须放在最后 |
tar -xvf | 解包。 tar -xvf 打包名.tar tar -xvf 打包名.tar -C 解包路径位置 |
tar -zcvf | gzip格式打包并压缩文件。 tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录 |
tar -zxvf | gzip格式解压缩文件。 tar -zxvf 打包文件.tar.gz tar -zxvf 打包文件.tar.gz -C 目录路径 |
tar -jcvf | bzip2格式打包并压缩文件。 tar -jcvf 打包压缩文件名.tar.bz2 被压缩的文件/目录 |
tar -jxvf | bzip2格式解压缩文件。 tar -jxvf 打包文件.tar.bz2 tar -jxvf 打包文件.tar.bz2 -C 目录路径 |
zip -r 压缩文件名.zip 待压缩文件 | 将文件或目录压缩。 zip -r huihui123.zip huihui123 |
unzip [待解压的zip包] | 将zip文件解压。 unzip huihui123.zip |
gzip和bzip2是linux中压缩的两种方式,在tar命令中可以用-z和-j两个参数去方便的调用这两种压缩功能。
两者压缩时的算法不同,所以压缩出来的文件大小不同,考虑压缩文件大小的场景中可以参考这两种压缩方法的特点来灵活使用。
*注意事项: 如果报错tar (child): bzip2:无法 exec: 没有那个文件或目录,这时要安装bzip2的包: yum install -y bzip2
7.时间日期相关命令
命令 | 说明 |
date [+FORMAT] | 显示当前的时间。 (1)date (功能描述:显示当前时间) (2)date +%Y (功能描述:显示当前年年份) (3)date +%m (功能描述:显示当前月份) (4)date +%d (功能描述:显示当前是哪一天) (5)date +%Y%m%d … (功能描述:显示当前年年月日各种格式 ) (6)date +"%Y-%m-%d %H:%M:%S" 或者单引号也可以 (功能描述:显示年年⽉月⽇日时分秒) (7)date +%s(功能描述:时间-->时间戳) (8)时间戳->时间: date +%Y:%m:%d -d @1425384141 |
date -d ... [+FORMAT] | 显示非当前时间。 (1)date -d '1 days ago' (功能描述:显示前一天日期) (2)date -d yesterday +"%Y-%m-%d"(同上) (3)date -d next-day +"%Y-%m-%d" (功能描述:显示明天日期) (4)date -d 'next monday' (功能描述:显示下周一时间) |
date -s 字符串时间 | 设置系统时间。 date -s "2020-06-20 20:52:18" |
cal [option] | 显示日历,不加参数时显示当月日历。 cal cal -3:显示系统前一个月,当前月,下一个月的日历 cal 2020:显示2020一整年的日历 |
7.搜索查找命令
命令 | 说明 |
find path [options] | 查找文件或者目录。 (1)按照文件名称: find /etc -name yum.conf find . -name 'yum*' (使用通配符,在当前目录找到以yum开头的文件) (2)按照文件特征查找: find / -atime -2 # 查找在系统中最后48小时访问的文件 (Access Time,文件读取访问时间) find / -empty # 查找在系统中为空的文件或者文件夹 find / -group susan # 查找在系统中属于group为susan的文件 find / -mtime -1 #查找在系统中最后24小时里修改过的文件 (modify time) find / -user susan #查找在系统中属于susan这个用户的文件 find / -size +10000c #查找出大于10000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB) find / -size -1000k #查找出小于1000KB的文件 (3)使用混合查找方式查找文件 find /tmp -size +10c -and -mtime +2 #在/tmp目录下查找大于10字节并在2天前修改的文件 find / -user root -or -user susan #在/目录下查找用户是root或者susan的文件文件 find /tmp ! -user susan #在/tmp目录中查找所有不属于susan用户的文件 |
grep [options] [pattern] [paramers] | 在文本中找到匹配pattern的行并打印出来。 主要参数: -c:只输出匹配行的计数。 -i:不区分大小写 -n:显示匹配行及行号。 -w:显示整个单词 -r:递归查询 |
8.vi,vim命令
在Linux下一般使用vi编辑器来编辑文件。 vi既可以查看文件也可以编辑文件。 而vim是vi的升级版本,具备更多的功能。 vi如果目标文件不存在,会创建新的文件。但是如果新文件没做编辑,退出后还会消失。
如果vim命令不能使用需要安装: yum -y install vim-enhanced
命令 | 说明 |
vi/vim | (1)底行模式 :q 未编辑时退出 :q! 强制退出,不保存退出 :wq 保存退出 :x 编译后保存 /+想搜索的文字:在文本中搜索字段,高亮显示,按n下一个,按N上一个 :set nu 显示行数 :s/old/new/ 用new替换old,替换当前行的第一个匹配 :s/old/new/g 用new替换old,替换当前行的所有匹配 :%s/old/new/ 用new替换old,替换所有行的第一个匹配 :%s/old/new/g 用new替换old,替换整个文件的所有匹配 定位最末尾 G 定位首位 g :整数 快速跳转到指定行 (2)一般模式 u 撤销上次操作 ctrl+r 恢复上一次被撤销的操作 p(pause) 将之前dd或yy的数据粘贴到光标位置 yy 复制光标所在行 5yy 复制光标及下面共5行 dd 剪切当前行 5dd 剪切光标及下面共5行 |
9.用户及组&权限管理命令
命令 | 说明 |
user add 用户名 | 添加新用户,当前用户必须有添加用户的权限 |
passwd 用户名 | 设置用户的密码 |
id 用户名 | 判断用户是否存在 如果用户存在,会展示用户的ID及用户所属组的ID |
su 用户名称 su - 用户名称 | 切换用户,只能获得用户的执行权限,不能获得环境变量 切换到用户并获得该用户的环境变量及执行权限 |
userdel 用户名 userdel -r 用户名 | 删除用户但保存用户主目录 用户和用户主目录,都删除 |
who | 查看登录用户信息 whoami:显示的是当前用户下的用户名,比如登录后用su切换到了susan,那么显示的就是susan。 who am i:显示的是登录时的用户名,不管切没切换用户,展示的是登录shell的用户 who:显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者) |
sudo | 让普通用户拥有root权限,执行一些或者全部的root命令。 1)修改配置文件 修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示: ## Allow root to run any commands anywhere root ALL=(ALL) ALL tom ALL=(ALL) ALL 2)使用tom用户登录,操作管理员命令 #不切换root用户,也可以完成添加用户的功能 sudo useradd lisi sudo passwd lisi |
cat /etc/passwd cat /etc/group | 查看创建了哪些用户 查看创建了哪些组 |
groupadd 组名 | 新增一个用户组 |
groupdel 组名 | 删除用户组 |
groupmod -n 新组名 老组名 | 修改用户组名 |
user -g 用户组 用户名 | 例:将用户hadoop加入mygroup用户组 usermod -g mygroup hadoop |
chmod [-R] | 修改文件权限。 给目录赋予权限时加-R。 例: chmod 755 a.txt chmod u=rwx,g=rx,o=rx a.txt 上面两种方式是等效的,将属主用户的权限修改为7(读写执行),属组用户的权限修改为5(读和执行),将其他用户的权限修改为5(读和执行)。 |
chown 用户 | 改变文件或者目录的所有者。 例:chown hadoop test1.txt |
chgrp 用户组 | 改变文件或者目录的所属组。 例:chgrp hadoop test1.test |
10.系统管理与进程管理命令
命令 | 说明 |
df -h [挂载点] | disk free,显示磁盘剩余空间 |
du -h [目录名称] | disk usage,显示目录下的各文件大小 |
ps -aux | 查看系统中所有进程 -a 显示终端上的所有进程 -u 显示进程的详细状态 -x 显示没有控制终端的进程 展示风格:BSD风格 |
ps -ef | 显示系统中的所有进程 展示风格 system V风格 【uid】用户ID 【pid】进程ID 【C】进程CPU占用率 【time】进程从启动到现在的时间 【Stime】进程起始时间 【TTY】终端号 【CMD】命令名称和参数 |
top [options] | 查看系统健康状态。 -d 秒数:指定top命令每隔几秒更新。默认是3秒。 -i:使top不显示任何闲置或者僵死进程。 -p:通过指定监控进程ID来仅仅监控某个进程的状态。 操作选项,即在执行top命令之后,与top命令进行交互: P: 以CPU使用率排序,默认就是此项 M:以内存的使用率排序 N: 以PID排序 q: 退出top |
kill -9 pid进程号 | 终止指定进程,-9表示强迫进程立即停止。 |
netstat | 安装命令:yum install net-tools NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval] -a 显示所有连接和监听端口。 -e 显示以太网统计信息。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和 广播的数量 -n 以数字形式显示地址和端口号。 -o 显示与每个连接相关的所属进程 ID 。 -p proto 显示 proto 指定的协议的连接;proto 可以是下列协议之一: TCP 、UDP 、TCPv6 或 UDPv6 -p 显示哪个进程在调用。 netstat -e 本选项用于显示关于以太网的统计数据。 netstat -r 本选项可以显示关于路由表的信息,类似于后面所讲使用route print 命令时看到的 信息。除了显示有效 路由外,还显示当前有效的连接。 netstat -a 本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED ),也包括监听连接请求 (LISTENING )的那些连接,断开连接(CLOSE_WAIT )或者处于联机等待状态的(TIME_WAIT )等 netstat -n 显示所有已建立的有效连接。 netstat -anp 查看这个系统目前网络状况. 例:查看端口22的使用情况。 netstat -anp | grep 22 |
systemctl start firewalld | 启动防火墙 |
systemctl stop firewalld | 关闭防火墙 |
systemctl status firewalld | 查看防火墙状态命令 |
systemctl disable firewalld | 开机禁用防火墙 |
systemctl enable firewalld | 开机启用防火墙 |
重启命令 | reboot shutdown -r now |
关机命令 | halt shutdown -h now shutdown -h 10(十分钟后自动关机) poweroff |
11.软件安装相关命令
命令 | 说明 |
rpm [options] | -q 查询 -a 所有 -i 信息 -l 显示所有相关文件 -f 文件,显示文件对应rpm包 最常用的是 rpm -qa,rpm -qa | grep xxx |
rpm -e 软件包名称 rpm -e --nodeps 软件包名称 | 卸载rpm包 加--nodeps :卸载前跳过依赖检查 |
rpm -ivh rpm包的全路径 | 安装rpm包 |
yum list | grep 需要的软件名 | yum list 显示所有已经安装和可以安装的程序包 |
yum -y install 需要的软件包 | 下载安装 |
yum -y remove 需要卸载的软件包 | 卸载 |
yum repolist | 列出设定的yum源信息 |
yum clean all | 清除yum缓存信息 |