1.Linux系统简介
Linux是一套免费使用和自由传播的操作系统内核,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统内核。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统内核。
特点:
开放性:特别是遵循开放系统互连(OSI)国际标准。
多用户:操作系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。
多任务:计算机同时执行多个程序,而同时各个程序的运行互相独立。
2.操作系统的结构
Kernel 硬件
管理设备,内存,进程
控制系统程序/实用程序和系统硬件之间的功能
管理交换空间(swap space),守护进程(daemon progress),文件系统以及其他函数
Shell 内核(与用户的交互式环境)
Shell是用户与内核之间的接口,它充当解释器或转换器
常见的Shell
Bourne shell (sh) 第一个流行的 shell 是由 Steven Bourne 发展出来的,为了纪念他所以就称为 Bourne shell ,或直接简称为 sh
C shell (csh) 另一个广为流传的 shell ,是由柏克莱大学的 Bill Joy 设计依附于 BSD 版的 Unix 系统中的 shell ,这个 shell 的语法有点类似 C 语言,所以才得名为 C shell ,简 称为 csh
Bourne-again shell (bash) 是sh的增强版,linux默认的shell
File System 文件系统
目录– 存放其他文件以及目录的场所
一个路径名可以唯一标识一个文件/目录的所在。
/位于不同目录之间作为分割,/位于路径的开始代表根目录
绝对路径 :指定与根目录相关的目录或文件,以/开头。例如/usr/share/doc
相对路径 :指定与当前工作目录相关的文件,不以/开头。例如 share/doc
linux系统中,使用/来表示根目录
linux系统中,使用~来表示家目录
linux系统中,使用./来表示当前目录
linux系统中,使用../来表示上级目录
3.简单的命令(区分大小写)
history: 查看历史命令
pwd:查看自己当前目录
ls:查看所在目录下有哪些文件。
cd:去指定的目录,该目录必须存在
ls [options] [file/pathname] 列出指定目录中的文件。
-a 显示出所有文件,包含隐藏文件
-R 显示递归清单
-l 以长格式列出所有文件
ls
查看当前目录下的目录或者文件
ls 路径
查看指定路径下的文件目录或者文件
-a 查看所有文件和隐藏文件
-A 查看所有文件和隐藏文件,除了.和..
-l 长格式列出所有的文件和目录
cd [目录]
切换到指定目录中
$ cd
$ cd ~
$ cd /
$ cd ../
$ cd dir1
回家的几种方法:
$cd /home/briup
$cd ~
$cd $HOME
$cd
.文件/文件夹:名称以“.”开头就是隐藏文件
cat .bash_history
~/.bash_history
cat可以看该文件的内容
取别名:alias 别名=‘常用命令’
配置生命空间:
1.当前交互环境$ 临时的配置,只针对当前交互shell
2.用户级别 ~/.bashrc
3.系统级别 (所有用户) /etc/profile
clear 清除屏幕内容
history 列出历史命令。
man 命令 查看指定命令手册
输入回车,向下翻一行
输入空格,向下翻一页
输入q,退出手册
4.新建用户
登录:ssh uername@ip地址
useradd -s /bin/bash -d /home/username -m username
新建用户之后要设置密码 passwd username ,可以设置密码也可以用来重置密码。
exit退出。
5.切换用户的方法
1.先退出exit,再ssh 登入
exit退出的是本次连接的shell环境,里边su切换可以嵌套好多shell,退出一次就退出一层shell。
2.su命令:su - username/su username(区分大小写 ,用空格分割)
su - 用户名: 彻底切换,切换家目录,切换环境变量
直接切换到用户的家目录,每个用户都有一个家目录,有用户变量
su 用户名:切换到用户,root切换到其他用户不用输入密码,从其他用户切换到其他用户需要输入密码
whoami 查看当前用户
3.删除用户
userdel -r 用户名
-r删除所有的信息
删除用户的相关数据,而用户的数据有:
用户账号/口令相关参数:/etc/passwd, /etc/shadow
使用者群组相关参数:/etc/group, /etc/gshadow
用户个人文件数据: /home/username, /var/spool/mail/username.
id: 这个命令则可以查询某人或自己的相关 UID/GID 等等的信息
3.切换shell的方法
首先确保服务器提供了对应的shell软件 (没安装就apt-get install 安装)
切换到Bourne-again shell 用bash 普通用户提示符 $ root用户提示符 #
切换到Bourne shell 用sh 普通用户提示符 $ root用户提示符 #
切换到 C shell 用csh 普通用户提示符 % root用户提示符 #
6.文件操作
创建目录
mkdir 目录名:在当前目录创建一个目录
mkdir 目录名 目录名: 在当前目录创建多个目录
mkdir a b
mkdir ~/a ~/b
mkdir -p d6/d7/d8:级联操作,当前d6/d7/d8都不存在,可以将不存在的目录创建出来。
mkdir ~/b/c
mkdir -p ~/b/c
移动(可以理解为剪切操作)
mv 要移动的目录或文件 移动到的路径
将一个目录或文件移动到另一个地方
如果是移动到同一个目录,相当于重命名
mv day04 day05
mv ~/test/index.html /var/www/html/test/
复制/拷贝
拷贝文件/目录到指定文件/目录中
cp [-i]要复制的目录 复制到的目录(-i,可以出现提示文字)
cp -r 要复制的目录 复制到的目录(加了-r可以将内部文件也复制过去)
cp普通文件 到不存在的文件就是复制并且进行重命名
cp存在的文件,复制并且进行覆盖
删除
rmdir 目录
删除一个空目录
rm 文件
删除文件
rm -r 目录
递归删除非空目录中的内容
查找
find / -name '*.txt' 在根目录下查找.txt文件
压缩文件
tar –zcvf xxx.tar.gz /home/day02
将day02文件夹压缩到当前目录下,压缩包名称为xxx.tar.gz
解压缩
tar -zxvf xxx.tar.gz
sudo
使用 root 的身份来运行命令
并非所有人都能够运行 sudo , 而是仅有规范到 /etc/sudoers 内的用户才能够运行 sudo 这个命令。其配置文件位于/etc/sudoers中。
在/etc/sudoers文件中,添加 ubuntu ALL=(ALL)ALL一行,其中ubuntu是用户名。
7.查看内容
cat :全看了。有的终端只能看一页
more :空格一页一页,f直接到最后,b回看,回车一行一行看
tac: cat的行倒叙,行号倒着输出。
tac /etc/passwd | more
|:管道符号
可以把|前的输出结果 提供给more输出,可以分页看了
less:可以使用上下,可以直接查找/lo。。。q退出
nl /etc/passwd | less
nl有行号 less可以一行一行看
head :查看头十行
head -1 查看第一行
tail:查看尾十行
tail -3 查看最后三行
8.重定向
> 将>前命令的输出作为输入导入到>后文件或命令中(会覆盖原来内容)。
>> 将>> 前命令的输出作为输入导入到>后文件或命令中(追加到原来内容后)。
9.权限管理
提升权限有哪几种方法?
1.加入root、xxx所在组 usermod -g 0 name
2给与sudo 的超级执行权限 /etc/sudoers briup ALL=(ALL:ALL) ALL
3.chmod -R 777 XXXX 提升某一个指定文件的权限
用户角色
user 文件拥有者 u
由于Linux是个多人多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生, 为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个【文件拥有者】的角色就显的相当的重要了!可以为文件设定不同的权限,来限制其他人的访问。
group 同组人 g
团队开发时,可以设置团队成员的访问权限
other 其他人 o
其他访问者。
文件权限
read 读 r 4
write 写 w 2
execute 执行 x 1
修改用户权限
1)chmod g+w index.html
为index.html添加同组人权限,添加不同角色权限可以用逗号隔开
chmod g-x index.html
为index.html删除同组人的执行权限。
2) chmod 777 index.html
用8进制设定
rwx rwx rwx
111 111 111
7 7 7
10.vim
vim是vi的升级版,linux的主要文本编辑,类似于window的记事本
vim是可以安装插件的。
三种模式
输入模式
输入模式进入命令模式,使用esc
输入模式进入底行模式,使用esc进入到命令模式之后,使用:进入底行模式
命令模式
命令:
yy 复制一行
3yy 复制3行
p 在光标所在位置的下一行粘贴
dd 删除光标所在行
5dd 删除5行
u 撤销
...
命令模式进入输入模式,使用i,a,o,I,A,O
i在光标前插入文本
I在光标所在行前插入
a在光标后插入文本
A在光标所在行末插入
o在光标所在行下插入新行
O在光标所在行上插入新行
命令模式进入底行模式,使用: / ?
底行模式
底行模式进入命令模式,使用两次esc
底行模式进入输入模式,先使用两次esc,进入命令模式,然后再使用i,a,o,I,A,O进入输入模式
:set nu 显示行号
:set nonu 不显示行号
:wq 保存并退出
:w 保存不退出
:q 不保存,直接退出
:q! 强制退出
11.后台进程
1.ps -ef
列出当前系统中正在运行的进程 /usr/bin/ps [-options]
-e 列出准备就绪的或者正在运行的程序
-f 显示程序的详细信息
例如: $ ps –ef | grep telnet
显示出进程号后,可以用kill [进程号]中断进程
也可以用kill -9 [进程号] 立即中断进程,杀死进程
2.ctrl c /z
c是中断
z是后台暂停
bg %n 后台运行
fg %n 将后台任务调到前台(%n n是作业编号区别于进程号)
sleep 1001 & 使用&结尾表示将当前启动的任务放置到后台执行
jobs可以查看当前任务,前边编号就是作业编号
后台暂停后可以使用bg %n 让后台程序运行。