linux基础知识

1.基础概念

1.定义

Linux是一个免费、开源、基于Posix和Unix的多用户、多任务、支持多线程和多CPU的操作系统。通常C/C++/PHP/PYTHON/JAVA/GO都会部署在linux上。

文件名:字母、数字、下划线、圆点等组成。

Shell就是系统的用户界面,提供了用户与内核进行交互操作的一种接口,Windows XP中的Shell为命令行提示符CMD和窗口管理器Explorer。

2.特点

免费:免费试用

开源:任何人使用软件的同时都可以查看软件的源代码,或者根据自己的需要去修改它。

3.专业术语

Posix:可移植操作系统接口,标准定义了操作系统应该为应用程序提供的接口标准

UNIX :早期的操作系统,后来的 Windows和Linux 都参考了UNIX

多用户多任务:多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务。

线程:线程是CPU调度和分配的基本单位。

Linux 默认的文件系统类型:EXT3、EXT4,SWAP类型的文件系统只在linux交换分区时被使用。

端口号:在Linux系统中一个端口只能被一个应用程序所占用

4.centos

linux的主流版本有:Ubuntu,Red hat,Centos 唯一的区别是Red hat收费CentOS不收费

服务器首选是CentOs,Ubuntu桌面靓丽,但是对于服务器操作系统,一般都是远程操作,所以Ubuntu的桌面优点在做云端服务器上就无法显现了,因为一般都是命令行远程操作。

特点:

1.稳定:CentOS 的更新频率较低,版本较为稳定,Ubuntu经常更新

2.安全:CentOS 充分利用 SELinux 框架用于加强的安全层,而目前在 Ubuntu 中则不可用或者说是不容易使用,所以说服务器的首选还得是CentOS。

5.目录结构

/bin 存放常用的命令

/sbin 存放系统管理员的系统管理程序

/home 普通用户家目录

/root 超级管理员账户目录

/lib 系统开机所需要的最基本的的动态连接共享库

/lost+found 系统非法关机存放的文件

/etc 系统管理的配置文件和子目录 my.conf

/usr 用户的应用程序和文件

/boot 存放启动linux的核心文件,包括连接文件和镜像文件

/proc 虚拟目录,获取系统信息

/srv 存放服务启动之后需要提取的数据

/sys 安装内核中新出现的系统sysfs

/tmp 存放临时文件

/dev 设备管理器

/media 自动识别设备的挂载目录

/mnt 让用户临时挂载别的文件系统的,将外部的存储挂载在/mnt/中,目录中可以查看内容,myshare

/opt 主机额外安装软件的目录,如oracle等

/usr/local 给主机额外安装软件的目录,是通过编译源码方法安装的程序

/var 存放不断扩充的东西,经常修改的目录,包括日志文件

/selinux 安全子系统,能控制程序只能访问特定文件,有三种工作模式

2.命令帮助

1.man 命令 【mannual(手册页)】

较为详细的帮助手册页,以man db的方法安装,手册页通常分为8个章节。

man ls

2.命令 --help

大多数命令支持帮助选项,获取快捷帮助信息

ls --help

3.info 命令

info ls

4.help 命令

查看系统内部命令的信息

help pwd

5.type命令

查看命令是内部命令或是外部命令

type ifconfig

6.alias命令

取别名 alias if='ifconfig' 取别名 unalias if 取消别名

3.路径操作

1.ls 文件路径

文件类型: d 文件夹 -普通文件 l 链接文件 b 块设备文件 c 字符设备文件 p 管道文件

s 套接字文件(用于进程之间的通信--实现远程api)

-a(显示指定目录下所有子目录和文件,包括隐藏文件)-----------以“."开头的文件为隐藏文件

-l 以列表的方式显示文件的详细信息

-h 可读性增强显示信息

-d 列出当前目录的自身信息

三位一组的 r(读) w(写) x可执行

第一组 创建这个文件用户所有的权限(文件所有者)

第二组 创建这个文件夹用户所在组的权限(同组用户)

第三组 其它用户组对这个文件的权限(其它用户)

2.cd 文件路径

cd 切换到当前用户的主目录(home/用户目录)

cd ~ 切换到当前用户的主目录(home/用户目录)

cd / 进入根目录

cd .. 切换到上级目录

cd .  切换到当前目录

cd - 返回上一步位置

3.pwd

显示当前的路径

4.mkdir 目录名

-p mkdir /home/dir1/dir2 递归创建目录

{ } mkdir /home/{dir1,dir2} 创建多个目录

5.touch 文件名

创建文件

4.文件显示及过滤

1.cat 文件名

查看文件内容,可与管道符进行结合

-t 显示控制字符Tab键盘

1:搜索文件中含有ip的行

 cat 文件名|grep “ip”

2:查看关键字后十行

 cat 文件名|grep “关键字” -A 10

3:查看关键字前十行

 cat 文件名|grep “关键字” -B 10

4:查看关键字前后10行日志,并显示出行号

 cat 文件名|grep “关键字” -C 10

2.head 文件名

查看文件的前多少行,默认为10

-n head -n 5+文件名

3.tail 文件名

查看文件的后多少行,默认为10

-n tail -n 5+文件名

-f tail - f 文件名(实时查看文件内容)

4.more 文件名

针对内容非常多的文件,支持翻页查看

b键向上翻页

enter键向下翻页

5.less 文件名

针对内容多的文件,支持翻页查看

space键下翻

b键上翻

ctrl+z退出

5.文件目录删除

1.rmdir 目录名

删除空目录

- p 递归删除空目录

2.rm 文件/目录

删除文件前确认

rm -r 删除目录 

rm -rf 强制删除文件/目录

rm -rf * 删除当前目录下所有

6.文件拷贝/移动操作

1.cp 原文件名 新文件名/文件路径

-a 全部文件目录拷贝

-f 强制拷贝

-i 拷贝显示提示信息

-v 显示命令执行的详细信息

-r 复制目录

2.mv 原文件路径 新文件路径

重命名:mv 原文件/目录名称 新文件/目录名称

7.文件压缩和归档

1.tar

-c create

-f file

-z gz压缩

tar -cvf +xxx.tar 文件名 打包一个tar包

tar-xvf +xxx.tar 解包一个tar包

tar -zxvf aaa.tar.gz 解压并解包

tar -zcvf xxx.tar.gz xxx文件 打包并压缩

2.zip

zip xxx.zip 文件名/文件夹名 压缩文件/目录

zip-r xxx.zip 递归压缩目录

unzip xxx.zip 解压文件

3.7z

安装包名:

1.p7zip-full

2.p7zip-rar 用于提供解压rar文件

特色:可以解压rar文件

a 压缩 7z a xx.7z 文件名 文件名

d 删除包里的文件 7z d xx.7z 文件名

e 解压到当前文件夹 7z e xx.7z

l 展示压缩包里的内容 7z l xx.7z

4.ar库归档

程序的目标代码文件后缀:.o

静态库文件后缀: .a

作用:归档程序的目标代码文件*.o 到静态库文件 *.a

r 添加目标代码文件到静态库中 ar rv xxx.a xxx.o

x 提取目标文件从静态库中 ar xv xxx.a xxx.o

t 查看静态库文件中目标代码列表

v 显示详细信息

d 从静态库中删除目标代码 ar dv xxx.a xxx.o

8.文本操作

1.gedit 文件名

图形文件编辑器

2.vim 文件名

h 左移

j 下移

k 上移

l 右移

0 返回行首

$ 返回行尾

gg 返回页首

G 返回页尾

yy 复制行

nyy 复制光标后n行

p 粘贴

dd 删除行

ndd 删除光标后n行

u 撤销

x 删除某个字

:set nu 设置行号

:set list 显示控制字符

:set nonu 取消设置行号

/搜索 按n往下翻 N向上

替换 :1,5 s/22/66/g 1,5 范围 s交换 g全局

另存为 :w /路径

可视化模式 v

y 复制 p粘贴 d删除

3.echo

显示文字

echo 文字

echo 文字 > 文件名 向文件中重定向输入文件

9.文件挂载与卸载

文件设备一般自动挂载在 /media 中,手动一般挂载在 /mnt中。

/dev 文件中,存放的是光盘或者u盘的映射

1.mount

光盘手动挂载

mount -t iso9660 /dev/cdrom/mnt

光盘iso镜像文件挂载

mount -o loop -t iso9660 mycd.iso /media

FAT32文件系统u盘手动挂载

mount -t vfat /dev/sdb1/mnt

NTFS文件系统U盘挂载

mount.ntfs /dev/sdb1/mnt

2.fdisk

查看硬盘大小 fdisk -l

3.umount

-a 卸载非启动挂载挂载项

umount /mnt 卸载目录

umount /dev/sdb1 卸载设备

10.软件包升级安装

1.apt-get

(软件包存储在/var/cache/apt/archives中)

apt-get download 在线下载

apt-get install 在线安装

apt-get update 更新软件列表

apt-get upgrade xx 升级软件包

2.dpkg

离线安装

dpkg -i xxx.deb 离线安装

dpkg -r xxx 离线包卸载

3.yum

yum install 在线安装

yum install gcc

yun install gcc-c++

-y 全部yes的状况运行

4.rpm

rpm -ivh xxx.rpm 离线安装

5.wget

从网上拉取文件的工具,支持http和ftp协议,支持代理服务器功能

wget url

wget -qo- XXX| sh -q 安静模式

使用wget拉取shell脚本运行

11.系统进程/内存操作

id+pid 查看此pid的用户和组

1.top 动态查看进程

top -d 秒数 间隔几秒查看cpu

-p 查看具体进程

top解读

第一行:程序名:系统时间:运行时间:登录用户数:CPU负载:负载时间

第二行:总进程数:运行数:休眠数:停止数:未响应数

第三行:CPU占比:us用户:sy系统:ni优先级:id空闲:wa等待:hi硬件:si软件:st虚拟机

第四行:物理内存:free空闲内存:used已使用:cache缓存硬盘内存:

进程优先级ni nice

优先级越大,优先级越小,取值范围-20~+19

ps:系统会自动增加20

nice -n 5 命令 nice -n 5 sleep 200

renice -20 pid 调整具体pid的优先级

程序放置后台 命令 +&

查看后台 jobs

后台运行 bg+进程号

程序调回前台 fg+进程号

2.ps 静态查看进程

ps aux 查看所有用户的进程

ps -ef 查看用户的进程

--sort%cpu 按照cpu排序

ps aux|grep 程序名 查看服务进程是否开启

T-stop 停止状态

Z-zombie 未响应状态

S-sleeping 休眠状态

R-running 运行状态

3.free 查看内存

free -m 查看内存,以M显示

free -s 动态显示内存

4.kill 杀进程

kill -l 查看系统支持的信号 进程名

kill -9 发送中止进程的信号

kill -9 $$ 中止该进程的新号

kill -19 暂停该进程的信号

killall 缺省发送term信号给指定进程名的进程

killall -9 中止该进程的新号 进程名

默认终止进程

5.pstree

显示当前所有进程的进程树信息

-p 显示进程号

12.计划任务

1.watch

每间隔执行命令

watch -n 秒数 '需要执行的命令'

2.cron服务(循环调度)

crontab -e 编辑计划任务

语法: */2 7-9 * * * 命令

代表分时日月周,每隔2分钟执行,会发送至当前用户邮箱

-l 表示查询计划任务

-r 删除计划任务

ps aux|grep crond 查看进程状态

3.at(一次性调度)

语法:at now +2min

ctrl+d 结束

atq 查看定时任务

13.权限操作

1.chmod 修改文件/文件夹权限

属主:u

属组:g

其他人:o

所有人:a

4可读 r

2可写 w

1可执行 x

chmod u=rwx 目录/文件名

chmod a=rwx file 授予权限 chmod a=rx file

chmod o= file 不赋予权限

chmod u-r file u去掉r的权限

2.chown 修改文件属组/属主

chown +属主+文件名称

-R参数 递归修改目录下所有的子目录

chown root:root aa.txt  同时修改文件aa.txt的属主和属组为root

chown .root aa.txt 更改属组为root

3.chgrp 修改文件属组

chgrp+拥有者 +文件名称

4.ACL限制文件操作

getfacl 文件名 查看用户ACL权限

setfacl -m 属主/数组/其他人:用户名:权限 文件路径

setfacl -m u:admin:rwx /home 设置文件访控

用户名缺省表示所有用户

-x 删除ACL权限 setfacl -x 属主/数组/其他人:用户名 文件

-b 删除全部ACL权限

ps:文件详细信息显示+号,表示有附加的ACL权限

5.umask 权限掩码

umask 默认0022 限制创建文件的初始权限

-S 显示用户的权限

6.用户组成员更改

1.gpasswd 成员名 组名

基本组: 随用户而创建,组名同用户名

附加组:可以有多个,用户加入非基本组

-a 将新增用户加入到组群(附加组)

-d 将用户从组群删除

2.newgrp 组名

切换群组进行登录

14.用户/组添加与删除/用户权限

useradd 用户名 添加用户

useradd -m 用户名 创建用户并建家目录

useradd +用户 -g +组名 添加用户指定基本组

useradd +用户名 -d (指定目录) -u (指定uid) 添加用户并赋予uid

userdel -r+用户名 删除用户所有包括配置

cat /etc/passwd     可以查看所有用户的列表

cat /etc/shadow 用户密码文件

cat /etc/group 群组信息

添加用户密码 passwd -d+用户名称 组名

删除用户组 groupdel+用户组

groups+用户名   查看当前登录用户所在组

1.passwd文件解读

用户名:密码占位符:uid:gid:描述:用户的家目录:命令解释器

uid:

0 特权用户

1-499 系统用户

1000+ 普通用户

2.group文件解读

组名:组密码:组gid:组成员

3.shadow文件解读

登录名:密码:最后一次修改的时间:最小修改密码时间间隔:密码有效的最大天数:密码失效警告时间:用户不活动时间:失效时间:保留

4.usermod

usermod -s 修改用户属性

usermod -s /sbin/nologin user01 修改用户shell属性

usermod -g 组名 用户名 更改用户基本组

usermod -G 组名 用户名 添加用户附加组

usermod -L 用户名 用户账号锁定

usermod -U 用户名 用户账号解锁

5.特殊权限

特殊位suid:针对文件/程序时,具备临时提升权限

当用户调配文件时,如果有suid,s占位时,有临时属主的能力

s权限: chmod u+s /usr/bin/cat (临时提权)

i权限:chattr +i 文件名 不能更改,重命名或删除

a权限:chattr+a 文件名 只能追加 (针对日志文件)

15.用户查看/切换

1.id 查看组

id+pid 查看此pid的用户和组

id -u 用户名 显示当前的有效用户pid

2.whoami

查看当前用户命令

3.who

查看所有登录用户命令

4.su

su 用户名 切换用户

$ 普通用户

# 超级用户

5.sudo

1.使用普通登录服务器时临时提权

2.完成部分特权指令

3.分配权限语法

sudo -u 用户名 命令 临时使用某用户的权力

sudo -i 切换超级管理员

ps:不在sudoer文件里,将用户添加到udoer组里

16.重定向

1.>输出重定向

将本目录状态信息覆盖到目标文件

2.>>追加

3.

4.FD文件描述符

文件句柄进程使用文件描述符来管理打开的文件。

键盘输入在dev文件中,再通过0fd进入程序。

FD是访问文件的标识,即链接文件,省去长的绝对路径

通过设备键盘输入,向程序发送信号

0 键盘只读

1,2 是终端理解为屏幕

3+ 是文件,可读可写

1 > 表示控制程序的FD。标准输出

2 > 引导错误输出的

&> 无论正确还是错误都引导

date 1> /dev/pts/0

date 1> /dev/pts/1

/dev/pts/0 终端设备 echo aaa 1>/dev/pts/0 发送信号

17.软硬链接

1.软链接   ln -s

作用:快捷方式 软链接只指向文件名

ln -s +文件名 +链接名 只能在当前目录里创建

ln -s +文件名的绝对路径 +绝对路径的链接名(把软链接放到哪里) 在其他目录创建

软连接的大小为路径的大小

2.硬链接 ln -d

ln -d aa.txt ee.txt 帮文件创建一个硬链接相当于就是备份-------目录不能创建硬链接

18.磁盘分区

1.df

显示磁盘文件系统空间

-h 人性化显示

2.du 文件

文件空间占用的详细报告(字节)

-s 概括描述文件空间的占用情况

-h 人性化显示

19.端口服务

lsof 查看端口号

-i:端口号 查看占用端口的服务,以及进程号

20.系统操作

1.reboot

重启

2.shutdown

关机

3.init 0

关机

4.clear

清屏

5.reboot

重启

6.halt

关机

7.系统信息与主机查看

cat /proc/meminfo 系统内存硬件信息

cat /proc/cpuinfo 系统cpu硬件信息

uname -a 操作系统信息

hostname 主机名查看

21.查看文件操作

1.find

1.通过文件/目录名称查找文件(只能查看一个文件)

find 路径 -name 文件名/目录名

2.按文件大小 -size +5M (-5M)

3.按用户深度 -maxdepth 2 -a(and) -name xxx.txt

4.按属主,属组找 -user/-group 用户名/组名

5.按文件类型查找 -type

6.按权限 -perm 777

-i 不区分大小写

-delete 删除

-print 打印显示

-ok cp -rvf {} 目标文件 \; 复制文件,{}代表找到的内容

-ls 显示详细信息

2.grep

grep命令是一种强大文本搜索工具,可以使用正则表达式搜索文本,并把匹配的行打印出来.

grep 关键字 文件名 从文件中查找字符串

-r 递归查找 grep -r 关键字 目录名

-i 忽略大小写

-v 反向筛选

3.which

which +命令 主要用于命令的查找

4.locate

locate 文件名 主要基于数据库查找

22.网络管理

1.ping

测试网络连通情况

ping ip地址/网址

-c 发送ICMP_REQUEST包的数量

2.ifconfig 网络地址查看及设置

查看网络接口信息

ifconfig

-a eth0 详细查看网络接口的地址信息

ifconfig eth0 ip地址 netmask 子网掩码

3.nslookup 域名解析

查看域名解析后的映射ip地址

nslookup 域名

nslookup ip地址 反向解析

4.route 路由信息查看

查看路由设置信息

route 缺省查看静态路由信息

-n 显示缓存于主机的路由信息

5.netstat

网络统计信息查看

-a 显示监听信息的网络统计信息

-t 显示tcp协议相关的网络统计信息

22.远程传输

1.scp(桥接模式)

用于在Linux下进行远程拷贝文件的命令,scp还非常不占资源,不会提高多少系统负荷,不影响系统的正常使用。

-P:指定远程主机的端口号; -p:保留文件的最后修改时间,最后访问时间和权限模式; -r:以递归方式复制 从远处复制文件到本地目录: scp root@192.168.127.128:/home/admin/aa.txt /myhome 复制192.168.127.128用户的aa.txt文件 scp -r 表示复制文件夹 上传本地文件到远程机器指定目录 scp /myhome/aa.txt root@192.168.127.128:/home/admin

2.rzsz 命令

把Windows系统中的文件上传到Linux服务器

sz命令 + 文件名:把Linux服务器的文件下载到Windows本地

注:rz和sz命令只用来上传拉取0-500MB之内的文件

lrzsz缺点:不能传大文件,传输速度慢,失败率高

3.ftp协议

包: vsftpd vsftp*.deb

采用c/s架构服务,用于文件上传与下载

传输模式:1.二进制(不发生文本转换) bi

2.文本格式(可能有损失) ascii

ftp ip地址

mget 下载文件

mput 上传文件

bye 退出

bi 二进制文件

ascii 文本文件

ps:普通命令表示服务端

!+普通命令 表示客户端

ftp配置文件 /etc/vsftpd.conf

重启服务 service vsftpd restart

停止服务 service vsftpd stop

启动服务 service vsftpd start

重新读取 service vsftpd reload

查看状态 service vsftpd status

4.ssh服务

远程系统操作

包: openssh-server ,ssh

ssh ip地址

启动服务 service ssh start

停止服务 service ssh stop

重启服务 service ssh restart

配置文件 /etc/ssh/sshd.conf

5.telnet

查看远程服务器端口是否启用

telnet ip地址(域名) 端口号

23.管道符操作

1.tee管道

# cat anaconda-ks.cfg |tee bbb.txt |tail -n 1 存取紧靠前面指令的内容

2.Xargs 指令

连接特殊命令的指令

cat file1 |xargs rm -rf

3.cut命令

cat /etc/passwd |grep user01 |cut -d: -f1 -d 切割,后面跟切割符 -f 后跟切割输出的片段

24.日志文件

1.常见的日志文件

1.message 系统主日志文件

2.secure 认证、安全

3.yum.log 安装日志

4.maillog 和邮件posfix相关

5.cron cron、at产生的日志

6.dmesg 和系统启动相关

2.日志配置文件

/etc/rsyslog.conf

配置文件中存在注释说明和开关。rules输出文件产生的什么日志放在什么地方。

3.日志级别

emerge 致命,紧急

alert 报警

crit 致命

err 错误

warning 警告

notice 普通

info 标准信息

debug 调试信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值