专注于开发,一切皆文件。
1.Linux系统结构(依次从内而外)
硬件,内核层,shell层,应用层,用户
2.Linux目录结构
一级目录: /
二级目录(及说明):
bin : 存放用户二进制文件
boot :存放内核引导配置文件
dev : 存放设备文件
etc : 存放系统配置文件
home : 用户主目录
lost_found : 文件系统恢复时的恢复文件
media : 可卸载存储介质挂载点
root : root用户主目录
sbin : 存放系统的二进制文件
srv : 存放服务相关数据
sys : sys虚拟文件系统挂载点
tmp : 存放临时文件
usr : 存放用户应用程序
var : 存放邮件,系统日志等变化文件
LINUX 基础命令
3. Linux命令格式:
命令 + 空格/TAB键 +选项
4.Bash 常用的快捷键
TAB键 自动补全
Ctrl + C 结束当前进程
Ctrl + Z 把当前进程转到后台运行
Ctrl + D 退出当前Shell
Ctrl + L 清屏
Ctrl + Shift + T 新建标签
5.基础指令
clear 清楚屏幕内容
pwd 显示当前工作目录
echo 回显用户输入
alias 命令的重命名 alias 新名字=‘旧名字’
6. date 显示/设置系统时间,日期
OPTION
-d 显示
-s 设置
FORMAT:
%H 小时
%M 分
%S 秒
%y 年的最后两个数字
%Y 年
%m 月
%d 一个月的第几天
用法举例:
date +%Y%m%d 20200710
7.用户手册
man + (linux标准指令)
8.cd -切换工作目录
绝对路径:由“/开头,相对较长
相对路径:相似于目前所在的位置
~ :用户主目录
. :当前目录
..:上行目录
9. -ls
-a :显示所有文件(包括隐藏文件(.开头))
-l : 以长格式显示目录
文件权限:r :全权限
w :写权限
x :执行权限
三组权限:属主(owner)
属组(group)
其他(other)
文件大小:1字节 = 8位 1位可以标识0~255 2^8
10.mkdir 创建新目录
-p 创建多层次目录
eg: mkdir -p 1/2/3
11.rmdir 删除空目录(不常用)
12.touch 创建普通文件/更新文件最后访问时间
13.rm 删除文件/目录
rm -r -f + 文件名 : 强制删除多层次文件
-i 交互模式
14.mv 移动文件/目录/重命名 路径
注意:文件的路径
15.cp 文件/目录复制
-r 递归 用于拷贝目录
16. cat 查看文件内容
直接显示,不进入文件
cat text1 text2 > text3
17.more/less 分页查看文件内容
more -num +文件名 功能:分页查看文件内容 num 指定每页显示的行数
空格键进入下一页,b键回到上一页
18.head/tail + 文件名 查看文件的头部/尾部内容
19.file 查看文件类型
20.wc 文字统计
-c 只显示字符数
-l 只显示行数
-w 只显示字数
21.VIM编辑器
三种工作模式: 命令模式、插入模式、末行模式
命令模式 :使用Vim此模式,可使用方向键(上下左右)或hjkl移动光标的位置,
还可以对文件内容进行复制,粘贴,替换,删除等操作。
插入模式:完成按ESC返回命令模式
末行模式 : :q 直接退出,如果在文本输入模式下修改了文档内容则不能退出
:wq 保存后退出
:x 同wq
:q! 不保存内容,强制退出
set number 或set nu 显示行号
文本插入操作:
i 光标所在位置插入
a 光标所在位置之后插入
o 下一行插入
I 行首插入
A 行末插入
O 上一行插入
光标移动操作:
h 光标左移,如果在按h命令前输入数字n,则光标左移n个字符;
l 光标右移、 j 光标上移、 k 光标下移
0(零)或者^ 光标移动到行首
$ 光标移动到行尾
gg 光标移动到文件头
nG 光标移动到第n行
G 光标移动到文件尾
H 光标移动到屏幕上显示的第一行,并不一定是文件头
L 光标移动到屏幕上显示的最后一行,并不一定是文件尾
M 光标移动到屏幕的中间一行
文本修改操作:
x 删除光标所在字符
u 恢复,撤销
nx 删除光标所在n个字符
dw 删除光标所在单词
ndw 删除光标所在n个单词
d$ 从光标所在开始往后删除到本行末
d^或者d0从光标所在开始往前删除到本行首
dd 删除本行
ndd 从光标所在行开始删除n行
快速修改:
r 替换
nr 替换n 个字符
文件复制粘贴命令:
yw 复制一个单词
nyw 从光标位置开始,复制n 个单词
yy 复制一行
nyy 从光标所在开始,复制n行
p 粘贴
~/.vimrc配置中,比较常用的有:
:syntax enable/on 打开关键字高亮显示功能
:syntax off 关闭高亮显示
22.文件权限操作
r w x
7 : rwx 6: rw- 4:r-- 0:---
777 664 644 774 000
修改权限:两种方式
1.八进制方式 举例:chmod 777 test.c
2.以u,g,o, +,-,=等方式修改权限
举例:chmod u+x test.txt
chmod o=rwx test.txt
chmod u+x,g+w,o-r text.txt
修改文件的属主属组
chown xszx test.txt 将test.txt文件的属主修改为xszx
chgrp xszx test.txt 将test.txt文件的属组修改为xszx
chown xszx:xszx test.txt 将test.txt 文件的属主和属组都修改为xszx
chown xszx:xszx dir 将dir目录的属主和属组修改为xszx
chowm –R xszx:xszx dir 将目录dir及dir下所有子文件的属主和属组都修
改为xszx,-R代表递归。
文件查找:
1.find 格式:find [起始目录][OPTION] 参数[-print(默认) –exec -ok]
-name 根据指定的名称进行搜索,pattern可以使用正则表达式和通配符
-user<用户名> 按照文件的属主进行查找
-group<组名> 按照文件的属组进行查找
-nogroup 查找属组无效的文件(属组不存在或已经被删除)
-nouser 查找属主无效的文件(属主不存在或已经被删除)
-perm<权限> 按照权限进行查找
-mtime[+/-/=]n 按照最后修改时间进行查找 - n 代表n天以内
-atime[=/-/=]n 按照最后访问时间进项查找
-ctime[+/-/=]n 按照创建时间进项查找
-size[+/-/=]n[c] 查找文件长度为n 的文件,默认以块为单位,c表示以字节为单位
-type 按照文件类型查找,b(设备块) d(目录) c(字符设备) p(管道) l(符号链接) f(普通文件)
用法举例:
1) 找出/etc目录下以passw开头的所有文件
find /etc-name"passw"
2) 找出/var/log目录下所有的5天前创建的.log文件
find /var/log –name “*.log” –mtime +5
注:+5是指5天以前的文件,如果查“-5”则是5天以内的文件
3)找出/home 目录下“xszx”这个用户的文件
find /home –user “xszx”
4)找出当前用户主目录下所有长度<1K的普通文件
find ~ -size 1024c –type f
2.查找命令 which
格式:which [-a] command
举例:which traceroute –a
若加上 –a参数,则可以列出所有的可以找到的同名执行文件,而不是仅显示第一个
3.whereis-
whereis命令用来定位命令的二进制程序、源代码文件和man手册页等相关文件的路径。
-b :只找二进制的文件
-m :只找在说明文件manual路径下的文件
-s :只找source 来源文件
-u :没有说明文件
whereis 用法举例
whereis passwd 显示所有相关文件
whereis –b passwd 只显示二进制文件
whereis –m passwd 只显示manual手册下的文件
4.grep-查找内容
格式:grep[选项] 格式 [文件及路径]
说明:其中的格式是指要搜索的内容格式,若缺省“文件及路径”则默认表示在当前目录下搜索。
-c 只输出匹配行的计数
-I 不区分大小写(只适合用于单字符)
-h 查询多文件时不显示文件名
-n 显示匹配行及行号
-s 不显示不存在或者无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
23.文件重定向
Linux中默认的标准输入输出都指向中断设备。其中标准输入指向键盘,而标准输出和标准错误都指向显示器
使用‘<’符号可以将标准输入重定向到某个其他文件
使用‘>’符号可以将标准输出重定向到某个其他文件
使用‘2>’符号可以将标准错误重定向到某个其他文件
使用‘|’符号可以将前一个命令的输出作为后一个命令的输入
重定向使用举例:
find –name ‘*.txt’ > res.txt 将查找结果保存到res.txt中
cat</etc/passw将cat的输入使用/etc/passwd来代替
24.管道操作
Linux 中,经常使用管道符号 ,‘|’来连接两个或者多个命令。其含义是:将前一个命令的输入,
下面举例说明:
ls-l|grep 'linux' 在ls -l命令的输出结果中查找Linux的关键字
rpm-qa|grep ‘vim’将rpm-qa命令的输出当作grep ‘vim’命令的输入
find.-name‘*.txt’|less 分页查看find的输出结果
find/usr/-name‘*.h’|grep‘stdio’查找文件名中包含stdio的头文件
find/usr/-name‘*.h’|xargs grep‘printf’查找文件内容包括 printf的头文件
25.链接文件
在Linux中,链接文件被分为两种:硬链接和符号链接
Linux中任何一个文件都可以看成是一个硬链接,只不过有的文件的硬链接不只一个,文件的硬链接数可以通过ls –l看到
软链接:
命令: ln –s 原文件 目标文件
特征: 1.相当于windows的快捷方式
2.只是一个符号链接,所以软链接文件大小都很小
3.当运行软链接的时候,会根据链接指向找到真正的文件,然后执行
4.所有软链接文件的权限是777,而真正的权限是由指向的那个文件决定的
5.原文件丢失,软链接无法访问,会报找不到的错误
6.ls –al以后,软链接后面箭头指向的是原文件
 
26.文件类型LINUX
Linux中主要的文件类型分为7种:普通文件,目录文件,符号链接文件,FIFO,Socket文件,字符设备文件和块设备文件
文件类型 创建类型 在ls中的表示方式
普通文件 touch/vi/… -
目录 mkdir d
符号链接 ln -s l
管道文件 mkfifo p
字符设备文件 mknod c c
块设备文件 mknod b b
Socket文件 Socket 程序创建 s
27.文件打包
Linux下的压缩工具很多,下面是Linux下常用的压缩工具及其生产文件的后缀:
tar: 后缀名为:.tar
zip/unzip 后缀名为: .zip
gzip/gunzip 后缀名为: .gz
bzip2/bunzip2 后缀名为: .bz2
compress/uncompress 后缀名为: .z
lha 后缀名为: .lzh
tar 工具
tar命令是Linux下最常用的打包工具,可以将若干个文件或若干个目录打包成一个文件,即有利于文件管理,也方便压缩和文件的网络传输。
参数:
-c :建立一个压缩档案的参数指令(create的意思)
-x :解开一个压缩档案的参数指令!
-t :查看tarfile里面的档案
注意:在参数的下达中,c/x/t/仅能存在一个,不可同时存在,因为不可能同时压缩与解压缩
-r :追加
-z :是否同时具有gzip的属性?即是否需要gzip压缩
-j :是否同时具有bzip2的属性?即是否需要bzip2压缩
-v :压缩的过程中显示档案,这个常用,但不建议用在背景执行过程
-f :使用文件名,请注意,在f之后要立即跟文件名!不要再加参数。
-C :后跟目录代表切换到该目录
-p :使用原档案的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的档案中
举例:
tar –cvf backup.tar 将当前目录下的所有文件打包为backup.tar
tar –xvf backup.tar 将backup.tar文件展开
tar –xvf backup.tar –C./code 将backup.tar 文件展开到code目录下
具有gzip功能的tar命令举例: tar –zcvf backup.tar.gz 将backup.tar.gz展开
具bzip2功能的tar命令举例 tar –jxvf backup.tar.bz2 将backup.tar.bz2文件展开
例子:
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
LINUX 进阶
1.Linux进程管理
进程与程序:一个程序可以包含多个进程
父子进程:一个进程由另一个进程派生而来的,我们将两个进程称为“父子进程”
1)开启进程 ./a.out 之前进行一步 gcc+文件名 生成一个a.out 可执行文件
2)在后台运行 vim test.c &
3)查看后台作业 jobs
4)将后台作业放到前台运行 fg % 作业码数字
5)将前台运行作业放到后台工作 bg % 作业代码数字
6)查看进程 ps
ps 查看当前用户当前终端下的进程
ps-l 长格式显示指令内容
ps u 查看当前用户所有终端下的进程
ps au 查看所有用户所有终端下的进程
ps aux 查看所有用户所有进程(包括没有控制终端的进程,即守护进程)
ps -l 显示内容:
F:代表这个程序旗标
4:代表此程序的权限为root
S:代表程序的状态(STAT)主要的状态有
R :运行或者就绪
S :可打断睡眠
D : 不可打断睡眠
T :暂停
Z :僵尸
C 代表CPU使用率,单位为百分比
PRI/NI :代表此程序被CPU所执行的优先级,数值越小代表该程序越快被CPU执行
ADDR/SZ/WCHAN :都与内存有关,ADDR指出该程序在内存的那个部分,如果是个running程序,一般就会显示‘-’
SZ代表此程序用掉多少内存;
WCHAN 表示目前程序是否运行中,‘-’表示是在运行中
TTY:登入者所使用的终端
TIME:此程序实际花费CPU的时间,并非系统时间
CMD:表示此进程是由哪个指令产生
ps -u:
USER:该进程的属主用户名
PID:该进程的进程id
CPU:该进程使用的CPU资源百分比
MEN:该进程所占用的物理内存百分比
VSZ: 该进程所使用的虚拟内存大小
RSS: 该进程占用的固定内存的大小
TTY:该进程的控制终端
STAT:进程状态
TIME:运行时间
COMMAND:开启该进程的指令
7)pstree指令
pstree指令用于显示进程树,使用 pstree 可以很方便的查看各个进程之间的关系
 
8)top 指令
用于动态的显示进程影像,它每隔一段时间会自动刷新,也可以使用空格键强制刷新。等价于windows 上的资源管理器
9)杀死进程 kill
kill 指令用于向指定的进程发送信号,通常用于结束一个进程
格式 : kill -n pid
功能: 向pid进程发送n号信号,如果n不指定为15 ;使用kill -9 pid 可以杀死任何顽固的进程
kill -9 进程代码
2.网络配置指令
1)ifconfig
安装 sudo apt install net-tools
-a 查看所有网卡状态
-V 查看ifconfig 命令的版本信息
-s 查看统计信息
两个指示:1.网卡的IP地址2.本地的IP地址
2)route 命令经常被用于查看路由条目
3)网络查看工具
3.1netstat eg : netstat -nap | more
3.2nslookup nslookup [IP地址/域名]
在符号 >后面输入要查询IP地址域名并回车即可,如果要退出该命令,输入exit并回车即可
3.3 ping
ping 指令用于查看网络上的主机是否在工作
格式: ping [选项] [主机名/IP地址]
3.用户管理
1)Linux登陆过程
etc/shadow 中保存账户
etc/passwd 中保存密码
1.1 用户相关配置文件
每行代表一条用户记录,共有七个子项,使用“:”分割,代表的含义如下:
zx:x:1000:1000:zx,,,:/home/zx:/bin/bash
xszx : 用户名,不允许重复
x :密码,linux大都使用/etc/shadow存放密码,该字段使用x代替
1001: 用户ID,0代表系统管理员;1-500位系统预留;500以上是普通用户
1000:组ID,用来规范群组,与/etc/group有关
“ ” :账号描述,只是用来解释这个账号的意义。一般常见的用户全名信息
/home/xszx :用户主目录
/bin/bash : 用户登录shell
1.2密码配置文件
: 隔开
1.3 /etc/group文件
群组名称:群组密码:群组id:支持账号的名称
2)查看用户身份
who 查看当前在线用户
whoami 查看当前有效用户
who am I 查看当前真实用户
3)切换用户
su 用户名
4)用户操作
切记使用权限是超级用户
4.1增加用户
useradd -m -s/bin/bash 用户名
 -m:自动建立用户的登入目录。
4.2usermod 修改用户
4.3userdel 删除用户
4.4passwd 修改密码
4.FTP服务器搭建
1)安装vsftpd软件包 sudo apt-get install vsftpd
2)打开配置文件 vim /etc/vsftpd.conf 有修改
3)修改参数
550 Permission denied
需要修改 vi /etc/vsftpd.conf
write_enable=NO改为write_enable=YES,这样权限就运行了
4)重启vsftpd service vsftpd restart
5) ftp访问 ftp xxx.xxx.xxx.xxx
6) 下载文件 get 文件名 自己起的名
7) 文件上传 put 文件名 更改后名称
put/mput sample.c [ftp_sample.c]
意思是把本地机器当前目录下的文件smaple.c上传到远程ftp服务器的当前目录下,名称更改为ftp_sample.c。
 
 

posted on 2020-10-08 19:56  CharlieK  阅读(112)  评论(0)    收藏  举报