1、Linux知识说明
1)文件位置 1)/etc/inittab2)模式介绍 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:启动引导文件 100MBswap:虚拟内存的分配,交换空间 不能大于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 环境变量文件,申明变量 export5)配置文件说明
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的ID3)命令符
>重定向一般信息并覆盖到文件 >>重定向一般信息并追加到文件 2>重定向错误信息并覆盖到文件 2>>重定向错误信息并追加到文件 [] 字符或数字组合,从范围中选择一个字符或数字 ; 命令1;命令2 命令1和命令2都需要执行 && 命令1&&命令2 命令2在命令1执行成功后再执行 || 命令1||命令2 命令2在命令1执行失败后再执行 & 将命令放到后台执行4)转义字符
\\ 反斜杠 \a 警报 响铃 \b 退格 删除键 \r 回车 \n 换行 \t 水平制表符 \v 垂直制表符 \f 换页,将当前页换到下页开头 -e 对转义字符进行替换 \ 转义字符,\后面的字符为普通字符 转义字符,加-e后,会执行转义字符,加-E后,不执行转义字符 echo 'this a file \n'; 结果为:this a file\n echo -e 'this a file \n'; 结果为:this a file5)显示命令历史字符
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 testrm -rf /home/testrm -rf /var/spool/mail/testsu - 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 54)排序:sort
sort [-t 分隔符] [-k n1 (区间1),n2 区间2)] [n (数字) r (反向) u (去除重复)] head 10 /etc/passwd |sort -t: -k1 -n5)统计字符数、词数、行数:wc
wc -l (行数) -w (词数) -c (字符数) wc -l /etc/passwd wc -m /etc/passwd wc -c /etc/passwd6)去除重复的行:unique
unique 去除重复的行 unique -c 统计重复的行 sort test4.txt |unique sort test4.txt |unique -c7)重定向内容到文件,并显示在屏幕:tee
tee 文件名 tee test.txt8)替换字符: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 start12)软、硬链接
软链接:ln -s 硬连接:ln1、硬连接文件 只能用于文件,软链接适合文件和目录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 varvar=`命令` 执行该命令并赋值给变量,``为反引号
${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 --forcetar -zxvf manpages-zh-1.5.1.tar.gzcd manpages-zh-1.5.1./configure --disable-zhtwmake make install2)修改语言配置文件
vim /etc/sysconfig/i18n将LANG="en_US.UTF-8" 改成 LANG="zh_CN.UTF-8"3)重启系统
shutdown -r now4)yum方式:yum -y install man-pages-zh-CN.noarch2)info命令
1)例如:info top,输入m 命令项,进入命令项说明界面2)常用命令*n:跳转到该节点的下一个节点*p:跳转到该节点的上一个节点*m:指定菜单名,而选择另外一个节点*f:进入交叉引用主题*l:进入该窗口的最后一个节点*Tab:跳转到该窗口的下一个超文本链接*RET:进入光标除的超文本链接*u:转到上一级主题*d:回到info初始节点目录*h:调出info教程*q:退出infob t Home:文档开始
e end:文档末尾m g :选择一个菜单项空格键:下一页PageDown:下一页,从当前页的最后两行开始PageUp:上一页,从当前页的开始两行开始Del:上一页上一个节点,当前页在节点文档开始下一个节点:当前页在节点文档末尾