linux
linux概述
一、unix。
unix是一个多用户、多任务操作系统,于1969年在AT&T(贝尔实验室)开发,开发unix的开始使用B开发,开发者感觉B语言不好用,就在B的基础上开发了C语言,unix是使用C语言开发的。
二、linx的概述。
linux是基于unix的,linux是开源免费的。诞生于1991年10月5日,由Linus Torvalds开发出来的,由众多爱好者共同维护。
三、LInux版本。
Linux的版本分为:内核版本(免费的)和发行版本。内核版本是在Linus领导下的内核小组开发维护的。
四、linux系统的应用。
服务器系统:web服务器、数据库服务器、接口服务器、DNS、FTP。
嵌入式系统路由器、防火墙、手机、PDA、IP分享器、交换器。
VMware Workstation的安装
Centos的安装。
linux中的目录结构。
/:根目录:就好比windows中的盘符。
boot:存放用于系统引导时使用的各种文件。
bin(binaries):存放二进制可执行文件。
sbin(super user binaries):存放二进制可执行文件,只有root用户可以访问。
home:存放用户文件的根目录。
root:超级用户目录。
dev(devices):用于存放设备文件。
etc(etcetera):存放系统配置文件。
usr(unix shared resources):用于存放共享的系统资源。
lib(library):存放跟文件系统中的程序运行所需要的共享库和内核模块。
mnt(mount):系统管理员安装临时文件系统的安装点。
tmp(temporary):用于存放各种临时文件。
var(variable):用于存放运行时需要改变数据的文件。
media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
opt:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
proc:proc 是 Processes(进程) 的缩写,这个目录的内容不在硬盘上而是在内存里。
禁ping命令:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
srv:存放服务启动后需要提取的数据(不用服务器就是空)
linux常用命令
linux命令提示符号
对于Linux系统安装时,有一个默认的超管管理员用户root登录到Linux系统,命令行界面时。
[用户名@主机名 当前所在目录]# (代表root权限的用户,对系统进行配置管理的时候,需要使用root用户)/$(代表普通用户)
一、ls命令:用来显示当前目录下的内容
格式:ls[参数] [路径或文件名]
ls -a :显示所有隐藏文件或目录(隐藏文件就是在文件前加个.)
ls -l :缩写成ll,详细显示当前目录下的内容(不包含隐藏文件)。
文件类型
Linux系统下面,文件类型(常见三种类型)
文件: - 目录:d 链接:L
链接文件的创建 :
ln Hello.java(源文件) xxx(链接文件) 硬链接
ln -s Hello.java xxx1 软链接
文件权限
文件权限
可读: r 可写:w 可执行:(脚本,比如shell脚本) x 特殊字符:-(表示的是没有任何权限)
权限数字表示方法
二进制数字之和的方式
R W X
2的平方 2的一次方 2的0次方
4 2 1
给文件添加可执行权限
chmod +x *.sh
chmod 111 *.sh
二、cd命令:切换目录
cd 目录名:切换到指定目录。
cd ..切换到上一层。
cd /切换到根目录。
cd ~切换到用户主目录。
cd -切换到上一个所在的目录
使用tab键来补全文件路径。
三、目录:mkdir(make directory)命令可用来创建子目录。
mkdir app 在当前目录下创建app目录
mkdir –p app2/test 级联创建aap2以及test目录
rmdir(remove directory)命令可用来删除“空”的子目录
rmdir app 删除app目录
rm -rf code:删除目录不为空的目录
四、浏览文件:
cat 显示文件的内容
例如:cat 1.txt
more:一般用于要显示的内容会超过一个画面长度的情况。按空格键显示下一个画面。回车显示下一行内容。按 q 键退出查看.
例如:more 1.txt
less用法和more类似,不同的是less可以通过PgUp、PgDn键来控制。
例如:less 1.txt
tail 用于显示文件后几行的内容。
tail -n 文件名 :查看文件的后n行内容
tail -f 文件名 :动态查看,ctrl+c 结束查看
例如:
tail -10 1.txt
tail -f 1.txt
五.文件操作
1.rm 删除文件
用法:rm [选项]... 文件...
例如:rm a.txt 删除a.txt文件
删除需要非root用户确认
rm -f a.txt 不询问,直接删除
rm 删除目录
rm -r a 递归删除(慎用)
rm -rf a 不询问递归删除
rm -rf * 删除该目录下所有文件
rm -rf /* 自杀
2.cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
cp a.txt b.txt 将a.txt复制为b.txt文件
cp a.txt ../ 将a.txt文件复制到上一层目录中
3.mv 移动或者重命名
mv a.txt ../ 将a.txt文件移动到上一层目录中
mv a.txt b.txt 将a.txt文件重命名为b.txt
4.find指令用于查找符合条件的文件/文件夹
find 查找目录 查找条件
find / -name “ins*” 查找文件名称是以ins开头的文件
find / -name “ins*” –ls
find / –user itcast –ls 查找用户itcast的文件
find / –user itcast –type d –ls 查找用户itcast的目录
find / -perm -777 –type d-ls 查找权限是777的文件
5.grep命令:查找文件里符合条件的字符串。
用法: grep [选项]... PATTERN [FILE]...示例:
grep lang 1.txt 在文件1.txt查找lang字母
grep lang anaconda-ks.cfg –color -A5高亮显示
grep a 1.txt --color -A5
6.touch创建一个空文件
touch a.txt
7.pwd:显示当前所在目录
8.clear/ crtl + L:清屏
六、重定向输出>和>>
> 重定向输出,覆盖原有内容;>> 重定向输出,有追加功能;
示例:
cat /etc/passwd > a.txt 将passwd中的内容输出到a.txt中
cat /etc/passwd >> a.txt 输出并且追加
ifconfig > ifconfig.txt
七、管道 |:管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
示例
ls --help | more 分页查询帮助信息
ps –ef | grep java 查询名称中包含java的进程
示例:
ifconfig | more
cat index.html | more
ps –ef | grep aio
八、系统管理命令
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
ps -aux | grep ***:
a-显示所有用户的进程
u-显示进程的用户和拥有者
x-显示不依附于终端的进程
结束一个进程:kill pid
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
九、上传文件sftp
sftp 用户名@ip
put 文件地址 上传地址 上传
get 文件地址 下载目录 下载
十、压缩相关的命令
window中常用的是zip格式的文件压缩的
压缩文件:zip 文件名
解压文件:unzip 文件名
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
打包:
tar –cvf xxx.tar ./*
打包并且压缩:
tar –zcvf xxx.tar.gz ./*
解压
tar –xvf xxx.tar
tar -zxvf xxx.tar.gz -C /usr/aaa
十一、下载器
wget 下载文件地址
axel 下载文件地址(多线程下载)
十二、用户管理
创建用户:useradd 用户名
对于Linux下每个用户,都有密码
更改用户密码:passwd 用户名
在Linux系统下,默认情况下,创建一个用户的同时会给用户在系统的目录下创建一个属于自己的用户目录,该目录称为用户主目录
切换用户:su 用户
root用户切换到普通用户不需要输入密码,普通用户切换到root用户需要输入root用户密码。
十三、主机名
查看主机名称:hostname
设置主机名:hostname 主机名
设置主机名后重启会失败的原因:在linux系统中,系统的配置的信息都是来自于文件中。
永久设置主机名:
centOS6:cat /etc/sysconfig/network
centOS7:cat /etc/hostname
命令方式永久设置主机名:hostnamectl set-hostname 名字
十四、系统命令
关机:halt shutdown -h 0 init 0
重启: reboot init 6
十五、远程连接
远程连接四要素:Ip地址 用户名 密码 协议 ssh
1.远程访问: ssh ip/hostname
2.免密登录
Host文件,可以让hostname解析成对应的ip地址。
Windows:C:\Windows\System32\drivers\etc\hosts
Linux :/etc/hosts
2.1设置一下host文件使得可以ssh tomcat
2.2发送密钥
Linux:
A机器: ssh-keygen 提示信息直接敲回车
ssh-copy-id ip/域名 把A上面的公钥copy到B上面
然后就可以直接免密登录了。ssh B
3.远程copy文件
scp Hello.java root@tomcat:/root #把本机的Hello.java复制到tomcat机器上的/root目录下
scp root@tomcat:/root/123.txt . #把tomcat机器上的123.txt复制到本机上的当前目录
-r 递归的复制。
Zip解压命令: unzip apache-tomcat-8.5.73-windows-x64.zip -d /usr/local
-d解压到哪里 -o覆盖。
十六、时间
查看时间:date
修改时间:date -s “20140225 20:16:00” #yyyymmdd hh:mm:ss
//date 有多种时间格式可接受,查看date --help
//查看硬件时间可以是用:hwclock ,hwclock --show 或者 hwclock -r
//设置硬件时间:hwclock --set --date “20140225 20:23:00”
ntpdate 时间同步:ntpdate time.windows.com(跟windows同步)
十七、定时任务
创建定时任务:crontab -e
列出目前所有的定时任务:crontab -l
删除所有的定时任务:crontab -r
crontab 基本定义
举一些例子:
每天21:30 执行
30 21 * * * cmd01
每个月1,11,21 的2:30执行
30 2 1,11,21 * * cmd02
每周六或者每周日,1:45 执行
45 1 * * 6,0 cmd03
每天20:00至 23:00 ,每半个小时执行一次
0,30 20-23 * * * cmd04
每一小时执行一次
- */1 * * * cmd05
永久修改
centos7配置文件
vim /etc/crontab
配置文件中有一个用户名,跟命令方式不一样。
十八、系统信息
1.系统信息
uname
uname -a
2.cpu信息
cat /proc/cpuinfo
3.内存信息
cat /proc/meminfo
free -hl
free
4.磁盘信息
df -hl
du 显示指定的目录或文件所占用的磁盘空间。
du -hl /usr/local
5.mount 挂载Linux系统外的文件
挂载磁盘
mount /dev/sdb1 /data01
卸载磁盘
umount /dev/sdb1
6.fdisk -l 查看分区信息,添加磁盘。
fsck命令用于 检查与修复 Linux 档案系统
fsck /dev/sda1
7.进程信息
top
十九、服务:
1.列出所有的系统服务
centos6:services --list
centos7: systemctl list-units
列出所有的服务文件。
systemctl list-unit-files
jps查看java的服务。Java中的命令。
2.修改服务:
systemctl stop 服务名/服务名.service
systemclt start 服务名/服务名.service
systemclt restart 服务名/服务名.service
3.永久修改服务:
systemctl disable 服务名/服务名.service 禁用服务
systemclt enable服务名/服务名.service 启用服务
4.查看服务状态:
Systemctl status 服务名/服务名.service
5.防火墙:
Centos7服务 : firewalld.service
Centos6 服务: iptable
5.1防火墙操作:
systemctl stop firewalld.service/firewalld 关闭防火墙
systemclt start firewalld 开启防火墙
systemclt status firewalld 查看防火墙的状态
systemctl disable firewalld 永久禁用防火墙服务
systemclt enable firewalld 启用防火墙服务
5.2开启防火墙状态下,开放8080端口
1.firewall-cmd --add-port=8080/tcp --zone=public --permanent #permanent永久开放8080端口,也就是持久化,开启时使用这个持久化,删除的时候也要加上。–zone=public :把8080端口公开.
2.firewall-cmd --reload #必须执行,否则开放的端口不生效
3.删除开放的端口 firewall-cmd --remove-port=8081/tcp --permanent
4.查看开放了哪些端口:firewall-cmd --list-port
二十Linux系统软件安装。
1.RPM命令
检查某个软件是否安装:# rpm -qa|grep java
卸载已安装的软件:# rpm -e --nodeps xxxxxx
安装软件: # rpm -ivh xxx.rpm
2.源码编译(c/c++)
源码
编译
3.yum安装/apt安装。
二十一、设置系统服务。
1.systemctl status firewalld(查看firewalld的文件系统服务文件的位置)
2.CentOS7下设置tomcat成为系统服务
2.1在路径/usr/lib/systemd/system/ 创建文件tomcat.service
touch /usr/lib/systemd/system/tomcat.service
2.2编辑tomcat.service文件
vim /usr/lib/systemd/system/tomcat.service
具体的配置问价可以上百度上搜搜。
[Unit]
Description=tomcat8
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8.0_321"
ExecStart=/usr/local/tomcat8/bin/catalina.sh start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
2.3设置开机自启动
命令:systemctl enable tomcat.service
更新服务文件的命令:systemctl reload tomcat.service
启动服务:systemctl start tomcat(设置完系统服务默认是不能直接直接开启tomcat的。)
如果修改了相关服务文件的话,需要重新加载服务器文件:systemctl daemon-reload
守护进程使用jps命令无法发现。
任何脚本都可以作为系统服务,只要能执行其他的照写,只要执行的脚本换一下就可以了。