1、Linux知识说明
1)文件位置
1)/etc/inittab
2)模式介绍
0:挂起模式-不推荐
1:单用户模式-只有管理员可以进入该模式,可以修改root密码,处理有登录权限而没有修改文件的权限问题
2:多用户模式-不支持文件共享明服务(NFS),一般不使用
3:字符模式-在安装好X11后,可使用startX命令切换到图形模式。
4:used模式
5:图形模式
6:重启模式
3)解决忘记CentOS6.4系统root密码的方法
CentOS6.4系统中,通过Grub方式进入单用户模式:
1)启动系统后,还未进入登录界面前,输入字母e,之后通过上下键,选择CentOS(2.6.32-358.e16.i686)。
2)之后,选择kernel开头那行,再输入字母e,进入引导编辑设置界面。
3)在引导设置界面中,在行尾加上single,保存后按回车键,再输入b,进行重新启动系统。
4)启动完成系统后,登录系统中,通过passwd命令去修改root用户的密码。
4)分区介绍
boot:启动引导文件 100MB
swap:虚拟内存的分配,交换空间 不能大于4GB,且为2的倍数
linux命令 不区分大小写 没有空格 拼写错误 空不空格看命令格式要求。
4)判断服务是否启动
1)客服端是否能连接到服务端 ping 服务端IP,看有无返回信息
2)检查对应的服务进程是否启动 ps -ef |grep 'ssh'
3)查看对应服务的端口是否启动 netstat -anp |grep ssh
4)查看防火强是否开启,是否允许服务对应的端口通过 systemctl status firewalld
5)检查配置文件中 /etc/ssh/sshd_config 对应服务的权限设置
5)光盘挂载
mount -o loop /dev/sr0 /media/
进入光盘的Packages目录,安装对应的程序
卸载 umount
2、用户目录
~ 用户家目录,用户主目录
root用户主目录为:/root,普通用户主目录为:/home/username
cd ~user 或 cd /home/uername 跳转到普通用户主目录
cd ~ 或 cd ~root 或cd /root 跳转root用户目录
[root@centos7 src]#
root:用户名 centos7:主机名 src:当前工作目录 #:root用户 $:普通用户
3、环境变量
1)系统变量
1)每个用户都要用到的变量可以设置为系统变量
2)全局配置文件:登录时会读取/etc/profile文件,执行bash时,会读取/etc/bashrc文件
2)用户变量
1)特定用户都要用到的变量可以设置为用户变量
2)局部配置文件:指定了特定用户读取/root/.bashrc、/root/.bash_profile文件
3)临时变量
1)用户登录1次都要用到的变量可以设置为临时变量
4)变量管理
1)env:可输出全部系统变量,echo $PATH:输出指定变量,name=value:
2)设置变量,系统环境变量、用户变量生效,需要执行 source 环境变量文件,申明变量 export
5)配置文件说明
1).bash_profile:用户登录时执行该文件,执行1次,可理解为:全局变量配置文件。
2).bashrc:用户专用文件,每次登陆及打开shell,执行该文件,可理解为:针对用户的变量配置文件。
3).bash_history:记录历史命令的文件
4).bash_logout:退出shell时,执行该文件
6)内置变量
1)env 查看环境变量
2)set 查看系统中所有变量
3)PATH 存放运行程序的目录
4)HOME 用户的主目录
5)HISTSIZE 历史命令记录数
6)LOGNAME 用户的登录名称
7)HOSTNAME 主机名称
8)SHELL 用户的shell类型
9)LANG 语言配置文件存放目录
10)MAIL 邮件存放目录
11)PWD 当前目录
4、常用符号
1)通配符
* 进行前缀字符的匹配,匹配0个或多个字符
+ 进行前缀字符的匹配,匹配1个或多个字符
? 匹配任意1个字符
# 注释字符
2)参数符
!$ 上个命令中最后1个变量
$? 显示上个命令执行后的退出状态 0 成功 1 失败
$0 显示执行shell的文件名
$n 传递给脚本或函数的参数 $1 第1个参数 $n 第n个参数
$# 传递给脚本或函数的参数的个数
$* 传递给脚本或函数的所有参数
$@ 传递给脚本或函数的所有参数
$$ 显示shell的ID
3)命令符
>重定向一般信息并覆盖到文件
>>重定向一般信息并追加到文件
2>重定向错误信息并覆盖到文件
2>>重定向错误信息并追加到文件
[] 字符或数字组合,从范围中选择一个字符或数字
; 命令1;命令2 命令1和命令2都需要执行
&& 命令1&&命令2 命令2在命令1执行成功后再执行
|| 命令1||命令2 命令2在命令1执行失败后再执行
& 将命令放到后台执行
4)转义字符
\ 反斜杠 a 警报 响铃 退格 删除键
回车
换行 水平制表符 v 垂直制表符 f 换页,将当前页换到下页开头
-e 对转义字符进行替换
转义字符,后面的字符为普通字符
转义字符,加-e后,会执行转义字符,加-E后,不执行转义字符
echo 'this a file
'; 结果为:this a file
echo -e 'this a file
'; 结果为:this a file
5)显示命令历史字符
linux中运行的命令会保存在用户的家目录的.bash_history文件中,默认保存1000条命令记录。
history 显示命令历史记录
!! 执行上一条命令
!n 执行第n条命令
!ls 执行最近1次以ls开头的命令
5、·sudo权限管理
sudo:让普通用户拥有管理员的权限
test是普通用户,新建test用户 ,然后改/etc/sudoers 让test有root权限,先切换为test,然后再新建/home/test123,最后ls -al /home 查看刚才新建的目录 test123
切换到root用户,输入命令:su root
root用户输入visudo命令进入/etc/sudoers文件进行编辑
输入i进入编辑模式,为用户 test 添加权限,输入:wq保存退出
切换到 test 用户
输入visudo命令
输入i进入编辑模式,为用户 develop 添加权限,输入:wq保存退出
一定有读的权限 >=4
一定有写的权限 2 3 6 7 -w- -wx rw- rwx
一定有执行的权限 奇数 1357
所有者 u 所属组 g 其他用户 o 所有用户 a
对目录操作需要带上参数 -R
删除用户,需要执行以下3个命令
userdel -r test
rm -rf /home/test
rm -rf /var/spool/mail/test
su - test 切换到 test 用户,且环境变量为 test 用户的环境变量
su test 切换到 test 用户,且环境变量为 切换到test 用户之前用户的环境变量
6、常用命令
1)vim使用
编辑模式:
进入编辑模式;i
退出编辑模式:esc
保存:w 退出:q 保存退出:wq 强制:!
gg 调到行首 /关键字 搜索 n顺序的往下搜索下一个 ?逆序的往上搜索下一个
touch建立空白文件 vim 建立一个文件或假如文件存在,则编辑一个文件
2)作业控制
Ctrl+z 暂停执行命令
fg 编号:让命令暂停恢复执行
bg 编号 &:让命令放到后台执行
Ctrl+c 终止执行命令
jobs 显示暂停执行、后台执行的命令
3)截取某一个字段:cut
cut -d '分隔符' [-c(第几个字符) f(第几个块)] n(区间)
head 10 /etc/passwd | cut -d':' -c1
head 10 /etc/passwd | cut -d':' -f1 |head -n 5
4)排序:sort
sort [-t 分隔符] [-k n1 (区间1),n2 区间2)] [n (数字) r (反向) u (去除重复)]
head 10 /etc/passwd |sort -t: -k1 -n
5)统计字符数、词数、行数:wc
wc -l (行数) -w (词数) -c (字符数)
wc -l /etc/passwd
wc -m /etc/passwd
wc -c /etc/passwd
6)去除重复的行:unique
unique 去除重复的行 unique -c 统计重复的行
sort test4.txt |unique
sort test4.txt |unique -c
7)重定向内容到文件,并显示在屏幕:tee
tee 文件名
tee test.txt
8)替换字符:tr
tr -d 要删除的字符 tr -c 去除重复的字符
head -n2 /etc/passwd |tr '[a-z]' '[A-Z]'
9)显示日期:date
显示日期:date [+格式]
设置日期:date [MMDDhhmm[[CC]YY][.ss]] 再以root权限的用户执行命令 clock -w
格式:
%y 最后的2位数年
%m 一年中的月
%d 一年中的某天
%H 时(00~23)
%M 分(00~59)
%S 秒(00~59)
%D mm/dd/yy 的格式日期
%T HH:MM:SS 的格式时间
%h 月份(Jan~Dec)
%r 上午/下午(AM/PM)
%a 一周中某天(星期一到星期六)
10)显示日历:cal
cal -m [month[year]]
cal 显示当前月日历
cal 5 显示该年的日历
11)同步时间:ntpdate
service ntpd stop
ntpdate cn.pool.ntp.org
service ntpd start
12)软、硬链接
软链接:ln -s 硬连接:ln
1、硬连接文件 只能用于文件,软链接适合文件和目录
2、修改源文件内容:同步更新到软链接、硬链接的文件;
3、修改软链接文件内容:同步更新到源文件、硬链接文件;
4、修改硬链接文件内容:同步更新到源文件、软链接文件;
5、删除源文件:不影响硬接文件,软链接文件没法使用;
6、删除软链接文件:不影响硬接文件,源文件;
7、删除硬链接文件:不影响软接文件,源文件;
8、删除原文件、硬链接文件,整个文件会真正失效。
13)xargs
-d 将其标准输入的内容以空白(空格 Tab 回车换行)分割成多个之后,并当做命令行参数传递给其后面的命令
-p 需要确认是否需要执行
-n 将xargs生成的命令行参数 每次传递给几个参数后面的命令执行
-e -E 将-e -E 指定的参数传递给后面的命令
7、shell基础
1)文件判断
1)文件与目录检测: -f 文件是否存在 -d 目录是否存在 -e 某项东西是否存在 -L 是否为symbolic link文件
2)文件属性检测: -r 文件是否可读 -w 文件是否可写 -x 文件是否可执行 -s 文件是否为非空白文件
3)文件比较检测: -nt 文件1比文件2新 -ot 文件1比文件2旧 -et 文件1和文件2为同一文件(link文件)
4)关系判断:= 等于 != 不等于 < 小于 > 大于 -eq 等于 -ne 不等于 -lt 小于 -gt 大于 -le 下于等于 -ge 大于等于
5)判断检测:-a 2边都成立 -o 单边成立 -z 空字符串 -n 非空字符串
2)shell基础
shell变量一般为大写
shell文件中,最开始需要加#!/bin/bash,以表明这是1个shell文件
变量定义:变量=变量值,等号两边不能有空格,变量名只能包含字母、数字和下划线,不能以数字开头
变量之中包含特殊字符,需要加单引号(''),如果值中包含单引号,则需要加双引号(""),如果值为一个命令,则需要用反引号(``)包裹起来。
declare 申明变量内容命令
declare -a varr 定义为数组
declare -f vfunc 定义为函数
declare -i vdig 定义为整数
declare -r vread 定义为只读
declare -x 定义为可通过环境变量输出
var=value 变量不能包含空格、标点符号、bash关键字,可以是数字和字符的组合,首字母为(a-zA-Z)
使用变量 $var 或 ${var}
变量只读 readonly var
删除变量,只读变量不能被删除 unset var
var=`命令` 执行该命令并赋值给变量,``为反引号
${var:=value} 改变var的值,变量为空或被删除,则返回value
${var:-value} 不改变var的值,变量为空或被删除,则返回value
${var:?message} 不改变var的值,变量为空或被删除,将 message 返回到标准错误输出
${var:+value} 不改变var的值,变量被定义,则返回value
8、中文帮助文档
1)安装中文帮助
安装中文MAN包
地址:https://github.com/man-pages-zh/manpages-zh
如果是git方式:则还需执行:autoreconf --install --force
tar -zxvf manpages-zh-1.5.1.tar.gz
cd manpages-zh-1.5.1
./configure --disable-zhtw
make
make install
2)修改语言配置文件
vim /etc/sysconfig/i18n
将LANG="en_US.UTF-8" 改成 LANG="zh_CN.UTF-8"
3)重启系统
shutdown -r now
4)yum方式:yum -y install man-pages-zh-CN.noarch
2)info命令
1)例如:info top,输入m 命令项,进入命令项说明界面
2)常用命令
*n:跳转到该节点的下一个节点
*p:跳转到该节点的上一个节点
*m:指定菜单名,而选择另外一个节点
*f:进入交叉引用主题
*l:进入该窗口的最后一个节点
*Tab:跳转到该窗口的下一个超文本链接
*RET:进入光标除的超文本链接
*u:转到上一级主题
*d:回到info初始节点目录
*h:调出info教程
*q:退出info
b t Home:文档开始
e end:文档末尾
m g :选择一个菜单项
空格键:下一页
PageDown:下一页,从当前页的最后两行开始
PageUp:上一页,从当前页的开始两行开始
Del:上一页
上一个节点,当前页在节点文档开始
下一个节点:当前页在节点文档末尾