一. linux基础知识
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
1. 发行的 linux 版本
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS
2. linux 系统目录结构
- /sys: 这是 linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。sysfs 文件系统集成了下面 3 种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在 内核对象子系统中
- /bin:存放着最常用的程序和指令
- /sbin:只有系统管理员能使用的程序和指令
- /usr/bin:系统用户使用的应用程序与指令。
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
- /dev :Device(设备)的缩写, 存放的是 Linux 的外部设备。注意:在 Linux 中访问设备和访问文件的方式是相同的。
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
- /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
- /usr:用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。(程序目录)
- /srv:存放服务启动后需要提取的数据(不用服务器就是空)
系统启动必须:boot,etc,lib,sys
指令集合::bin,sbin
外部文件管理: dev, media,mnt,
临时文件: run,lost+found,tmp
账户: root, home,usr,usr/bin,usr/sbin,usr/src
运行过程中要用: var,proc,
扩展用的: opt,srv
3. linux 基础命令
shutdown
shutdown 会给系统计划一个时间关机。它可以被用于停止、关机、重启机器。shutdown 会给系统计划一个时间关机。它可以被用于停止、关机、重启机器。
shutdown -P now ### 关闭机器
shutdown -H now ### 停止机器
shutdown -r 09:35 ### 在 09:35am 重启机器
shutdown -c ### 要取消即将进行的关机
halt
halt 命令通知硬件来停止所有的 CPU 功能,但是仍然保持通电。你可以用它使系统处于低层维护状态。注意在有些情况会它会完全关闭系统。
halt ### 停止机器
halt -p ### 关闭机器
halt --reboot ### 重启机器
poweroff
会发送一个 ACPI 信号来通知系统关机。
reboot
命令 reboot 通知系统重启。
二. Linux 用户/用户组
groupadd
groupadd -g 1314 xxy
groupdel
groupdel xxy
groupmod
[root@localhost ~]# groupmod -g 1314 -n xxy xxy1
groupmod: group 'xxy1' does not exist(新名称在前面)
[root@localhost ~]# groupmod -g 1314 -n xxy1 xxy
useradd
useradd -d /usr/pig -m pig ##创建用户 pig,其中-d 和-m 选项用来为登录名 pig产生一个主目录/usr/pig。
useradd -s /bin/sh -g group1 -G group2,root pig2 ##新建用户 pig2,登录 Shell 是 /bin/sh,属于 group1,又属于 group2 和 root。
userdel
常用的选项是 -r,它的作用是把用户的主目录一起删除。
usermod
常用的选项包括-c, -d, -m, -g, -G, -s, -u 以及-o 等,这些选项的意义与 useradd 命令中的选项一样,可以为用户指定新的资源值
passwd
passwd -l username ## 锁定用户
passwd -u username ## 解锁用户
passwd -d username ## 使口令无效,删除口令
passwd f username ## 强迫用户下次登录时修改口令
## 如果默认无参,则修改当前用户密码
newgrp
切换用户组
newgrp root ## 这条命令将当前用户切换到 root 用户组,前提条件是 root 用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。
与用户账号有关的系统文件
/etc/passwd 文件 : Linux 系统中的每个用户都在/etc/passwd 文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
/etc/group 文件: 用户组的所有信息都存放在/etc/group 文件中。
三. 文件与目录
4 2 1
R W X
1 1 1 = 7
1 0 1 = 5
chgrp
更改文件属组
chown
更改文件属主,也可以同时更改文件属组
chmod
更改文件 9 个属性
文件与目录管理命令
cd,ls,pwd,mv,rm,mkdir,rmdir,cp
硬链接与软链接
硬链接是直接链接到文件, 文件标识是-,创建时文件必须存在命令是ln, 软链接是文件的一个快捷方式, 创建时文件可以不存在 命令是ln -s
文件被真正删除的条件是所有的硬链接全部被删除
安装程序 rpm/yum
rpm是redhat的标准安装程序
yum是对rpm的封装
yum常用命令
yum 源
官方的 yum 源在国内访问效果不佳。需要改为国内比较好的阿里云或者网
易的 yum 源
在/etc/yum…repos.d/下进行如下操作(请做好相应备份):
> wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
> mv CentOS7-Base-163.repo CentOS-Base.repo
```sh
重建缓存:
```sh
> yum clean all
> yum makecache
环境变量生效
source /etc/profile
./ect/profile
四. Shell 脚本
shell 语言是一门 linux 系统下的工具语言,主要用于写一些 linux 系统下的操作命令,实际上 Shell 是一个命令解释器, 它解释由用户输入的命令并且把它们送到内核。或者直接理解为 shell 命令是可以执行多个 linux 命令的脚本。Shell 种类众多, 有以下种类(一般使用的 Bash,就是 Bourne Again Shell,它是大多数 Linux 系统默认的 Shell):(shell: 壳,就是内核外层的壳语言, 可以给内核传递命令)
- Bourne Shell(/usr/bin/sh 或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
1. 解释器与执行 shell
解释器
执行 shell
chomd +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本 “./”表示当前目录下
2. 演示
#!/bin/bash ## 声明bash脚本
echo $PATH ## PATH是环境变量
name= "xxy" ## 定义变量, name=不能有空格
echo $name ## 打印变量
echo "I am ${name}'s friend'" ## 字符串拼接
names= ("xxy","hj","hs") ## 数组定义
echo ${names[@]} ##遍历数组, 或者使用*
echo ${names[1]} ##取数组第二个元素
## 循环数组
for var in ${names[@]}; ## 每行可以有分号
do
## 判断
if test $var = 'xxy' ## 可以没有空格
then
echo 'I am xxy'
else
echo 'I am not xxy'
fi
done
if [ $(ps ef | grep -c 'ssh') -gt 1 ]; ##查找是否有 ssh 服务
the
echo "ssh service is open"
fi
echo 当前程序名称 $0
echo 参数总数 $#
echo 是否正常退出 1:0 $?
echo 字符串参数列表 $*
echo 数组参数列表 $@
echo pid $$
echo pre pid $?
echo $!
重定向:
test 'aa' -eq "bb" > out ##命令输出到 out 文件,报错信息并不会进入 out
test 'aa' -eq "bb" > out 2>&1 ##将 stderr 合并到 stdout,则报错信息进入了 out
五. 常用命令
ls,ll, wget, curl, history