文档库 最新最全的文档下载
当前位置:文档库 › Linux基础笔记

Linux基础笔记

Linux-os day01

准备:
工具及环境:
虚拟机:Vmware-workstation-full-10.0-...
镜像文件:redhat-Linux5.5...
VMtools:自动捕获和释放鼠标光标
进行复制和粘贴的操作
高分辨率显示
网络性能的改善
安装步骤:
step1:安装Vmware-workstation-full-10.0-...
step2:新建一个空白的硬盘虚拟机选择Linux,Redhat5操作系统
step3:加载镜像文件,运行虚拟机进行安装
step4:进入欢迎界面进行相关配置,禁用防火墙,禁用SELinux等开发环境的配置
step5:安装完成后,配置VMtools
菜单->虚拟机->vmtools安装
将VM...tar.gz 拖动到桌面
右键->打开终端
cd ~/Desktop (按De键后用Tab键补全)
tar -zxvf VM...tar.gz
cd vm... (按vm键后用Tab键补全)
./vmware(Tab键补全)
...敲回车
1024*168 选择3
...
reboot
step6:终端显示的配置
右键->打开终端->编辑->当前配置文件->常规
Bit Stream(第三个字体) -> Roma -> 14
确定->关闭


一、Linux概述:

1. Unix的两大分支:
BSD 与 SystemV
2. GPL协议(general public lisence)
核心思想:开源
免费获取源代码,使用,传播,修改,用于商业用途,
但是对源代码的修改都要遵循GPL协议

3. Unix的发行版:
AIX--IBM
Solaris -- Sun
HP-Unix -- HP

4.Linux的发行版本
RedHat系列: redhat/rhel ,centos,fedore,fedflag,suse...
Debian系列: Ubuntu...
5.关于Linux:
Linus
GNU/Linx
Linux是一个内核,而不是完整的操作系统,泛指使用Linux内核的发行版(RedHat,Ubuntu)

6.Linux特点:
1>严格意义上的多用户系统,每个用户的权限分明
2>稳定,安全
3>内置强大的网络功能
4>免费
5>代码主要是C语言编写,可移植性强

7.Linux下一切皆文件
将所有的设备都可当作文件来看待
8.Linux系统结构
用户
应用程序
shell -- 外壳
kernel --内核
系统调用(外部的程序访问内核提供的服务的一个入口)
各种内核服务(打印服务,串口通信,播放声音)
各种硬件驱动
硬件

9.文件系统:
Windows:NTFS FAT32
Linux:ext系列
作用:管理磁盘数据

10.Linux目录结构
树状结构
/ -- 根目录
/home -- 普通用户的家目录(主目录) Adela --> /home/Adela <==> ~
/root -- 超级用户的家目录 root --> /root
/etc -- 配置文件
/etc/passwd -- 用户信息
/etc/shadow -- 密码信息
/bin -- 可执行文件
/boot -- 启动文件
/lib -- 库文件
/usr
/usr/bin 用户可执行文件
/usr/lib 用户程序库
/usr/include 用户头文件
/mnt -- 其他文件系统的挂在路径
/dev -- 设备文件
/dev/null 无底洞
用户登录后,缺省目录为用户的主目录

11.文件路径
绝对路径--与当前位置

无关的路径(以/开头) /home/Adela
相对路径 -- 相对于当前位置的路径 Desktop

12. X-Window
Linux 的两种界面
Xwindow(图形界面) -- 个人pc
文本界面 -- 服务器
ctrl + alt + shift + f1-f6
alt + f7
13.bash 交互的特点
支持Tab补全
支持命令的上下翻动

14.Liux权限机制
主目录(家目录)的概念
普通用户:/home/xxx
root用户:/root
用户拥有的权限;
普通用户:对家目录下的目录的绝对权限,对其他目录没有修改的权限
root用户:对整个系统拥有绝对权限

15.基础命令:
ls -- list
ls 查看当前目录
ls /home 查看指定目录
pwd -- print working directory
clear -- 清屏
cd -- change directory
cd 回到主目录
cd /home 切换到指定目录


作业:
使用cd命令切换目录
熟练使用ls,pwd 等命令


------------------------------------
二、Linux基本命令
1.基本命令:

echo -> 回显
echo hello
echo $PATH
echo `ls`
date 显示或者设置日期
alias 给某个命令起别名
alias ll='ls -l' (等号两边不能有空格)

ls [option...] [arg...]
ls -a[ll] 显示所有的文件 包括隐藏文件
ls -l[ong] 以长格式显示文件信息
ls -al
ls -h 以k,m,g的形式显示文件大小
ls -F 显示文件类型
ls -R 递归显示

ls / 显示/目录的内容
ls -a / 显示/目录下的所有内容

ls -l 以长格式显示文件信息
drwxr-xr-x 2 root root 4096 01-12 10:04 bin

d:代表文件类型 共7种
rwxr-xr-x: 文件的三组权限(u,g,o)
2:文件的硬链接数
root:文件的属主
root:文件的属组
4096:文件大小 (以byte为单位)
01-12: 文件最后的修改时间
bin: 文件名

bash常用快捷键:
Ctrl+c 结束一个前台进程
Ctrl+z 挂起一个前台进程
Ctrl+l 清屏

man[nue] 手册
man ls

2.目录的操作命令:
cd 切换工作目录
相对路径
绝对路径
几个特殊的目录:
. 当前目录
.. 上层目录
~ 用户的主目录 ~ 代表 /home/Adela
cd若不跟参数代表回到家目录

mkdir 创建新目录
mkdir -p dir1/dir2/dir3
-p代表自动创建父目录
rmdir 删除空目录
touch 创建普通文件/更新最后的访问时间
rm 删除文件/目录
rm -rf 强制递归删除目录
mv 文件/目录的移动/重命名
cp 文件/目录的拷贝
cat 查看文件的内容
more/less 分页查看文件内容
head/tail 查看文件的头部和尾部
file 查看文件的类型
wc 统计文件单词数,行数,字符数

3.vim 编辑器
三种模式
命令模式
编辑模式
末行模式

命令模式 --> 编辑模式
a,i,o A,I,O
编辑模式 --> 命令模式
Esc
命令模式

--> 末行模式

末行模式 --> 命令模式
Esc

2.末行模式的命令
:w 保存
:wq 保存退出
:q 退出
:q! 强制退出
:x 保存退出
:set nu 显示行号
:set nonu 取消显示行号


搜索:
:/keyword -- 使用n/N将光标定位到上/下搜索到的字符串 或者 * 寻找下一个字符串
替换:
:line1,line2 s/oldstr/newstr
:%s/oldstr/newstr
:%s/oldstr/newstr/g
注:line1,line2 代表从line1开始到line2 结束的内容
% 代表全文
g代表替换行内所有匹配的字符串(默认只找行内的第一个字符串)



3.命令模式的操作
删除命令:
x --删除一个字符
nx --删除n个字符 n代表数字
dw --删除一个单词
ndw --删除n个单词 n代表数字
dd --删除一行
ndd -- 删除n行
d$ --从光标处删除到行末
d^ --从光标处删除到行首

撤销和重做
u[ndo] --撤销
. --重做

复制粘贴
yw --复制一个单词
nyw --复制n个单词
yy --复制一行
nyy --复制n行
y$ --复制到本行结束
y^ --复制到本行开头

p --粘贴

光标定位:
行定位
nG:定位到n行 :n
G:定位到最后一行
gg:定位到文件开头
屏幕定位
H: 屏幕最开头
M:屏幕中间
L:屏幕最下方
行内定位:
$:定位到行末
^:定位到行首

4.vim配置文件
全局配置文件:
/etc/vimrc --配置会对主机上的所有用户起作用
用户配置文件:
~/.vimrc --对当前用户起作用
用户配置文件的优先级高

常见配置:
set nu 显示行号
set ts=2 设置tab宽度为2
set autoindent 设置自动缩进
set ic 搜索不区分大小写
set hlsearch 搜索高亮
syntax enable 语法高亮
set mouse=a 鼠标自动

---------------------------------------
三、文件的操作
1.如何查看文件的权限
ls -l 或者 ll
ll hello.txt
-rwxrwxrwx 1 Adela Adela 0 01-13 11:29 hello.txt
中的 rwxrwxrwx查看
2.权限的分类
r -- 可读
w -- 可写
x -- 可执行
3.权限的分组
u -- 属主
g -- 属组
o -- 其他用户
4.如何修改权限
方式一:u,g,o, a + ,-, =
chmod u+x,g-x,o+r filename
chmod a+x filename
chmod u=rwx filename
方式二:八进制方式
chmod 777 filename
chmod 644 filename
111 100 100
rwx r-- r--
5.修改文件的属主和属组
chown sramedu:sramedu hello.txt
chown sramedu hello.txt
chgrp sramedu hello.txt
chown -R sramedu:sramedu dir


6.文件的查找
locate -- 系统在引导时,会更新内部的文件数据库,

在该数据库中查找文件
eg: locate stdio.h

whereis -- 查找的范围,系统环境变量PATH中指定的路径中查找

find -- 从磁盘上查找,功能强大
eg:find /usr/include -name “stdio”
find -name “*.txt”
find -name "*.txt" -user sram |xargs ls -l
find /etc/ -name passwd -exec ls -l {} \;
ps:exec 参数后面跟的是命令 以;结束,但是需要\转义
{} 指代find找到的文件名
xargs 作为文件来处理

which -- 查找命令
which ls

grep -- 查找文件中的内容
eg:grep “sram” /etc/passwd

正则表达式:
* -- 代表任意多个字符
? -- 一个任意的字符
[] -- []可以指定使用的范围 [0-9A-Za-Z]
eg: ls [1-4].txt
[!c]-- 除了[]中指定的c其他匹配的都显示
eg:ls [!a].txt
. -- 所有的单个字符

文件的重定向:
< 标准输入(stdin) 重定向
cat < /etc/passwd
> 标准输出(stdout) 重定向 >>
find . -name "*.txt" > res.txt
2> 标准错误(stderr) 重定向
find . -name "*.txt" > res.txt 2> /dev/null
| 管道
cmd1 | cmd2
将cmd1的输出作为cmd2的输入使用
find -name "*.txt" -usr sram |xargs ls -l

链接文件:
硬链接:
ln targetfile linkfile
目录录下的两个子目录
. -- 当前目录的硬链接
.. -- 上层目录的硬链接

使用限制:
不能跨文件系统
不能链接目录

ln 1.txt new.txt

软连接: (相当于windows下的快捷方式)
ln -s targetfile linkfile
ln -s 1.txt new.txt

文件类型:7种
- -- 普通文件 touch或vim
d -- 目录 mkdir
c -- 字符设备 mknod c
b -- 块设备 mknod b
l -- 符号链接 ln -s
p -- 管道文件 mkfifo
s -- socket文件 socket程序创建



归档文件处理:
.tar.gz (.tgz)
eg:tar -zcvf code.tar.gz code/* (压缩)
tar -zxvf code.tar.gz (解压缩)

.tar.bz2
eg:tar -jcvf code.tar.bz2 code/* (压缩)
tar -jxvf code.tar.bz2 (解压缩)

.zip
eg:zip code.zip code/* (压缩)
unzip cod.zip (解压缩)



四、用户管理
1.如何切换用户:
su 切换到root用户,和su root相同
su - 切换到root用户,使用root用户的环境变量,同 su - root
su root 切换到root用户,任然使用切换前用户的环境变量

2.如何创建用户
useradd sramedu
在/etc/passwd ,/etc/shadow, /etc/group 文件中添加记录

3.修改密码
passwd 修改当前用户的密码
passwd sramedu
passwd -d sramedu sramedu指定为空密码
4.查看用户身份
who 查看当前哪些用户在线
whoami 查看自己是谁,查看eid(有效用户id)
who am i 查

看自己是谁,查看的uid(用户真实id)
5.如何删除用户
userdel sramedu 删除用户 /home/sramedu 还在
userdel -r sramedu 删除用户的 同时删除主目录
6.chmod用于修改已经存在的用户
chmod -d 修改用户主目录
chmod -u 修改uid
chmod -g 修改gid



--------------------------
五、进程管理
1.什么是进程
运行着的程序
2.如何查看进程
ps指令
ps 查看当前用户当前终端下的进程
ps u 查看当前用户所有终端下的进程
ps au 查看所有用户所有终端下的进程
ps aux 产看所有用户所有进程 (包扩没有控制终端的进程)
pstree
以树的结构显示进程
init进程是所有进程的父进程
top
类似于windows下的任务管理器
定时刷新
3.如何杀死进程
kill -n 进程id 发送信号n给id进程
kill -9 进程id 保证杀死任何指定的进程
pkill 进程名
4. 进程的前后台切换
1>如何 让一个进程在后台运行
./a.out &
即使放在后台,输出语句也会输出到当前终端
2>如何查看后台运行的进程
jobs(查看的是作业号)
3>如何将一个后台进程切换到前台执行
fg %作业号
4>如何将一个前台进程切换到后台执行
Ctrl^Z -- 暂停(挂起)

5.计划任务
crontab -e 调用用vim编辑器编写计划任务
crontab -l 用于查看当前用户的计划任务
crontab -r 删除计划任务

编写计划任务的格式:
分钟 小时 天 月 星期 shell指令/shell脚本/可执行文件

每个时间域可以用
* 代表通配
- 如 星期域的 “1-5” 代表周一到周5
, 如 星期域的 “1,5” 代表 周一和周5
*/n 每隔n个单位 分钟域“*/2” 代表 每隔2分钟




练习:
1.从/usr/include 目录中找到.h文件,并将查找哪个文件中包含printf关键字

2.使用crontab指令设置服务器周1-周5每天晚上11:00关机(注:关机指令为powoff)。如何实现?

3.将/home/sram下的code.tar.gz 解压到 sram 用户的 Desktop



1.find /usr/include -name "*.h" -exec grep "printf" {} \;
find /usr/include -name "*.h" | xargs grep "printf";
2.0 23 * * 1-5 powoff

3.tar -zcvf code.tar.gz code/*
tar -zxvf code.tar.gz -C /home/sram/Desktop


六、网络配置
虚拟机网络配置:
桥接 -- 宿主机和虚拟机相当于局域网内的两台主机使用,
他们的ip必须在同一网段,两者不能重复,适用
于宿主机处于局域网的状态下
host-only--虚拟机仅限于和宿主机进行通信,除了宿主机之外的主机无法通信
NAT -- 虚拟机和宿主机共享网络连接

配置ip和子网掩码
1.配置网络信息
ifconfig -- 查看网络接口的配置
lo -- 127.0.0.1 --- 代表本机,回

环ip,主要用于测试使用
eth0 -- 网络接口
ifconfig eth0 192.168.5.100 将eth0配置为192.168.5.100
ifconfig eth0 netmask 255.255.255.0 将eth0的子网掩码配置为255.255.255.0
ifconfig eth0 192.168.5.100 netmask 255.255.255.0
将ip配置为192.168.5.100 的同时将子网掩码配置为255.255.255.0

ifconfig eth0 up 启用eth0
ifconfig eth0 down 禁用eth0
ifconfig eth0 dynamic 将eth0配置为自动获取
ifconfig eth0 192.168.5.100 up 在配置的同时启用

2.配置网关
route -n 查看路由表
route add default gw 192.168.5.1 添加一条缺省的路由条目(网关)

3.通过配置文件配置网络参数(永久配置)
/etc/sysconfig/network -- 用于全局配置,配置网络是否在系统启动时启动
network=yes|no --自动启动或者不启动
hostname=localhost.domain --配置本机的主机名
/etc/sysconfig/network-scripts/ifcfg-eth0 --每个网络接口的配置文件
DEVICE=eth0
BOOTPROTO=dhcp|none -- 动态获取/静态指定
ONBOOT=yes|no -- 是否自动启动该接口
IPADDR=192.168.5.100 -- 指定的静态IP
NETMASK=255.255.255.0 -- 指定静态子网掩码
GATEWAY=192.168.5.1 -- 静态网关

ifup eth0 != ifconfig eth0 up
ifdown eth0 != ifconfig eth0 down

ifup /ifdown 重新加载网络接口的配置文件

/etc/resolv.cof -- 配置DNS服务 (用于域名解析)
nameserver 202.99.192.68
nameserver 202.99.192.67

/etc/hosts 用于配置本地的域名解析
https://www.wendangku.net/doc/8714230524.html, 192.168.2.99

/etc/host.conf 用于配置域名解析的顺序
默认:先通/etc/hosts进行解析,如果解析失败,
再通过/etc/resolv.cof 指定DNS服务器进行解析
4.网络相关工具
ping 指定IP
netstat 查看网络连接路由表和网络接口的信息
nslookup 查看一台机器的ip相对应的域名
七、Shell介绍
1.shell的执行方法:
source hello.sh
hello.sh 内容 export PATH=$PATH:/sbin
2.环境变量
什么是环境变量:
系统预先定义的一些变量,系统正常运行的时候需要依赖这些变量
(系统除了在当前位置下去查找程序外,还会在环境变量指定的路径
中去找,用户可以通过设置环境变量来更好的运行程序)
常见的环境变量:
PATH: 命令的查找路径
PATH=$PATH:/sbin
export PATH

HOME:用户的主目录
SHELL:用户的登录shell
登录shell :在系统登录的时候,自动采用的shell
在/etc/passwd

登录shell的配置文件,在系统登录的时候加载1次
非登陆的shell的配置文件,每次运行bash,都会加载该配置文件


登录shell
/etc/profile 全局配置 针对所有用户

~/.bash_profile 局部配置 只针对当前的用户

非登录shell
/etc/bashrc 全局配置 针对所有用户
~/.bashrc 局部配置 只针对当前的用户

在修改完配置文件后,使用source使其立即生效



八、Linux服务介绍:
1、服务的种类:
系统服务:服务对象是系统本身
网络服务:提供给网络中的一些客户端使用

独立式的服务:服务启动时在背景中执行
短暂式的服务:平时不会启动,只在需要时启动
2、传统服务的管理方法:
手动启动服务
手动停止服务

3、管理独立式服务
手动的启动和停止
service指令开启关闭重启服务
设定独立式服务的启动与停用
/etc/rc.d
/etc/rc.d/init.d
/etc/rc.d/rc1.d
chkconfig设定
4、管理短暂式服务
超级服务器
inetd
xinetd
九、服务器的搭建
TFTP服务器的安装
1.查看是否已经安装了vsftpd
rmp -qa | grep vsftpd
2.如果没有安装,需要安装vsftpd
rpm -ivh vsftpd... rpm
3.查看是否安装成功
rpm -qa | grep vsftpd
4.配置vsftpd 、
vim /etc/vsftpd/vsftpd.conf
5.配置匿名的账户
匿名账户:
用户名: ftp、anonymous
密码:无
本地账户:
用户名:本地账户
密码:本地用户的密码
访问路径: /var/ftp
数据库账户
6、启动vsftpd服务
/sbin/service vsftpd start (stop/restart)

7、测试匿名账户
1.下载 get
2.上传
1.在目录/var/ftp下创建一个目录 如 uplode
2.将新建的目录修改为777的权限
chmod 777 upload
3.上传
1.打开vsftpd.conf 上传选项
2.关闭防火墙
3.上传到新建的upload目录
关闭

nfg
http
...







ps:本文中sram和sramedu指用户名称

相关文档