。。。省略
诞生日期:1991年
**开发者:**林纳斯·托瓦茨
Linux****特点:免费,开源
Linux常用发行版本
RedHat系列:
收费。(RHET收费;Fedora Core面向桌面版本免费)采用基于RPM包的yum包管理方式,包分发方式是编译好的二进制文件。RHET性能稳定,适合服务器开发;Fedora Core性能较差,适合桌面应用Debian系列:
…。Ubuntu系列:
界面友好,容易上手,对硬件支持较为全面,适合桌面操作系统的Linux版本。这就是根目录。对你的电脑来说,有且只有一个根目录。
这是系统管理员(root user)的目录。请小心使用root帐号。
系统启动时需要的执行文件(二进制),命令集合地。
这里主要存放了系统配置方面的文件;操作系统的配置文件目录(防火墙、启动项)。
这里主要存放与设备(包括外设)有关的文件(unix和linux系统均把设备当成文件)。想连线打印机吗?系统就是从这个目录开始工作的。另外还有一些包括磁盘驱动、USB驱动等都放在这个目录。
这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。
这是临时目录。对于某些程序来说,有些文件被用了一次两次之后,就不会再被用到,像这样的文件就放在这里。有些linux系统会定期自动对这个目录进行清理,因此,千万不要把重要的数据放在这里。
在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如像游戏阿,一些打印工具等等。/usr目录包含了许多子目录:/usr/bin目录用于存放程序;/usr/share用于存放一些共享的数据,比如音乐文件或者图标等等;/usr/lib目录用于存放那些不能直接运行的,但却是许多程序运行所必需的一些函数库文件。
这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。
这里主要存放那些手动安装的软件。
有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。
查看当前目录路径
[root@linux /]# cd /bdqn/java [root@linux java]# pwd /bdqn/java切换目录
#上一级目录 [root@linux java]# cd .. #相对路径下的下一级目录 [root@linux bdqn]# cd java #绝对路径 切换到任意路径 [root@linux java]# cd /bdqn/java #切换到家目录,只要是新建了用户都会在/home文件夹中创建用户文件夹 [root@linux ~]# cd /home [root@linux home]# ls wuhan #切换到根目录;所有用户共享的目录 [root@linux java]# cd / #切换到用户主目录 #如果是root用户,cd ~ 相当于 cd /root #如果是普通用户,cd ~ 相当于cd /home/当前用户名 [root@linux /]# cd ~ls [选项] [目录名 | 列出相关目录下的所有目录和文件
查看目录下文件
-a 列出包括.开头的隐藏文件的所有文件-l 列出文件的详细信息
[root@linux wuhan]# ls [root@linux wuhan]# ls -a [root@linux wuhan]# ls -la以列的方式显示目录下的文件列表
[root@linux wuhan]# ls语法:mkdir [选项] 目录… | 创建新目录
创建文件目录
-p 递归创建目录,若父目录不存在则依次创建-m 自定义创建目录的权限
-v 显示创建目录的详细信息
##递归方式创建/demo/java/javaEE [root@linux /]# mkdir -p /demo/java/javaEE ##创建文件夹test,并且为其授权 [root@linux java]# mkdir -m 777 test语法:rm [选项] 文件 | 删除文件
删除文件或目录
-r 删除文件夹-f 删除不提示
-i 删除提示
–rf:删除文件或目录
##删除文件夹 [root@linux java]# rm -r javaEE ##删除文件(有提示) [root@linux java]# rm -i aa.txt rm: remove regular empty file `aa.txt'? y --显示结果 ##删除文件/目录(不提示) [root@linux java]# rm -rf test2 ##删除目录(目录中有子文件或文件夹):将会依次提示是否删除子文件或者文件夹 [root@linux java]# rm -r /demo语法:cp [选项] 源文件或目录 目录或多个源文件 | 将源文件复制至目标文件,或将多个源文件复制至目标目录
复制文件/目录
-r -R 递归复制该目录及其子目录内容 -p 连同档案属性一起复制过去 -f 不询问而强制复制 -s 生成快捷方式 -a 将档案的所有特性都一起复制 ## /demo中有文件,不能直接复制 [root@linux demo]# cp /demo /bdqn/java ##递归复制 [root@linux demo]# cp -r /demo /bdqn/java ## -f 针对于文件复制的时候,有重复的将不提示 [root@linux demo]# cp -f /demo/abc.txt /bdqn/java/abc.txt语法:rmdir [选项] 目录名称
删除空目录,如果该目录下非空则不能删除
rmdir 删除空目录
-v 显示执行过程
-p 递归删除空目录
##递归创建目录 [root@linux /]# mkdir -p /bdqn/java/javaEE ##递归删除空目录 [root@linux bdqn]# rmdir -p java/javaEE语法:mv [选项] 源文件或目录 目录或多个源文件 | 移动或重命名文件
移动文件(/目录)或修改文件名
-b 覆盖前做备份-f 如存在不询问而强制覆盖
-i 如存在则询问是否覆盖
##修改文件名 [root@linux demo]# mv abc.txt dfd.txt ##复制目录 [root@linux javaEE]# mv /demo /bdqn/java/javaEE语法:vi/vim 文件
vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底行命令模式(Last line mode)
:wq!保存并退出
:q!强制退出
:%s/要被替换的字符串/替换后的字符串/g
%代表通配符,不一定是开头/g代表全局匹配:set nu 添加行号; :set nonu 取消行号
全局显示行号:
##1.切换目录 [root@linux /]# cd /etc ##2.编辑文件并最后添加 [root@linux etc]# vi vimrc ##以下是linux vimrc文件最后几行截图 56 if &term=="xterm" 57 set t_Co=8 58 set t_Sb=^[[4%dm 59 set t_Sf=^[[3%dm 60 endif 61 :set nu ##此处添加 62 " Don't wake up system with blinking cursor: 63 " http://www.linuxpowertop.org/known.php 64 let &guicursor = &guicursor . ",a:blinkon0"语法:cat [-参数选项] 文件名称
查看文件
显示小文件内容: cat 文件名称创建并打开一个新的文件: cat >文件名称 ##创建并打开一个文件,输入文本内容 [root@linux demo]# cat>demo.txt ls dfds idfsdq ## Ctrl+C 结束输入 ##查看文件 [root@linux demo]# cat demo.txt语法:head [-参数] [文件]
查看文件开头内容,默认显示前10行
-n:用于设置显示文件开头 n行的内容 ##查看前3行内容 [root@linux test]# head -3 server.xml ##查看默认10行内容 [root@linux test]# head server.xml语法:tail[-参数] [文件]
查看文件尾部内容,默认显示后10行
-f:用于监视File文件的增长,文件内容更新后,页将动态显示-n:用于设置显示文件结尾 n行的内容 ##查看后3行内容 [root@linux test]# tail -3 server.xml ##查看默认后10行内容 [root@linux test]# tail server.xml语法:touch[-参数] [文件]
创建空文件 ##创建一个空文件 [root@linux test]# touch demo.txt [root@linux test]# ls abc.txt demo.txt server.xml ##创建多个空文件 [root@linux test]# touch demo1.txt demo2.txt [root@linux test]# ls abc.txt demo1.txt demo2.txt demo.txt server.xml ##创建多个空文件-通配符 [root@linux test]# touch {1..4}.txt [root@linux test]# ls 1.txt 2.txt 3.txt 4.txt abc.txt demo1.txt demo2.txt demo.txt server.xml 创建文件,并用stat查看文件的属性状态信息 ##创建一个空文件 [root@linux test]# touch demo.txt [root@linux test]# stat demo.txt ##以下内容是效果截图 File: `demo.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 1044618 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-04-29 11:26:12.863045034 +0800 Modify: 2019-04-29 11:26:12.863045034 +0800 Change: 2019-04-29 11:26:12.863045034 +0800改变文件的时间戳属性,可以产看文件的相关属性
##修改文件之后,可以产看文件属性状态 [root@linux test]# vi demo.txt [root@linux test]# touch demo.txt [root@linux test]# stat demo.txt语法:man[命令名称]
查询命令详细参数
##cd命令详情 [root@linux ssh]# man cd 空格:一页一页翻 enter:一行一行的翻 q:结束查看读:read;
写:write;
执行:execute
##目录权限描述 drwxr-xr-x. 3 root root 4096 Apr 29 11:01 demo drwxr-xr-xdrwxr-xr-x所属目录用户用户组其它缩写ugo权限描述读,写,执行读,执行读,执行二进制形式111101101十进制形式755 ##目录权限描述(除第一个 -以外,其它都一致) -rw-r--r--. 1 root root 31 Apr 29 11:12 demo2.txt语法:chmod [选项] [参数]
修改权限
-R:递归授权(只是针对目录)
-c:显示执行过程,但只返回更改的部分(了解)
-f:不显示错误信息
-v:显示执行过程(了解)
##对文件添加r权限(u代表用户) [root@linux java]# chmod u+r abc.txt ##对文件添加wx权限(g代表组) [root@linux java]# chmod g+wx abc.txt ##对目录递归添加rw权限(g代表组) [root@linux java]# chmod -R g+rw demo ##对目录递归添加rwx权限(u代表用户)rw权限(g代表组), [root@linux java]# chmod -R u+rwx,g+rwx demo ##对目录递归添加777权限 [root@linux java]# chmod 777 -R demo语法:chown [选项] [所有者]:[所属组] [文件名]
##把/opt/software下用户组改成wuhan用户组下面的wuhan用户 [root@linux /]# chown wuhan:wuhan /opt/software ##递归把/opt/software下用户组改成wuhan用户组下面的wuhan用户 [root@linux /]# chown -R wuhan:wuhan /opt/software语法:su [用户名] / su - [用户名]
说明:
su [用户名]切换用户是临时切换,当使用新用户时候,仍然使用原来用户的配置:如环境变量、系统设置等。 su - [用户名] 切换用户候,使用新用户的配置:如环境变量、系统设置等。语法:whoami
语法:groups
语法:id
[root@linux ~]# id语法:useradd [选项] [用户名]
选项值说明1-c添加一条注释性描述(了解)2-d指定用户主目录3-g指定用户所属的用户组4-u指定用户的用户号5默认直接添加用户 ##添加用户hh并指定用户UID [root@linux ~]# useradd -u 701 hh语法:passwd [选项] [参数]
选项值说明1-d删除密码,仅系统管理可用(了解)2-f强制执行(了解)3-k设置只有密码过期后才能更新(了解)4-l锁住密码(了解)5-s列举密码相关信息,仅管理员可用(了解)6-u解开已上锁账号(了解)添加用户之后,只有设置密码之后才能登录
##添加用户 [root@linux home]# useradd hh ##修改密码 [root@linux home]# passwd hh语法:userdel [选项] [用户名]
取值说明1-r删除用户及其登录日志信息、家目录(不推荐)2-f强制删除用户,即使用户已经登录(不推荐)3默认直接删除用户 ##仅删除用户 [root@linux home]# userdel hh ##删除用户及其登录信息 [root@linux home]# userdel -r hh语法:usermod [选项] [参数] [用户名]
选项值说明1-c修改备注信息(了解)2-d修改用户登录时的目录(了解)3-e修改账号有效期(了解)4-f修改密码过期后多少天关闭账号(了解)5-g修改用户所属组(了解)6-G修改用户所属附加组(了解)7-l修改用户账号名称(了解)8-L锁定用户密码,使密码无效(了解)9-u修改用户id(了解)10-U解除密码锁定(了解) ##修改用户名(修改完之后需要使用id命令查看uid) [root@linux home]# usermod -l wh wuhan语法:groupadd [选项] [组名称]
1选项值说明2-g指定工作组id(了解)3-r创建系统工作组(了解)4-o允许添加组ID不唯一的工作组(了解)5默认添加用户分组 ##添加组 [root@linux home]# groupadd whgroup ##更改用户组 [wh@linux home]$ usermod -g whgroup wh每一个程序的执行,就创建了一个进程。随着资源的分配和释放,可以认为进程是一个程序一次执行过程。进程是一个动态的概念,它是程序执行的过程,包括创建、调度、消亡。
例如MySQL:启动MySQL服务并成功后,就开启了一个进程,拥有自己独立的资源,每一个程序都有一个程序启动的入口文件,windows下是.exe文件,Linux下是.sh文件。
语法:ps -ef|grep [进程关键词]
ps命令可以查看系统进程,并且可以产看进程PID(进程唯一标识)。
语法:Kill -9 [PID]
启动SSH服务:service sshd start
关闭SSH服务:service sshd stop
重启SSH服务:service sshd restart
查看所有服务:chkconfig --list
启用网卡:ifconfig [网卡标示] up
禁用网卡:ifconfig [网卡标示] down
查看所有网卡(包含禁用的):ifconfig -a
查看网卡ip (启用状态下):ifconfig
重新获取IP地址:dhclient
语法:mount [设备名称] [挂载的目录]
语法:umount [挂载的目录]
##先创建存放的路径 [root@linux home]# mkdir /mnt/cdrom ##挂载光驱(/dev/cdrom:指代的是光驱),(/mnt/cdrom:指代的是将光驱的文件拷贝到目标路径) [root@linux home]# mount /dev/cdrom /mnt/cdrom挂载光驱
取消挂载
挂载光驱的时候需要注意:将设备状态勾选已连接
查看设备网络配置
/etc/ssh目录下的sshd_config文件
查看文件/命令/目录位置
语法:whereis [文件/命令/目录位置]
[root@linux ssh]# whereis pwd(root用户才能安装)
语法:rpm[选项] [软件包]
rpm -ivh jdk-8u211-linux-x64.rpm
rpm -qa|grep jdk(查看已经安装的jdk)
序号选项值说明1-ivh显示安装进度2-e卸载软件包3-qa|grep查看已经安装的软件包 ##查看已经安装的jdk [root@linux software]# rpm -qa|grep jdk ##卸载原本的jdk [root@bogon ~]# **rpm -e** java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 ##卸载原本的jdk 如果出错 [root@root ~]# **rpm -e --nodeps** java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 ##安装jdk [root@linux software]# rpm -ivh jdk-8u211-linux-x64.rpm ##安装完成之后安装路径为:/usr/java/jdk1.8.0_211-amd64 [root@linux software]# cd /usr/java/jdk1.8.0_211-amd64切换到配置文件目录(系统变量)/etc/profile
##切换路径修改配置文件 [root@linux etc]# vim /etc/profile ##在文件最后添加 export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64 export PATH=$PATH:$JAVA_HOME/bin ##配置成功之后查看 java -version /javac /java下载路径:https://dev.mysql.com/downloads/mysql/5.5.html#downloads
下载.tar包
解压.tar文件到指定目录
##1.切换到tar包所在的目录 cd /opr/software ##2.直接解压到/opr/software [root@linux software]# tar -xvf MySQL-5.5.62-1.el7.x86_64.rpm-bundle.tar ##3.查看原有数据库 [root@localhost software]# rpm -qa|grep mysql ##4.卸载原有的数据库 [root@localhost software]# rpm -e mysql-libs-5.1.71-1.el6.x86_64 --nodeps ##5.安装server和client //服务器端 [root@localhost software]# rpm -ivh MySQL-server-5.5.62-1.el7.x86_64.rpm //客户端 [root@localhost software]# rpm -ivh MySQL-client-5.5.40-1.linux2.6.x86_64.rpm ##6.启动服务,并登录,并添加root用户密码 [root@localhost software]# service mysql start ## 登录 [root@localhost software]# mysql -u root -p ##查看文件编码格式 mysql> show variables like 'char%'; ## 添加密码 方式一:登录进去之后修改 mysql> set password=password('111111'); 方式二:不用登录直接修改 [root@bogon mysql]# mysqladmin -u root -p password ##7.更改编码格式为utf-8 ## 切换路径到 /usr/share/mysql [root@localhost software]# cd /usr/share/mysql ## 拷贝文件到 /etc/my.cnf [root@localhost mysql]# cp /usr/share/mysql/my-large.cnf /etc/my.cnf ##修改文件中编码格式 [root@localhost mysql]# vim /etc/my.cnf 添加character_set_server=utf8 ##8.重启启动服务 [root@localhost software]# service mysql restart ##9.开启3306端口(允许远程访问) ##切换到配置文件目录 [root@localhost bin]# cd /etc/sysconfig ##修改文件vim /etc/sysconfig/iptables [root@localhost sysconfig]# vim /etc/sysconfig/iptables 需要添加的内容 -A INPUT -ptcp --dport 3306 -j ACCEPT ##重启防火墙 [root@localhost sysconfig]# service iptables restart ##10.windows操作系统访问linux中的mysql ##10.1登录数据库,切换到系统数据库mysql,查看数据库用户中是否有允许所有主机访问 mysql> use mysql mysql> select user,password,host from user;(如下图效果显示) +------+-------------------------------------------+-----------+ | user | password | host | +------+-------------------------------------------+-----------+ | root | *FD571203974BA9AFE270FE62151AE967ECA5E0AA | localhost | | root | | bogon | | root | | 127.0.0.1 | +------+-------------------------------------------+-----------+ 6 rows in set (0.00 sec) ##10.2授权 mysql> grant all privileges on *.* to root@'%' identified by '111111' with grant option; ##10.3刷新权限 mysql> flush privileges; ##10.4恢复数据库 方式一:不用登录到数据库服务器 [root@localhost ~]# mysql -u root -p smbms</opt/software/smbms_db.sql 方式二:需要登录到数据库服务器 [root@localhost ~]# source /opt/software/smbms_db.sql没有开启3306端口号的时候