man 命令名称 :可以用来查看这个命令可以用的参数,不用死记硬背,知道常用的就行了,需要的时候会去查。和 --help类似。
一,文件相关的。
mkdir filename : 创建一个文件。
rm filename : 删除一个文件。
rmdir directoryname : 删除一个空文件夹。
rm -rf /** : 删库跑路了。可以删除一个文件夹及其子目录,且不提示。
find filename :它会直接查出这个名字的文件和文件夹,并且显示出这个文件夹下的子文件信息。
find . -name filename :它只会返回这个名字的文件个文件夹,不会显示子文件夹的信息。
find . -type f : 将当前目录及子目录的文件查出来。
find . -type d : 将当前目录及子目录的文件夹查找出来。
whereis filename : whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
which filename : 在PATH中查找。
echo $PATH : 查看PATH环境变量的信息。
mv 原来的文件或者文件夹的名称 新的文件夹或者文件夹的名称 :用来修改文件或者文件夹的名称。
mv 原来的文件或者文件夹的路径 新的文件夹或者文件夹的路径 :用来移动文件的位置。需要注意的是,文件路径要存在。
cp 原来文件的路径 新文件的路径 : 将文件或者文件夹拷贝到另一个位置。
cat /filepath : 正序显示这个文件信息。 -b 可以显示对应的行号。
tac /filename : 倒序显示这个文件的信息。
more /filename : 一页一页的显示文件内容,空格翻页,不过只能向下翻页,也不能向上移动。
less /filename : 可以向上PgUp,也可以向下翻页 PgDn Ctry+F 向下翻一页,Ctry+B向下翻一页。
less -N /filename : 可以显示对应的行号。
head -n 要显示的行数 filename : 查看文件第一行到要显示的行数,默认显示10行。-c显示字符
tail -n 要显示的行数 filename : 查看最后一行到倒数第 "要显示的行数"的内容,默认显示10行。
tail -n +20 /home/huchuan.txt : 查看huchuan.txt这个文件从20行至文件末尾。
ln /home/huchuan.txt /root : 硬连接,它会将/home/huchuan.txt这个文件保存一份工作副本到/root/huchuan.txt,对/home/huchuan.txt这个文件的任何修改都会同步到root下的那个工作副本。如果不小心删除了/home/huchuan.txt这个文件,那/root下的工作副本不会删除,这个是用来防止一些重要文件被误删的情况。需要注意的是,硬连接不能作用于文件夹。
ln -s /home/huchuan /root/huchuan : 软连接,这种方式相当于创建了一个快捷方式,在root下的huchuan这个文件保存的是指向原来文件的路径。-b删除,覆盖原来的连接。
硬连接和软连接的区别 : 1,硬连接的原文件要存在,软连接不必。
2,硬链接不能作用于不同的文件系统,两个文件要在相同的文件系统下。硬链接可以。
3,硬链接不能作用于文件夹。软连接可以。
4,硬连接的原文件删除,硬连接产生的文件副本不会删除,还是删除前的内容。软连接的原文件删除后就不可以用了(跟Windows的快捷方式原理相同的嘛)
vim /filename : 编辑文件,如果文件不存在的话,会创建这个文件。
vi /filename : 也是编辑文件的。
chown -R 属主名:属组名 /home/lisi/ : 将lisi这个文件夹及其子文件的属主和属组更改成新的属主和属组。
chgrp -R 属组名 /home/huchuan : 更改huchuan这个文件的属组,和chown类似,不过这个只会更改文件对应的属组。
chmod -777 /home/huchuan : 设置一个文件或者文件夹的属主,属组,其它用户的操作权限。r 4 : w 2 :x 1 。读写执行权限。
二,用户及其权限。
私有组群和标准组群
私有族群
当创建一个新的用户账户时, 如果没有指定该用户属于哪一个组群, 那么Linux就会创建一个和该用户同名的组群, 这个组群就是私有组群, 在这个私有组群中只包含这个用户
私有组群可以转换成标准组群, 当把其他用户加入到该组群中, 那么这个私有组群就变成了标准组群。
标准族群
标准组群也称为普通组群, 标准组群可以包含多个用户账户。 如果使用标准组群, 那么在创建一个新的用户账户时, 应该指定该用户属于哪一个组群。
主要组群和次要组群
主要组群
当一个用户账户属于多个组群成员时, 登录后所属的组群便是主要组群, 其他的组群是次要组群。 一个用户账户只能属于一个主要组群
次要组群
次要组群也称为附加组群, 一个用户账户可以属于多个次要组群
/etc/group:用户组账号文件
该文件为文本文件,该文件包含用户组的所有信息,该文件对任何用户均可读
在/etc/group文件中, 每一行代表一个用户组的信息,每行的字符之间使用:分隔,共4个字段
用户组名称:用户组密码:组标识号:组内用户列表
在/etc/shadow 储存用户名和加密后的密码
useradd username : 创建一个用户,默认会创建一个相同名称的用户组,不指定用户组的话。
adduser/useradd -g 要添加到的用户组的名称 username : 向指定的用户组添加用户。
userdel username : 删除指定的用户。
usermod -g 新用户组的名称 用户名 : 将一个用户从原来的组移动到新的组,会把用户从原来的组中移除。
usermod -G 新的用户组的名称 username : 向一个用户组中添加一个新的用户,相当于加入了附加组,默认组还是原来的组。
usermod -l 新的用户名 原来的用户名 : 用来修改用户名,在不影响用户原来的组,说明等信息的情况下。-c 修改用户的描述信息。
passwd :修改当前登录的用户的密码。
id username : 显示指定用户的组群的信息。
groupadd groupname : 创建一个新的用户组。
groupadd -g groupID groupname : 创建新的组并指定组的id。
groupdel groupname : 删除指定的用户组。
groups username : 查看这个用户是属于那个用户组的。
三,其它常用命令。
su : 变更为root用户,需要输入root用户的密码。这个命令有写问题 ,推荐使用su -。
su - username :切换为指定的用户,需要输入指定登录的用户的密码。
------------------------------------------------------
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。
------------------------------------------------------
historty : 显示当前用户的历史命令。
df -h : 显示系统下边的磁盘信息,-h表示磁盘大小以M,G为单位进行显示。
du -sh :显示当前目录的文件大小,-s 是所有文件总和的大小,-h是以M,G为单位进行显示。
ps -au 用户名 : 显示当前或者指定用户下的所有进程。
ps -aux : 查看当前系统所有用户的所有进程及详细信息。
ps -ef : 这个也是查看当前系统的所有进程,和ps -aux区别不是很大,它会显示父进程的信息。不过我更常用pstree -a来显示进程和它父进程的关系。(图形)
pstree -auc : 查看当前系统的进程,以及对应的父进程信息,以图形的形式显示。
-a 显示该进程的完整指令及参数, 如果是被记忆体置换出去的进程则会加上括号
-c 如果有重覆的进程名, 则分开列出(预设值是会在前面加上 *)
-u 显示进程对应的用户名。
ps -aux | grep "进程名称" : 根据进程名称过滤掉其它的进程,只查询对应名称的进程。
pa -aux | grep "_进程名称*" :查找对应进程名称开头并,且进程名称前还有一个字符的进程。
kill 进程号 : 根据进程号杀死一个进程。
kill -KILL 进程号 : 强制杀死一个进程。比如我的部署在linux上的一个java程序出现死循环了,可以强制杀死它。
kill -9 进程号 :彻底杀死一个进程。
killall -9 进程名称 :还是杀死一个进程,与kill不同的是,kill是根据进程id来删除的进程,而killall可以直接根据进程名称来杀死进程。
ifconfig : 列出当前系统的ip地址,和windows系统中的ipconfig类似。
----------------查询参数解释---------------------------------------------------
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
-------------------------------------------------------------------
cat /etc/profile : 修改linux环境变量,和windows配置环境变量类似,需要搭配source /etc/profile命令使用。刷新当前系统的环境变量信息。
source /etc/profile :刷新当前系统的环境变量信息 。
systemctl stop firewalld : 停止当前相同的防火墙,没报错就代表执行成功,可以查看防火墙状态。
systemctl start firewalld : 启动当前系统的防火墙,没报错就代表执行成功,可以查看防火墙状态。
systemctl status firewalld :查看当前防火墙状态。
操作防火墙状态可以在命令前边添加sudo,这是系统用户可以让普通用户执行的一些命令。不想su那样切换成系统用户还得告诉他密码。
firewall-cmd --list-all : 显示防火墙的信息。
firewall-cmd --list-ports : 显示防火墙的端口信息。
systemctl restart firewalld : 重启防火墙。
firewall-cmd --noze=public --add-port=8080/tcp -permanment : 开放8080端口。
--noze : 作用域
--add-port : 要开放的端口及使用的协议
-permanment : 永久生效,不加的话服务器重启就会失效。
cat /etc/redhat-release : 查看当前系统的版本。