Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds )在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
开机会启动许多程序。它们在Windows叫做"服务" ( service ),在Linux就叫做""守护进程" ( daemon ) 。
登陆方式:
最高权限账户为root,可以操作一切
sync #将数据同步到硬盘中,防止关机后数据丢失 shutdown shutdown -h 10 # 十分钟后关机 shutdown -h now # 立刻关机 shutdown -h 20:56 # 指定时间关机 reboot # 重启 halt # 关闭系统 等价于 shutdown -h now 、 poweroff
1、一切皆文件
2、根目录 “ / ” ,所有的文件都挂载在这个节点下
以下是对这些目录的解释:
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot: (勿动)
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
/lib:(勿动)
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:
内核源代码默认的放置目录。
/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
/www : 存放服务器网站相关资源,环境,项目(宝塔创建的?)
Tab 快速补充当前页存在的目录、文件的名称
Ctrl+C 强制退出当前命令
Ctrl+Z 撤回命令
clear # 清除 tar -zxvf xxx.tar # j
mkdir 目录名 # 创建目录 mkdir -p test1/test2/test3 # 创建层级目录 rmdir xx # 移除目录(只能是空的文件夹) rmdir -p test1/test2 # 强制删除 cp 文件 目标地址 # 复制拷贝 重复会询问覆盖/放弃
rm 移除文件或目录
rm -f # 忽略不存在的文件,不出现警告,强制删除 rm -r # 递归删除目录 rm -i # 互动询问是否删除
mv 移动文件/重命名
-f #强制 -u # 只替换已经更新过的文件 mv 文件 地址 # 移动 mv 文件名1 文件名2 #重命名
切换 cd
绝对路劲以 / 开头,相对路径 ../路径
在A,去D:
cd D
cd ./D
cd /A/D
cd ../A/D
cd # 切换目录命名 cd .. # 返回上一级 ./ # 当前目录 cd ~ # 回到当前用户目录
列出目录: ls
ls ls -a #查看全部文件,包括隐藏文件 ls -l #列出所有文件,包括文件属性和权限,没有隐藏文件 ls -al # 组合
显示当前路径 pwd
pwd
第一个字符:
接下来以3个字符为一组,均为【rwx】组合:【r】可读,【w】可写,【x】可执行,没有会以【-】代替
属主:谁创建的
属组:归于那个用户组
修改基本属性
1、chgrp:更改文件属组
chgrp -R 属组名 文件名
-R∶递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown: 更改文件属主,也可同时更改属组
chown -R 属主名 文件名 chown -R 属主名 : 属组名 文件名
3、chmod :更改文件9个属性
chmod -R xyz 文件或目录
r:4 w:2 x:1 可读可写不可执行: rw- 6 可读可写可执行: rwx 7 chmod 777 文件名
cat :由第一行开始显示文件内容
tac : 从最后一行开始显示
nl :显示时顺道输出行号
more :一页页显示文件内容 空格翻页,回车向下看一行、:f 显示当前行号
less :于more相似,可以往前翻页 空格翻页、上下键翻页,回车下一行、【q】结束、【/】 向下查找、【?】向上查找、【n/N】结合查找上下跳转
head :只看头几行
tail : 只看尾巴几行
ifconfig:查看网络配置
硬链接:类似拷贝,源文件删除,硬链接还能访问,可用于重要文件的安全保护
软连接:类似Window快捷方式,
创链接:
ln 源文件 链接 # 硬链接 ln -s 源文件 链接 # 软链接
touch
创建文件命令
echo
向文件中输入字符串
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls redis www [root@iZf8z25xnm9ajwj0x1efp9Z home]# touch test1 [root@iZf8z25xnm9ajwj0x1efp9Z home]# ls redis test1 www [root@iZf8z25xnm9ajwj0x1efp9Z home]# ln test1 t2 [root@iZf8z25xnm9ajwj0x1efp9Z home]# ls redis t2 test1 www [root@iZf8z25xnm9ajwj0x1efp9Z home]# ln -s test1 t3 [root@iZf8z25xnm9ajwj0x1efp9Z home]# ls redis t2 t3 test1 www [root@iZf8z25xnm9ajwj0x1efp9Z home]# ls -l total 8 drwx------ 2 redis redis 4096 Jan 27 17:22 redis -rw-r--r-- 2 root root 0 Jan 29 13:58 t2 lrwxrwxrwx 1 root root 5 Jan 29 13:59 t3 -> test1 -rw-r--r-- 2 root root 0 Jan 29 13:58 test1 drwx------ 3 www www 4096 Jan 27 17:21 www [root@iZf8z25xnm9ajwj0x1efp9Z home]# echo "hello world" >>test1 [root@iZf8z25xnm9ajwj0x1efp9Z home]# cat test1 hello world [root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t2 hello world [root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t3 hello world [root@iZf8z25xnm9ajwj0x1efp9Z home]#
删除测试:
[root@iZf8z25xnm9ajwj0x1efp9Z home]# rm -rf test1 [root@iZf8z25xnm9ajwj0x1efp9Z home]# ls redis t2 t3 www [root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t2 hello world [root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t3 cat: t3: No such file or directory [root@iZf8z25xnm9ajwj0x1efp9Z home]#
基本上viwvim共分为三种模式,分别是命令模式(Command mode),输入模式(lnsert mode )和底线命令模式(Lastline mode )。这三种模式的作用分别是∶
vim 文件 # 如果存在则打开编辑,如果不存在则新建
命令模式
输入 vim test.txt 刚进入时处于命令模式:
输入模式
底线命令模式
h 或 向左箭头键(←) | 光标向左移动一个字符 |
---|---|
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n< space> | 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个档案的第一行,相当于 1G 啊!(常用) |
n< Enter> | n 为数字。光标向下移动 n 行(常用) |
搜索替换 | |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
删除、复制与粘贴 | |
---|---|
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
nx | n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用) |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据,例如向下删除 10 行,[ 10cj ] |
u | 复原前一个动作。(常用) |
[Ctrl]+r | 重做上一个动作。(常用) |
useradd
useradd -选项 用户名
userdel
userdel -选项 用户名
usermod 修改用户
usermod -d 用户组(/home/www) 用户名 # 修改用户的所属组
su 切换用户
[root@iZf8z25xnm9ajwj0x1efp9Z home]# useradd -m yzxtest [root@iZf8z25xnm9ajwj0x1efp9Z home]# ls redis test.txt www yzxtest [root@iZf8z25xnm9ajwj0x1efp9Z home]# su yzxtest [yzxtest@iZf8z25xnm9ajwj0x1efp9Z home]$ [yzxtest@hostname0yang root]$ exit exit [root@hostname0yang ~]#
普通用户是 $ 符号,# 是超级用户、
passwd 密码配置
注意Liunx输入密码时不会显示
root用户:
[root@hostname0yang home]# passwd yzxtest # 修改 yzxtest 用户的面码 Changing password for user yzxtest. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully. [root@hostname0yang home]#
普通用户:
[yzxtest@hostname0yang ~]$ passwd # 修改密码 Changing password for user yzxtest. Changing password for yzxtest. (current) UNIX password: # 这里输入现在的秘密 New password: #输入新密码 BAD PASSWORD: The password is the same as the old one # 新密码与原密码一样。驳回 New password: #输入新密码 Retype new password: #再次输入新密码 passwd: all authentication tokens updated successfully. # 成功 [yzxtest@hostname0yang ~]$
锁定账户
锁定之后账户被冻结,不能登入系统
passwd -l 用户名 passwd -d 用户名 # 冻结的同时清除密码
拓展:文件 /etc/passwd
用户名:口令(密码,不可见):用户标识号:组标识号:注释性描述:主目录:登录shell
登录口令:真正的密码加密后放在 /etc/shadow 文件中,保证安全性
修改主机名称
hostname 名称 # 重启后即可更新
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维、root)。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
创建一个用户组
[root@hostname0yang home]# groupadd group1 # 创建 [root@hostname0yang home]# cat /etc/group #查看 root:x:0: bin:x:1: daemon:x:2: ... #这里省略 yzxtest:x:1003: group1:x:1004: [root@hostname0yang home]#
groupadd -g 5200 group1 # 指定id ,不指定时自增1
删除用户组
groupdel 组名
修改用户组的权限信息
groupmod -g 新id -n 新名字 组名
切换用户组
$ newgrp 组名
df (列出文件系统整体的磁盘使用量) du(检测磁盘空间使用量)
检测根目录下每个目录所占大小
Mac 或者想使用Linux挂载我们的一些本地磁盘或者文件!
挂载:mount
卸载:umount
umount -f 挂载位置 # -f强制卸载
ps 查看当前系统中正在执行的各种进程的信息
ps -aux|grep mysql # 查询关于mysql相关的进程 # | 在Liunx中是管道符,A|B 是指A执行的结果作为B的参数 # grep 查找响应字符串
ps -ef|grep mysql pstree -pu -p 显示父id -u 显示用户组
kill 杀死进程
kill -9 进程的id #
安装有3钟方式:rpm、解压缩、yum在线安装
找到jdk的rpm ,没有的下载后用Xftp传输过来
rpm -ivh xxx.rpm #安装 rpm -qa|grep jdk # 查询信息 rpm -e --nodeps 上面的信息 # 卸载环境
配置环境变量 /etc/profile
export JAVA_HOME=/opt/module/jdk1.8.0_301 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile # 刷新使配置生效
检测
[root@hostname0yang /]# java -version java version "1.8.0_301" Java(TM) SE Runtime Environment (build 1.8.0_301-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode) [root@hostname0yang /]#
#开启防火墙端口 firewall -cmd --zone=public --add-port=xxx/tcp --permanent #重启防火墙 systemctl restart firewalld.service #查看开放的端口 firewall-cmd --list-ports
略
yum 在线安装
yum -y install yum源