用户相关命令
帐号管理命令
以下几个命令必须在root账户下使用,切换到root账户的命令 su root
创建用户: useradd (选项)
$ useradd jack //创建一个名为jack的用户
用户名用户口令: passwd (选项)
$ passwd jack //修改jack用户的密码,新密码由字母+数字组成,长度大于8
用户名修改用户: usermod 选项 用户名
$ usermod -l tom jack //把用户名jack改为tom
删除用户: userdel (选项) 用户名
$ userdel tom //删除tom
用户组
创建用户组: groupadd (选项)
$ groupadd kaifa //添加开发组
用户组名修改用户组: groupmod(选项)
$ groupmod -n kaifazu kaifa //kaifa修改为kaifazu
用户组名查询用户所属组:groups 用户名
$ groups root
删除用户组: groupdel 用户组名
$ gropudel kaifazu //删除kaifazu
管理用户gpasswod
语法:gpasswd (可选项)组名
gpasswd 是 Linux 下的管理工具,用于将一个用户添加到组或者从组中删除。
-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
$ groupadd kaifazu //创建一个组,组名叫:kaifazu
$ useradd user1 //创建一个用户,叫user1
$ useradd user2 //创建一个用户,叫user2
$ useradd user3 //创建一个用户,叫user3
$ gpasswd -a user1 kaifazu //把user1添加到kaifazu
$ gpasswd -a user2 kaifazu //把user2添加到kaifazu
$ gpasswd -a user3 kaifazu //把user3添加到kaifazu
$ grep 'kaifazu' /et/gropu //查询kaifazu下面的用户
系统管理相关命令
日期管理date
date [参数选项]
参数选项:
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
–help:在线帮助;
–version:显示版本信息
$ date //查询当前日期:2020年 05月 29日 星期五 22:56:14 CST
$ date -d "2020-09-09" //查询20200909的日期: 2020年 09月 09日 星期三 00:00:00 CST
显示用户logname
显示当前登录用户的信息
$ logname
切换用户su
格式:su 用户名
切换后退出用户 ctrl+d
查看当前用户详细信息id
查看当前用户的详细信息(用户id,群组id,所属组)
$ id
提升操作权限sudo
sudo [参数选项] 提高普通用户的操作权限
参数选项:
–V 显示版本编号
–h 会显示版本编号和指令的使用方式说明
–l 显示出自己的权限
–v 超出N分钟没有使用,要求再次输入密码(默认5分钟)
–k 下一次执行 sudo 时问密码
–s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
–H 将环境变数中的 HOME 指定为要变更身份的使用者HOME目录
sudo command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
进程相关命令
top 显示进程信息
top 实时显示所有的进程信息
top – c 实现显示所有的进程信息(显示完整命令)
top –p PID 实时显示指定进程的信息结束监控快捷键:q
ps命令
ps [options] [–help] 查看进程信息
参数选项:
-A:进程信息信息(部分)
-u : 显示指定用户信息
-ef :显示所有进程信息(完整)
kill命令
kill 进程PID 杀死指定进程
kill -9 进程PID 彻底杀死指定进程
kill -9 $(ps –ef | grep 用户名) 杀死指定用户所有进程
killall –u 用户名 杀死指定用户所有进程
关机和重启相关命令
关机
shutdown 关机,默认立即关机,但是Centos7中会在一分钟后关机
shutdown -h now 立马关机
shutdown +1 “警告信息” 延迟一分钟关机
shutdown -r +1 “警告信息” 一分钟后关机并重启
shutdown -c 取消关机
重启
reboot
系统管理其他命令
who
who 显示当前登陆用户
who -H 显示当前登陆用户,多了标题信息
timedatectl命令
矫正服务器时间、时区
timedatectl status 显示系统的当前时间和日期
timedatectl list-timezones 查看所有可用的时区
timedatectl set-timezone “Asia/Shanghai“ 设置本地时区
timedatectl set-ntp false 禁用时间同步
timedatectl set-time “2019-03-11 20:45:00“ 设置时间
timedatectl set-ntp true 启用时间同步
clear
clear 清除屏幕
目录与文件相关命令
列出目录下的文件和文件夹
ls(list)是一个非常有用的命令,用来显示当前目录下的内容
$ ls
$ ls -a
显示所有文件或目录(包含隐藏的文件),在linux中以 . 开头的文件都是隐藏的文件
$ ls -l
$ ll
显示文件详情,ll是缩写
$ ll -h
友好显示文件大小
显示当前所在文件夹
pwd 显示当前所处目录
切换目录
$ cd app
切换到app目录
$ cd ..
切换到上一层目录
$ cd /
切换到系统根目录
$ cd ~
切换到用户主目录
$ cd -
切换到上一个所在目录
创建文件夹
$ mkdir app
在当前目录下创建app目录,只能创建单级目录。
$ mkdir -p app2/test
级联创建aap2以及test目
创建文件
$ touch a.txt //不存在就创建,存在就修改时间属性
$ touch a{1..10}.txt //批量创建
$ stat a.txt //查看文件详细信息
创建一个空文件
删除文件和文件夹
删除空文件夹
rmdir app
删除app目录,前提app目录必须为空,该目录下不能有文件
删除非空文件夹
$ rm -rf a
不询问递归删除 a目录以及该目录下的所有内容
删除文件
$ rm -rf a.txt
不询问直接删除a.txt文件
$ rm -rf *
删除当前目录下的所有的文件
$ rm -rf /*
/表示根目录,表示删除根目录下的所有的文件,别用。
复制和移动和重命名
复制
cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
$ cp a.txt b.txt
将a.txt复制为b.txt文件
$ cp a.txt ../
将a.txt文件复制到上一层目录中
移动或重命名
mv 移动或者重命名
$ mv a.txt ../
将a.txt文件移动到上一层目录中
$ mv a.txt b.txt
将a.txt文件重命名为b.txt
文件属性相关
更改文件的组属性
chgrp:修改所在用户组,该命令只能修改组属性
chgrp root aaa //把aaa所在用户组修改为root
chgrp -v root itcast aaa //把aaa所在用户组由root改为itcast,执行完毕多了描述执行结果信息
更改文件的属性主与组属性
可以同时修改属主和属组权限
chown itcast:itcast aaa 将aaa文件的属主和属组改为itcast
chown -R itcast:itcast aa 将aaa文件夹包括子文件夹的属主和属组改为itcast
更改文件的权限
$ chmod -R 770 aaa //表示把aaa包括其子文件和子文件夹的权限设置为 自己和组可读写执行,其他组不能操作
vi和vim编辑器
常用操作
1.打开文件, vi 文件名
2.启用编辑,按i键
3.保存退出 esc->:wq
4.不保存退出 esc->:q!
定位行
vim 文件名 第几行
vim xx.txt 5
异常处理
如果 vim异常退出, 在磁盘上可能会保存有 交换文件(a.txt.swp)
下次再使用 vim 编辑文件时, 会看到以下屏幕信息,直接使用 rm -rf .txtfile.txt.swp删除交换文件即可
查看文件内容
cat
用于显示文件的内容。主要阅读小型文件
格式:cat[参数]<文件名>
$ cat yum.conf
more
一般用于要显示的内容会超过一个画面长度的情况。按空格键显示下一个画面。
回车显示下一行内容。
按 q 键退出查看。
$ more yum.conf
空格显示下一页数据 回车显示下一行的数据
less
用法和more类似,不同的是less可以通过PgUp、PgDn键来控制。
$ less yum.conf
$ less -N yum.conf //加入行号
PgUp 和 PgDn 进行上下翻页
tail
tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。
用法:
$ tail -10 /etc/passwd
查看后10行数据
tail -f catalina.log
动态查看日志,ctrl+c 结束查看
tail –3 big.txt 显示文件最后3行
tail -f big.txt 动态显示最后10行
tail -4f big.txt 动态显示最后4行
tail -n +2 big.txt 显示文件a.txt 的内容,从第 2 行至文件末尾
tail -c 45 big.txt 显示最后一些字符
搜索文本文件或进程中的内容grep
grep 关键字 small.txt 把包含关键字的行展示出来
grep –n 关键字 small.txt 把包含关键字的行展示出来且加上行号
grep –i 关键字 small.txt 把包含关键字的行展示出来,搜索时忽略大小写
grep –v 关键字 small.txt 把不包含关键字的行展示出来
ps -ef | grep 关 键字 查找指定的进程信息,包含grep进程
ps -ef | grep 关键字 | grep -v “grep” 查找指定的进程信息,不包含grep进程
ps -ef|grep -c sshd 查找进程个数
grep lang anaconda-ks.cfg –color 高亮显示查询结果
$ grep lang anaconda-ks.cfg –color -A1 -B1 高亮显示查询结果,并且显示上一行和下一个
echo命令
语法:echo “字符串” 展示文本,类似java中输出打印
echo “字符串” >文件名 将字符串写到文件中(覆盖文件中内容)
echo “字符串” >> 文件名 将字符串写到文件中(不覆盖文件中内容)
cat 不存在的目录 &>> error.log 将命令的失败结果 追加 error.log文件的后面
管道 |
管道 | 实际上就是过滤器
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
示例
$ ls --help | more
分页查询帮助信息
$ ps –ef | grep java
查询名称中包含java的进程
$ ifconfig | more
$ cat index.html | more
$ ps –ef | grep aio
awk 文本分析命令
过滤和切割
需求 1
$ cat a.txt | awk '/zhang|li/'
需求2
$ cat a.txt | awk -F ' ' '{print $1,$2,$3,$4}'
按照指定方式展示
需求
$ cat a.txt | awk -F ' ' '{OFS="==="}{print $1,$2,$3,$4}'
转大小写
$ cat a.txt | awk -F ' ' 'print toupper($1),$2,$3,$4}'
计算
$ cat a2.txt | awk -F ' ' 'BEGIN{cnt=0}{cnt=cnt+$4}END{print cnt}'
使用NR统计行数
$ cat a2.txt | awk -F ' ' 'BEGIN{cnt=0}{cnt=cnt+$4}END{print cnt,NR}'
软连接ln
类似windows中的快捷方式
语法
ln -s 目标文件路径 快捷方式路径
目标文件路径必须使用绝对路径,或者相对于快捷方式所在路径
$ ln -s /etc/a.txt a.txt.link //把etc下面的a.txt放到当前目录下,快捷名叫a.txt.link
搜索查找find
find . -name “*.txt” 查找当前目录及其子目录下所有后缀名名是txt的文件
find . -ctime -1 查找当前目录及其子目录下所有最近 1天内更新过的文件
find / -name ‘czbk’ /代表是全盘搜索,也可以指定目录搜索
压缩与解压缩
gzip与ungzip
gizp a.txt 压缩文件,后缀名是.gz
gzip * 压缩当前目录下所有文件
gzip -dv * 解压文件并列出详细信息
gunzip 压缩文件 解压
tar
tar -cvf 打包文件名 文件名 打包文件并指定打包之后的文件名(仅打包不压缩) ,后缀名.tar
tar -zcvf 压缩文件名 文件名/文件夹名 压缩文件或者文件夹并指定压缩文件名(打包压缩)
tar -ztvf 压缩文件名 查看压缩文件中有哪些文件
tar –zxvf 压缩文件名 解压
参数选项:
-c 建立新的压缩文件
-v 显示指令执行过程
-f<备份文件> 指定压缩文件
-z 通过gzip指令处理压缩文件。
-t 列出压缩文件中的内容
-x 表示解压
zip与unzip
zip -q -r 压缩文件名 文件/文件夹 压缩,压缩后的后缀名是.zip
unzip -l 压缩文件名 查看这个压缩文件中有多少内容
unzip -d 指定文件夹 压缩文件 解压
bzip2与bunzip2
使用新的压缩算法,压缩后的文件比原来的要小,但是花费时间变长。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
bzip2 a.txt 压缩,后缀名.bz2
bunzip2 -v a.bz2 解压并显示详细信息
网络管理
ifconfig
ifconfig 显示激活的网卡信息
ifconfig ens37 down 关闭网卡,不用测试
ifconfig ens37 up 启动网卡
ifconfig ens37 192.168.23.199 配置ip地址
ifconfig ens37 192.168.23.133 netmask 255.255.255.0 配置ip地址和子网掩码
ping
ping www.baidu.com 检测是否与百度连通
ping -c 2 www.baidu.com 指定接收包的次数
netstat
netstat –a 显示详细的连接状况
netstat –i 显示网卡列表
磁盘管理
lsblk
类似windows下的 DiskGenius
df 显示整个硬盘使用情况
df 文 件夹 显示文件夹使用情况
df –total 显示所有的信息
df -h 将结果变成KB,MB,GB形式展示,利于阅读
https://gitee.com/haoyongliang/resources/raw/master/images/linux/cengos7/1590851504042.png)
语法:lsblk [参数选项] 列出硬盘的使用情况
理解为:list block 的英文缩写。
lsblk 列出硬盘的使用情况
lsblk –f 显示系统信息
df
类似windows中的磁盘
df 显示整个硬盘使用情况
df 文 件夹 显示文件夹使用情况
df –total 显示所有的信息
df -h 将结果变成KB,MB,GB形式展示,利于阅读
mount
用于挂载Linux系统外的设备
挂载点
挂载就是将某个未使用的空间或可移动设备的存储空间指向一个目录
注意事项
注意:“挂载点”的目录需要以下几个要求:
目录事先存在,可以用mkdir命令新建目录;
挂载点目录不可被其他进程使用到;
挂载点下原有文件将被隐藏。
命令
mkdir -p mnt/cdrom 创建文件夹(也是创建一个挂载点)
mount -t auto /dev/cdrom /mnt/cdrom aa 开始挂载,将/dev/cdrom /mnt/cdrom
umount ./mnt/cdrom/ 卸载
yum
类似windows中的软件管家,并且可以解决依赖问题,比如安装A软件需要B软件,会自动安装B软件。一般软件安装时会提供对应的yum命令,能看懂即可
常用命令
1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install
4.仅更新指定的软件命令:yum update
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove
7.查找软件包 命令:yum search
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
案例:
yum -y install tree
tree
yum remove tree
yum list tom* 找出tom为开头的软件名称
修改下载源
默认的下载源在国外,比较慢,所以建议修改成国内的
yum -y install wget
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum search tomcat
yum和rpm的区别
最初,ReadHat linux发行版专门用来管理各项套件的程序
区别,rpm只能安装已经下载到本地机器上的rpm包
防火墙端口开放
firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口
firewall-cmd --reload # 配置立即生效
查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports