Linux
cd
cd /
切换到系统根目录
cd usr
切换到该层目录下usr目录
cd ..
切换到上一层目录
cd ~
切换到用户主目录
cd -
切换到上一个所在的目录
mkdir
mkdir 目录名
mkdir ./目录名
在该层创建(目录名)
mkdir 目录名1/目录名2
在(目录名1)下创建(目录名2)
mkdir ../目录名
在上一层目录创建(目录名)
mkdir /root/目录名
在root下创建(目录名)
mkdir .目录名
创建隐藏目录
查看
ls
查看该层所有目录
ls -l
ll
查看该层所有目录(包括详细信息)
ls -al
查看该层所有目录(包括隐藏目录)
查找
cd /root
find -name "*" 在/root目录下,查询所有的文件和目录
cd /
find -name "abc*" 在/根目录下(包括子目录),查询以abc开头的目录或文件
cd /
find -name "cc?" 在/根目录下(包括子目录),查询以cc开头的三个字符的目录或文件
移动、重命名
mv /root/aaa /root/abc 在/root目录下,将aaa目录改为abc目录
touch aaa 使用touch创建一个空文件夹
mv aaa xyz 将aaa文件改名为xyz文件
mv /root/xyz /xyz
mv /root/xyz / 将root目录下的xyz文件移动到系统的根目录下
复制
cd /root
cp /aaa/bbb ccc 当前是root目录,复制/aaa/bbb文件到root目录下的ccc目录中
cp /etc/c* /root/bbb 将/etc目录下所有c开头的文件复制到root目录下的bbb目录下
cp -r /etc/h* /root/eee 将/etc目录下所有h开头的文件(和目录)复制到root目录下的eee目录下
删除
cd /eee
rm aaa bbb 同时删除eee目录下aaa文件和bbb文件
cd /root/bbb
rm csh.* 在/root/bbb目录下,删除所有文件名csh,任意拓展名的文件
cd /root/eee
rm -rf httpd 在/root/eee目录下,递归删除httpd目录和所有子目录的文件,不进行确认,强制删除
查看所有命令
man mkdir
退出linux控制台
exit
logout
文件操作命令
cat a.java 查看当前目录下a.java文件的全部内容
more a.java 查看(分页查看)当前目录下a.java文件的全部内容(不能往前翻)
head a.java 查看当前目录下a.java文件的前十行
head -n 20 a.java 查看当前目录下a.java文件的前二十行
tail a.java 查看当前目录下a.java文件的后十行
tail -n 20 a.java 查看当前目录下a.java文件的后二十行
less -N a.java 查看当前目录下a.java文件的全部内容(显示行号)
vim文本编辑器
vim a.java 进入文件a.java(如果没有,则创建,进入)
yy 复制光标所在行
p 粘贴所复制的内容
dd 删除光标所在行
u 回退一次
/字符串 在当前文本文件中搜索字符串
wq 保存并退出
q! 强制退出
压缩与解压命令
tar
c (create) 压缩文件(压缩)
v (verbose) 详细显示处理的文件
z (gzip,ungzip) 用gzip对文档进行压缩或解压
f (file) 指定文档
x (extract,get) 从文档展开文件(解压)
C (directory) 转到指定的目录
.tar 打包
.gz 压缩
.tar.gz 即打包又压缩
tar -zxcvf + 打包的文件名 + 被打包的文件名1 被打包的文件名2 ...
查看自己当前所在的位置
pwd 查看自己当前所在的位置
查看进程
ps
-a 所有用户启动的进程
-u 所有用户启动的进程的详细信息
-x 所有用户所有进程的详细信息
ps -aux
终止进程
kill 线程id 终止相对应的进程
kill -9 线程id 强行终止相对应的进程
查询内容
grep
-n (line-number) 显示行号
-v (invert-match) 选择不匹配的行
-i (ignore-case) 忽略大小写
grep + 要查找的内容 + 文件名 + -n
-v
-i
管道命令(重定向命令)
命令1 | 命令2 命令1的执行结果作为命令2的条件输入
和其它命令结合使用
例如:
ls -al | grep hello 显示所有文件详细信息,查询hello字符串
ps -aux | grep world 显示linux中所有进程的详细信息,查询world字符串
停止、关闭、重启虚拟机
shutdown now 立即关机(需要指定参数)
poweroff 同shutdown now(重点)
reboot 重启系统
查看防火墙状态
systemctl status firewalld.service
关闭防火墙
systemctl stop firewalld.service
权限操作
添加权限(+)
chmod u+x demo.java 改变demo.java的权限,给属主添加可运行权限
chmod g+rx demo.java 改变demo.java的权限,给属组添加可读可运行权限
chmod a+rwx demo.java
chmod 777 demo.java 改变demo.java的权限,给所有用户添加可读可写可运行权限
修改权限(=)
chmod u=rwx demo.java 改变demo.java的权限,将属主的权限修改为可读可写可运行
chmod g=wx demo.java 改变demo.java的权限,将属组的权限修改为可写可运行
chmod o=x demo.java 改变demo.java的权限,将其他用户的权限修改为可运行
删除权限(-)
chmod a-rwx demo.java
chmod 000 demeo.java 改变demo.java的权限,将所有用户的权限修改为不可读,不可写,不可运行
chmod u-w,g-w demo.java 改变demo.java的权限,属主删掉写权限,属组删掉写权限
主机名配置
hostname 查看当前主机名
hostname 新的主机名 修改主机名(不是永久修改,重启则失效)
hostnamectl set-hostname 新的主机名 修改主机名(永久的)
服务管理
systemctl list-units *.service 显示已经启动的所有服务
systemctl start crond 开启服务
systemctl stop crond 关闭服务
systemctl status crond 显示服务当前状态
systemctl restart crond 重启服务(先关闭,再开启)
systemctl reload crond 重新加载服务(相当于读取新的配置)
systemctl enable crond 设置服务为开机自启动
systemctl disable crond 取消服务开机自启动
linux常用服务
firewalld 防火墙服务(d-服务的意思)
systemctl start sshd 启动服务
systemctl stop sshd 关闭服务
systemctl restart sshd 重启
systemctl status sshd 查看进程状态
网络管理
netstat 显示网络连接、路由表
参数
-n (numberic) 显示进程的ip地址和端口号
-t (tcp) 只显示使用tcp协议的进程
-l (listening) 只显示正在网络监听的进程(默认选项)
-p (program) 显示程序的名字和进程id
-r (route) 显示路由表【重点】
网卡配置
设置ip分为两种类型
dhcp 动态获取ip
static 配置静态ip
关闭网卡
1. 修改 /etc/sysconfig/network-scripts/ifcfg-enp0s3,onboot参数设置为“no”
2.重启网络 systemctl restart network
3.运行命令 ping www.itcast.cn,查看外网能否连接
4.按原步骤,激活网卡
配置静态ip地址
1.运行 netstat -r,显示路由表(查看网关地址)
2.修改 /etc/sysconfig/network-scripts/ifcfg-enp0s8
BOOTPROTO=static
IPADDR=192.168.56.102
GATEWAY=192.168.56.0
NETMASK=255.255.255.0
DNS1=114.114.114.114
克隆虚拟机
1.关闭虚拟机
2.在VirtualBox操作界面,右键虚拟机,复制
3.设置新虚拟电脑名称,继续
4.副本类型选择"完全复制",复制
【注意】如果克隆是静态ip,要修改ip,uuid
加密
单向加密:MD5 sha
双向加密:
对称性加密 AES DES
非对称性加密 公钥 私钥
rsa
椭圆加密
ssh免密登录
SSH两种验证机制
直接输入用户名和密码的方式 ssh username@ip
免密登录,直接登录,不需要输入用户名和密码
ssh-keygen
生成公钥和私钥,生成的公钥和私钥在/root/.ssh目录下。id_rsa是私钥,id_rsa.pub是公钥
ssh-copy-id
ssh-copy-id root@192.168.56.102
将新生成的密钥(公钥)发送到指定服务器。在服务器的/root/.ssh/autorized_keys文件中。
ssh root@192.168.56.102
不需要输入密码了
用户管理命令
useradd 创建一个新用户或更新默认新用户信息,创建好的用户信息在`/etc/passwd`文件中
参数
-m (create-home) 创建用户的同时,在/home下创建用户的主目录[默认参数]
-g (gid) 创建用户的同时,指定用户所在的组
未指定组名:默认就在一个与用户同名的组中。组名与用户名相同。
例如:
useradd -m Jack 创建用户Jack,并且创建用户主目录
useradd Tom -g Jack 创建用户Tom,把用户放在Jack这个组中,并且创建Tom主目录
more /etc/passwd 查看/etc/passwd文件,可以看到创建的用户信息
passwd 更新用户密码
例如:
passwd Jack 将Jack的密码为abc123
如果提示无效的密码,忽略即可,再次输入同一个密码,修改成功
在Linux控制台先logout登出。以Jack登录,注:用户名和密码大小写是敏感的
whoami 查看自己的用户名
su 切换用户
userdel 删除用户账户和相关文件
参数: -r (remove) 删除用户的同时,也删除它的主目录
例如:
userdel Tom -r
使用root删除用户Tom,同时删除Tom的主目录。(如果Tom已经登录,则删除失败)
在/home目录下已经找不到Tom主目录了
usermod 修改用户帐户
参数: -l (login,NEW_LOGIN) 指定修改后的新用户名
-g (gid) 修改用户的主组
-G (groups) 修改用户的从组(附属组),可以有多个从组
例如:
usermod -l Rose Jack 修改Jack的登录名为Rose
确认Jack这个用户不在线,如果在线需要将Jack登出
用户组管理命令
groupadd 创建一个新组 在`/etc/group`文件中,包含了所有创建组的信息
gpasswd 将用户从附属组(从组)中删除
参数:
GROUP 指定要删除的组名
-d (delete USER) 将用户从附属组(从组)中删除
groupmod 修改组的名字
参数: -n (new-name) 将组名改成新的组名
groupdel 删除一个组
软件安装命令[重点]
rpm(离线安装) 对linux中已经安装的软件进行管理
参数: -v (verbose) 提供更多的详细信息输出
-q 查询当前系统是否安装了指定的软件
-a 查询所有已经安装的软件
-h 在安装的过程中显示进度条 # 50%
-i (install) 安装指定的软件
例子:rpm -qa 查看所有安装的软件
rpm -qa | grep mysql 查看是否安装mysql
rpm -ivh 软件名 安装指定的软件
yum(在线安装) 从指定的服务器自动下载包并且安装,可以自动处理依赖关系,一次安装所有依赖的软件包
参数:
-y 所有的提问都回答yes
命令
install 安装软件
remove 卸载软件
例子:yum –y install gcc-c++ 安装gcc-c++ 这个安装包,安装的提示全部回答yes