常用指令

ssh 【username】@【ip】:远程登录到一台Linux服务器。
ps -ef | grep 【processName/processId】:查看后台进程
df -h:查询系统整体磁盘使用情况
du [选项] /目录:du -ach —max-depth=1 /opt ->查询指定目录的磁盘占用情况
指定目录占用大小汇总:-s
带计量单位:-h
含文件:-a
子目录深度:—max-depth=x(深度值)
列出明细的同时,增加汇总值:-c
netstat -nap | grep {端口号}:查看进程占用端口号
netstat -tunlp | grep {端口号}:根据端口号查看对应进程
ll -h:使文件大小以K、M等单位显示

Vim

yy , p :复制行,向下粘贴行
5yy , p :复制当前行向下的5行,向下粘贴
dd: 删除当前行
5dd:删除当前行向下的5行
gg: 跳转到文件头
G : 跳转到文件尾
u : 撤销本次打开执行的所有命令
:set nu: 设置显示行号
5+(shift+g): 跳转到第5行
:X moveY 将第X行的内容移动到第Y+1行
- :光标向上移动一行
+ :标向下移动一行
:/xxx: 查找xxx,从上往下找,按n跳转到下一个匹配,N跳转到上一个匹配
:?xxx: 查找xxx,从下往上找,按n跳转到下一个匹配,N跳转到上一个匹配
o: 在非编辑模式下是对下一行进行编辑

指令大全:

一、用户管理

添加用户:useradd [选项] 用户名 —— useradd xiaoming
指定目录名:useradd -d 指定目录 新的用户名 —— useradd -d /home/dog xiaoming
指定组:useradd -g 用户组名 用户名 —— useradd -g human xiaoming
删除用户:userdel [选项] 用户名 —— userdel xiaoming
删除用户及用户主目录:userdel -r 用户名 —— userdel -r xiaoming
给用户指定或修改密码:passwd 用户名 —— passwd xiaoming
查询用户信息:id 用户名 —— id xiaoming
切换用户:su 用户名 —— su xiaoming
返回原来用户:exit
添加组:groupadd 组名 —— groupadd human
删除组:groupdel 组名 —— groupdel human
修改用户的组:usermod -g 用户组名(新组) 用户名 —— usermod -g animal xiaoming
改变用户登录的初始目录:usermod -d 目录名 用户名

二、实用指令

设置运行级别:init [012356] —— init 3
获取帮助信息:man [命令或配置文件] —— man ls
help [命令] —— help cd
info [命令] —— info useradd
切换目录:cd
返回切换目录前的目录:cd -d
返回上一级目录:cd ..
进入用户家目录:cd ~ 或 cd+空格
当前目录:cd .

显示当前工作目录的绝对路径:pwd
显示当前目录的文件:ls [选项] [目录或是文件]
显示当前目录的全部文件(包含隐藏文件):ls -a
以列表的方式显示信息:ls -l
以列表的方式显示信息:ll
创建目录:mkdir [选项] 要创建的目录 —— mkdir temp
创建多级目录:mkdir -p mkdir /home/animal/tiger
删除空目录:rmdir [选项] 要删除的空目录 —— rmdir /home/animal/tiger
删除非空目录:rm -rf 要删除的非空目录 —— rm /home/animal
创建空文件:touch 文件名称 —— touch hello.txt
拷贝单个文件到指定目录:cp [选项] source dest —— cp /home/hello.txt /home/animal/tiger/
递归复制整个文件夹:cp -r source dest —— cp -r /home/animal /opt/
覆盖重复文件复制:\cp [选项] source dest
移除(删除)文件或目录:rm [选项] 要删除的文件或目录
-r:递归删除整个文件夹
-f:强制删除不提示
移动文件与目录或重命名:
重命名:mv oldFileName newFileName —— mv hello.txt hi.txt
移动文件:mv oldFilePath/oldFileName newFilePath/(newFileName) —— mv temp ~/newtemp
只读方式查看文件:cat [选项] 文件名称 —— cat /home/animal/tiger/temp.txt
-n:显示行号
更方便地查看文件(分页浏览):cat 文件名称 | more
全屏按页显示文本内容:more 文件名称
快捷键说明:空格键 —— 向下翻页
回车键 —— 向下翻一行
q ——离开more
Ctrl+F ——向下翻一屏
Ctrl+B ——返回上一屏
= ——输出当前行号
:f ——输出文件名和当前行号
分屏查看文件内容(不是一次加载整个文件,显示大型文件效率较高):less 文件名称
快捷键说明:空格键——向下翻页
pagedown——向下翻页
pageup ——向上翻页
/字串 ——向下搜寻字串
?字串 ——向上搜寻字串
q ——离开less
显示文件的开头部分内容(默认显示前10行):head 文件 —— head a.txt
查看开头任意x行:head -n x 文件 —— head -n 5 a.txt
显示文件的尾部部分内容(默认显示后10行):tail 文件 —— tail a.txt
查看尾部任意x行:tail -n x 文件 —— tail -n 5 a.txt
实时监控一个文件:tail -f 文件 —— tail -f a.txt
输出重定向(覆盖原来文件内容):
将列表内容覆盖写入:a.txt:ls -l > a.txt
将文件1的内容覆盖到文件2:cat 1.txt > 2.txt
追加(不会覆盖原来文件的内容,而是追加到文件的尾部):
将目录下的文件列表追加到文件末尾:ls -l /home/ >> a.txt
将当前日历信息追加到文件中:cal >> /home/a.txt
将当前日期信息追加到文件中:cal >> /home/a.txt
输出内容到控制台:echo [选项] [输出内容]
输出环境变量,输出当前的环境路径:echo $PATH
输出hello,world! : echo hello world!
创建文件的软链接(类似于创建快捷方式):ln -s [原文件或目录] [软链接名] —— ln -s /root linkToRoot
删除软链接(是目录的话不要加/):rm -rf linkToRoot
查看执行过的历史命令:history
查看最近执行的x条命令:history x —— history 10
执行编号为x的历史命令:!x —— !10
显示当前日期:date
显示当前年份:date +%Y (加号不能丢)
显示当前月份:date +%m
显示当前哪一天:date +%d
显示当前年月日:date “+%Y-%m-%d”
显示年月日时分秒:date “+%Y-%m-%d %H:%M:%S”
设置日期:date -s 字符串时间 —— date -s “2020-01-09 09:59:59”
查看日历:cal[选项] (不加选项显示本月日历)
显示2020年日历:cal 2020
查找文件:find [搜索范围] [选项]
查找Path目录下的file文件:find /home -name a.txt
查找Path目录下用户名为UserName的文件:find /opt -user root
查找Path目录下文件大小大于x m的文件:find / -size +20M
查找Path目录下文件大小小于x m的文件:find /opt -size -20M
查找Path目录下文件大小大于x k的文件:find /root -size +20480k
查找Path目录下所有后缀为.txt的文件: find / -name .txt
基于创建的locate数据库进行查找:
更新数据库:updatedb
定位文件路径:locate a.txt
管道符(前一个命令的处理结果输出传递给后面的命令处理):|
过滤查找:grep [选项] 查找内容 源文件 —— grep 星期四 a.txt
查看a.txt并过滤查找”星期四”所在行:cat a.txt | grep 星期四
查看a.txt并过滤查找”yes”所在行,显示行号:cat a.txt | grep -n yes
查看a.txt并过滤查找”yes”所在行,显示行号,不区分大小写:cat a.txt | grep -ni yes
压缩文件:
将文件压缩成
.gz格式(压缩后不保留原文件):gzip 文件名称 —— gzip a.txt
将文件压缩成.zip格式:zip [选项] 压缩后的文件名称.zip 压缩文件(路径需要用-r)源
—— zip -r mypackage.zip /opt/hadoop
解压缩文件:
.gz文件解压:gunzip 文件名称 —— gunzip a.txt.gz
将*.zip文件解压:unzip -d 解压到的目录 被解压文件 —— unzip -d /opt/temp/ mypackage.zip
文件打包:tar [选项] XXX.tar.gz 打包内容
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
将多个文件打包并压缩:tar -zcvf 打包后的文件名.tar.gz 被打包的文件1、2、…
—— tar -zcvf a.tar.gz a1.txt a2.txt
—— tar -zcvf myhome.tar.gz /home/
文件解包:tar -zxvf 被解压文件 [解压目录]
—— tar -zxvf a.tar.gz (解压到当前目录)
—— tar -zxvf myhome.tar.gz /opt/temp (解压目录必须存在)

三、组管理和权限管理

添加组:groupadd 组名 —— groupadd human
删除组:groupdel 组名 —— groupdel human
修改用户的组:usermod -g 用户组名(新组) 用户名 —— usermod -g animal xiaoming
改变用户登录的初始目录:usermod -d 目录名 用户名
修改文件所有者:chown 用户名(新所有者) 文件名 —— chown jack a.txt
修改文件所有者及所在组:chown 新用户名:新组名 文件名 —— chown jack:animal a.txt
递归修改目录中所有文件:chown -R 新用户名:新组名 文件名 —— chown -R jack:animal a
修改文件所在组:chgrp 组名(新组) 文件名 —— chgrp animal a.txt
递归修改目录中所有文件:chgrp -R 新组名 文件名 —— chgrp -R animal a
修改文件权限:
直接规定权限:chmod u=rwx,g=rx,o=x 文件目录名 —— chmod u=rw,g=r,o=r a.txt
指定组添加指定权限:chmod o+w 文件目录名 —— chmod o+wx
指定组减少指定权限:chmod o-wx 文件目录名 —— chmod o-rwx,g+w
所有组添加或减少权限:chmod a+w,a-x 文件目录名 —— chmod a+rw,a-x
数字变更权限:r(4),w(2),x(1)
chmod 755 /home/a.txt —> rwxr-xr-x

四、crond任务调度

crontab [选项]
编辑crontab定时任务:-e
查询crontab任务 :-l
删除当前用户所有的crontab任务:-r
重启任务调度:service crond restart
crontab语句:占位符 + 命令行语句
占位符:
第一个”“:一小时当中的第几分钟 0-59
第二个”
“:一天当中的第几个小时 0-23
第三个”“:一个月当中的第几天 1-31
第四个”
“:一年当总的第几月 1-12
第五个”“:一周当中的星期几 0-7(0和7都代表星期日)
特殊符号:
:代表任何时间。比如第一个”“就代表一小时中每分钟都执行一次
,:代表不连续的时间。比如”0 8,12,16
命令”,代表每天8点0分,12点0分,16点0分都执行一次命令
-:代表连续的时间范围。比如”0 5 1-6 命令”,代表周一到周六的5点0分执行命令
/n:代表每隔多久执行一次。比如”/10 命令”,代表每隔10分钟就执行一次命令
案例:
45 22 命令 —— 在每天22点45分执行命令
0 17
1 命令 —— 在每周一的17点0分执行命令
0 5 1,15
命令 —— 在每月1日和15日的5点0分执行命令
40 4
1-5 命令 —— 在每周一到周五的4点40分执行命令
/10 4 命令 —— 在每天的4点,每隔10分钟执行一次命令
0 0 1,15
1 命令 —— 每个月的1号和15号,每周1的0点0分执行命令

五、磁盘分区,挂载

查看系统的分区和挂载情况:lsblk -f
如何增加一块硬盘:
1.虚拟机添加硬盘
2.分区:fdisk /dev/硬盘名 —— fdisk /dev/sdb
3.格式化:mkfs -t 分区类型 /dev/分区名 —— mkfs -t ext4 /dev/sdb1
4.挂载:mount /dev/分区名 挂载目录 —— mount /dev/sdb1 /home/newdisk
5.设置可以自动挂载:vim /etc/fstab
/dev/分区名 挂载目录 分区类型 defaults 0 0
使生效:mount -a
查询系统整体磁盘使用情况:df -h
查询指定目录的磁盘占用情况:du [选项] /目录 —— du -ach —max-depth=1 /opt
指定目录占用大小汇总:-s
带计量单位:-h
含文件:-a
子目录深度:—max-depth=x(深度值)
列出明细的同时,增加汇总值:-c
统计指定目录下文件的个数:ll 指定目录名 | grep “^-“ | wc -l
统计指定目录下目录的个数:ll 指定目录名 | grep “^d” | wc -l
统计指定目录下文件的个数(包括子文件夹里的):ll -R 指定目录名 | grep “^-“ | wc -l
统计指定目录下目录的个数(包括子文件夹里的):ll -R 指定目录名 | grep “^d” | wc -l
以树状显示当前路径目录结构:tree
tree指令需要通过yum下载:yum install tree

六、网络配置

测试主机之间网络连通:ping 目的主机ip —— ping 192.168.225.1
—— ping www.baidu.com
指定固定ip:vim /etc/sysconfig/network-scripts/ifcfg-eth0
启动boot配置: ONBOOT=yes
以静态方式获取ip: BOOTPROTO=STATIC
指定ip地址: IPADDR=192.168.220.102
设置网关: GATEWAY=192.168.220.2
设置DNS(域名解析器,与网关一致):DNS1=192.168.220.2
重启服务:service network restart
重启系统:reboot

七、进程管理

查看当前进程:ps -aux
显示当前终端的所有进程信息:-a
以用户的格式显示进程信息:-u
显示后台进程运行的参数:-x
显示所有进程:-e
全格式:-f
USR:用户名
PID:进程识别号
%CPU:占用的cpu
%MEM:占用的内存
VSZ:使用的虚拟内存
RRS:使用的物理内存
TTY:终端机号
STAT:进程的状态(s:休眠,r:运行)
START:启动时间
TIME:此进程占用CPU的总时间
COMMAND:启动进程所用的命令和参数
以全格式显示当前所有的进程:ps -ef
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。
数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU 时间
CMD:启动进程所用的命令和参数
查看某个进程:ps -aux | grep 进程名 —— ps -aux | grep sshd (hhsd为远程登录服务)
查看某个进程的父进程:ps -ef | grep 进程名 —— ps -ef | grep sshd
终止进程:kill [选项] 进程号
killall 进程名称
-9:强迫进程立即停止
查看进程树:pstree [选项]
-p:显示进程的PID
-u:显示进程所属用户
service管理指令(CentOS7.0后不再使用service,而是systemctl):
service 服务名 [start | stop | restart | reload | status]
查看当前防火墙状态:service iptables status
关闭防火墙:service iptables stop
打开防火墙:service iptables start
查看服务名:
方法1:setup -> 系统服务
方法2:ll /etc/init.d
给每个服务的各个运行级别设置自启动/关闭(重启生效):
chkconfig —list
chkconfig —list | grep 服务名
——chkconfig —list | grep sshd
chkconfig 服务名 —list
chkconfig —level 级别(0-6) 服务名 on/off
—— chkconfig —level 5 sshd off
动态监控进程(执行一段时间后自动更新进程情况):top [选项] —— top -d 10
-d:指定top命令每隔几秒更新,默认是3秒
-i:使top不显示任何闲置或僵死进程
-p:通过指定监控进程ID来仅仅监控某个进程的状态
在top命令的交互模式当中可以执行的命令:
P:以CPU使用率来排序,默认就是此项
M:以内存的使用率排序
N:以PID排序
q:退出top
u:回车,输入用户名,监视特定用户
k:回车,输入进程号,终止指定进程
查看网络状况:netstat [选项] —— netstat -anp
-an:按一定顺序排列输出
-p:显示哪个进程在调用

八、RPM和YUM

查看已安装的指定rpm包:rpm -qa | grep 包名 —— rpm -qa | grep firefox
查看所有已安装的rpm包:rpm -qa | more
查询软件包是否安装:rpm -q 包名 —— rpm -q firefox
查询软件包信息:rpm -qi 包名
查询软件包中文件的安装位置:rpm -ql 包名
查询文件所属的软件包:rpm -qf 文件全路径名 —— rpm -qf /etc/passwd
—— rpm -qf /root/install.log
卸载rpm包:rpm -e 包名 —— rpm -e firefox
卸载被其他软件包依赖的rpm包:rpm -e —nodeps 包名 —— rpm -e —nodeps foo
—nodeps:强制删除
安装rpm包:rpm -ivh rpm包全路径名称
-i:install 安装
-v:verbose 提示
-h:hash 进度条
查询yum服务器是否有需要安装的软件:yum list | grep 包名
安装最新版本的yum包:yum install 包名
N、其他信息:
开机流程:开机 -> BIOS -> /boot -> init进程1 -> 运行级别 -> 运行级别对应的服务
运行级别:
0:关机
1:单用户模式
2:多用户状态无网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
运行级别设置: /etc/inittab 的 id:5:initdefault
文件信息:
drwxr-xr-x. 2 root root 4096 12月 18 11:10 shell
-rw-r—r—. 1 root root 283 1月 9 09:09 temp
第0位:文件类型 d:directory目录
-:普通文件
l:软链接
c:字符设备【键盘鼠标】
b:块文件【硬盘】
第1-3位:文件所有者(user)权限 w:write = 2
x:execute = 1
r:read = 4
第4-6位:文件所在组(group)用户权限
第7-9位:文件其他组(other)用户权限
忽略.
第10位:如果是文件,表示硬链接数
如果是目录,表示子目录数
第11位:文件所有者名
第12位:文件所在组名
第13位:如果是文件,表示字节数
如果是目录,4096
再后:文件最后修改时间
最后:文件名
如何增加一块硬盘:
1.虚拟机添加硬盘
2.分区
3.格式化
4.挂载
5.设置可以自动挂载
RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,
这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。