centos简单入门

1.Linux的简要介绍。

2.文件目录结构。

3.常用快捷键。

4.基础命令及语句。

5.软件安装。

6.定时任务。

7.网络安全防火墙。

8.用户和权限。

一.Linux的简要介绍

Linux是类unix(闭源,1969年)操作系统,
1991年初,林纳斯·托瓦兹自己开发的第一个版本。
1994年3月,Linux1.0发布,代码量17万行。
1995年1月,Bob Young创办了RedHat(小红帽)。
1996年6月,Linux 2.0内核发布,此内核有大约40万行代码。
2001年1月,Linux 2.4发布。
2003年12月,Linux 2.6版内核发布。
目前主流版本Redhat,Debian,Ubuntu,Gentoo。都采用的是GPL(General Public License的缩写,是一份GNU通用公共授权)协议。
优点: 稳定、免费或者花费少、安全性高、多任务、多用户、耗资源少

二.文件目录结构

vm安装centos7虚拟机地址 ![http://www.linuxidc.com/Linux/2014-10/108013.htm](http://www.linuxidc.com/Linux/2014-10/108013.htm)
centos7设置 静态IP地址 ![http://blog.csdn.net/y534560449/article/details/60134301](http://blog.csdn.net/y534560449/article/details/60134301)
设置好静态IP后,可以用xshell连接虚拟机 ![http://www.linuxidc.com/Linux/2016-08/134087.htm](http://www.linuxidc.com/Linux/2016-08/134087.htm)
如此,Linux环境初步搭建好了。
Linux不靠文件扩展名区分文件类型(windous病毒和木马不能在linux里面运行)
所有的存储设备都必须挂载之后才能使用(包括硬盘,U盘和光盘),例如给它手工给它分配盘符
Linux所有内容以文件形式保存,包括硬盘(/dev/sd[a-p])光盘文件(/dev/sr0)
# ls /
/bin/存放系统命令的目录 binary二进制
/sbin/保存和系统环境设置相关的命令
/usr/bin/存放系统命令的目录,和系统启动无关
/usr/sbin/存放根文件系统不必要的系统管理命令
/boot/系统启动目录
/dev/设备文件保存位置(包括硬件)
/etc/配置文件保存位置(用户账户和密码,服务的启动脚本,常用服务的配置文件)
/home/普通用户的家目录
/lib/系统调用的函数库保存位置
/lost+found/当系统意外崩溃或机器以外观及,而产生一些文件碎片放在这里
/media/挂载目录。媒体设备,软盘和光盘
/mnt/挂载目录。U盘移动硬盘
/misc/挂载目录。NFC光盘
/opt/第三方安装的软件保存位置 /usr/local/ unix Software resource
/proc/虚拟文件系统 和下一个目录一样都是直接写在内存里面的 process
/sys/虚拟文件系统。存放内核相关的信息
/root/超级用户的家目录
/srv/服务数据目录
/tmp/临时目录
/usr/系统软件资源目录
/var/动态数据保存位置 缓存,日志,软件运行产生的文件

三.常用快捷键

快捷键多不胜数,我只整理了下自己常用的,主要是以下十几个:
1.tab 自动补全,在遇到一些非常长的目录或文件名时可以很快完成
2.Ctrl + u 删除光标之前到行首的字符
3.Ctrl + k 删除光标之前到行尾的字符
4.Ctrl + c 取消当前行输入的命令,比如取消安装软件,取消运行软件
5.ctrl+z 将任务中止(暂停的意思)
6.Ctrl + a 光标移动到行首(ahead of line),相当于通常的Home键
7.Ctrl + e 光标移动到行尾(end of line)
8.Ctrl + l 清屏,相当于执行clear命令
9.Ctrl+f 向前翻屏
10.Ctrl+b 向后翻屏
11.Ctrl+d 向前翻半屏
12.Ctrl+u 向后翻半屏
13.pageUp 当命令输入一半时会翻出包含该命令的历史纪录
14.ctrl+insert 复制
15.shift+insert 粘贴

四.常用命令和语句

常用命令
cd 切换目录
ls 展示文件和目录,(ls -al 显示详细信息,包括权限,组,用户,大小,最后更新时间)
ln 超链接
mkdir 创建目录
cp 复制并粘贴
mv 移动
rm 删除目录或文件
sudo 来以其他身份来执行命令,默认以root
touch 创建文件或者更改文件的时间
cat 查看文件
tail 查看文件倒数部分
clear 清屏(题外话 cls 是windows清屏命令)
vi(vim是vi的高级版,vi是系统自带,vim需要自己安装)
man和help 查看帮助,这两个命令可以在遇到不熟悉的命令时非常有用
echo 输出命令
ps 查看系统进程
last 显示用户最近登录信息
history 显示命令历史
df 检查文件的磁盘空间占用情况
wget 下载(需要安装wget软件)
tar 解压压缩文件
du 查看文件大小
top显示系统上正在运行的进程
tree 以树形目录显示当前目录下的结构(需要安装tree)
file 提供关于文件类型信息的命令
id 打印真正的和有效的用户和组的id
exit 退出
cal 10 2009 查看日历
简单语句案例:
在这里需要介绍下linux管道概念:就是把前一个命令的输出当作后一个命令的输入,
举例:ls -a|grep mysql 查看所有包含mysql字符串的文件或目录
find语句:
1.find / -name -iname php #查找根目录下所有包含 php(不区分大小写)字符的文件和目录
2.find . -type f -mtime 1 查找当前目录下,最近24-48小时修改过的常规文件。
4.find . -type f -size +100M 查找大于100M的文件
5.find / \( -name "*.txt" -o -name "*.pdf" \) -print 查找根目录下txt和pdf文件
6.find / -regex ".*\(\.txt|\.pdf\)$" 正则查找根目录下所有的txt和pdf文件
7. find . -type f -perm 644 -print //找具有可执行权限的所有文件
8.find . -type f -user weber -print// 找用户weber所拥有的文件
9.find . -type f -name "*.log" -delete 删除当前目录下所有的log文件:
10.find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD \; 将找到的文件全都copy到另一个目录:
awk语句:
awk -F: '/root/' /etc/passwd 搜索/etc/passwd有root关键字的所有行
awk '{ print FILENAME,$0 }' file1 file2 file3>fileall 把file1、file2、file3的文件内容全部写到fileall中,格式为 打印文件并前置文件名。
grep语句
常和find命令搭配使用,如:
find access_log.20160423.txt | xargs cat | grep .*test*|wc -l 统计含"test"字符串的总行数
grep -l pattern files :只列出匹配的文件名,
grep -n pattern files 即可显示行号信息
grep -c pattern files 即可查找总行数
tr语句:
cat file | tr -d '0-9' // 删除所有数字
cat file | tr -c '0-9' //获取文件中所有数字
cat file | tr -d -c '0-9 \n' //删除非数字数据
tr -s 压缩文本中出现的重复字符;最常用于压缩多余的空格
cat file | tr -s ' '
echo '' > 1.txt 清空1.txt文件 echo 'hello world' >> 1.txt 往1.txt追加hello linux内容
chkconfig redis on 设置redis为开机自启
service mysql restart|status|stop|start 重启|查看状态|停止|启动mysql
运算符:
文件比较运算符
-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ] 如:
-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]
-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]-z string 如果 string长度为零,则为真 [ -z "$myvar" ]
-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]

  

算术比较运算符 
num1-eq num2 等于 [ 3 -eq $mynum ] 
num1-ne num2 不等于 [ 3 -ne $mynum ]
num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]
num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]

五.软件安装

1.先介绍一下yum(centos下),是一个Shell前端软件包管理器,主要功能是打包下载和自动安装所有依赖,最简单示例:
yum install vim 安装vim编辑器
yum update 升级yum包软件
yum list 查看所有软件包
yum remove packages 卸载名为packages的软件
yum provides tree 查询包含tree关键字的软件包
yum clean 清除缓存软件包
xshell下建议安装的软件包有epel-release(yum源),vim(编辑器), lrzsz(客户机上传下载), wget(远程获取),zip/unzip(压缩解压软件)
2.yum安装有很大的缺陷性,就是每次安装软件时如果没有足够新的yum源就会很麻烦,版本就会不满足需求。这个时候就需要编译安装软件包,基本步骤是
tar|uzip 解压软件压缩包
cd 进入解压缩目录
./configure 设置为默认配置
make && make install 安装完成,如果报错则需要安装其依赖,一步一步解决
编译安装nginx示例:
 
 
 

六.定时任务crond

crontab -l 查看所有的定时任务
crontab -e 编辑定时任务
crond格式为:*  *  *  *  *  command 分 时 日 月 周 
命令示例:
1.*/1 * * * * date '+\%Y-\%m-\%d \%H:\%M:\%S' >> /tmp/log.txt 2>&1
每隔1分钟将当前时间写入/tmp/log.txt
2.30 21 * * * service mysqld restart 每天21点30重启mysql
3.0 0 1,10,20,30 * * service httpd restart 每月1号,10号,20号,30号重启apache
4.59 1 1-7 4 * test 'date +\%w' -eq 0 && /root/a.sh 四月的第一个星期日早晨1:59运行a.sh脚本

七.防火墙

centos7默认使用的防火墙是firewalld
iptables用于过滤数据包,属于网络层防火墙.
firewall能够允许哪些服务可用,那些端口可用.... 属于更高一层的防火墙。
firewall的底层是使用iptables进行数据过滤,建立在iptables之上。 有需要的可以去学习iptables的使用。
有时候我们的软件在服务器上运行正常,在客户机上无法访问,很有可能就是防火墙屏蔽了端口
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
重新启动防火墙 :service firewalld restart
拒绝所有包:firewall-cmd --panic-on ####xshell等工具慎用
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
添加端口规则:firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
查询端口是否有效:firewall-cmd --zone=public --query-port=80/tcp
查看还有哪些服务可以打开:firewall-cmd --get-services
从public zone中移除服务 :firewall-cmd --permanent --zone=public --remove-service=ssh
删除端口:firewall-cmd --zone= public --remove-port=80/tcp --permanent

八.用户和权限 (/etc/passwd,linux中所有用户的配置文件)

几个基础命令
1.useradd test 添加test用户
2.userdel test 删除test用户
3.passwd 修改当前登录用户的密码
4.groupadd -g 344 test 建立一个新组,设置组ID并加入系统
5.groupdel test删除test组
6.chown -R liu /data/virtualhost 将目录及其下所有文件的主改为liu
7.chmod a+x dir  //对文件dir的u,g,o都设置可执行属性

  

最后推荐一个Linux小玩具
yum install -y sl
sl
就可以看见一辆小火车哐哐哐的驶过了,可以放松下缓解眼部疲劳。
posted @ 2022-07-08 21:45  雨落知音  阅读(476)  评论(0编辑  收藏  举报