1 Star 1 Fork 2

Kinkley / linux_note

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

Linux系统学习(尚硅谷Linux经典升级)

虚拟机三种网络连接方式:

Linux至少分3个分区:

/root

/swap

/boot

/是根目录,树状目录结构

/dev cpu、disk

/media dvd、usb

一切皆文件

Linux的目录结构

  • /lib

系统需要的最基本的动态链接共享库

  • /lost+found

非法关机存放的一些文件

  • /etc

配置文件目录

  • /usr

用户的很多程序和文件都放在这个目录下,类似windows下的program files目录

  • /boot

存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

  • /proc

内核相关目录,是一个虚拟目录,系统内存的映射,访问这个目录获取系统信息

  • /srv

内核相关目录,service的缩写,存放服务启动之后需要提取的数据

  • /sys

注意: 内核相关目录,别动

  • /tmp

  • /dev

硬件设备

  • /media

自动识别的一些设备,如外置存储

  • /mnt

临时挂载的别的文件系统

  • /opt

额外按照的软件存放的目录

  • /usr/local

额外安装软件后所安装的目录,一般是通过编译源码方式安装的程序

  • /var

存放不断扩充的东西,经常被修改的目录一般放在这里,比如日志

  • /selinux

安全子系统,能控制程序只能访问特定文件。黑客入侵触发。

实操篇

远程连接,需要开启sshd服务

centos命令行运行setup查看系统服务下是否启动了,*表示使用了。该服务会监听22端口

VIM编辑器

vi的三种常见模式:

  1. 正常模式,阅读文件,可以使用快捷键
  • yyp 向下复制当前行

  • 5yyp 拷贝当前行向下5行,粘贴。p是粘贴

  • dd 删除当前行

  • 5dd 删除光标下的5行

  • 查找文本:输入/或者?,后面紧跟要搜索的文本,回车。按n想下找,N向上找

  • u 撤销上一步的操作

  • Ctrl+r 恢复上一步被撤销的操作

  • 设置(:set nu)与取消行号(:set nonu)

  • 到顶部,按两次[[

  • 到底部,按两次]]

  • 到文档某个位置,50%

  • 到指定位置,比如到第10行,输入10,然后shift+g

  1. 插入/编辑模式,可以输入内容
  • i 当前光标位置插入开始编辑

  • o 下一行编辑

  1. 命令行模式,可以完成读取、存盘、替换、离开vim、显示行号
  • :wq 保存退出

  • :q 退出

  • :q!强制退出

关机和重启

shutdown -h now 立即关机

shutdown -h 1 一分钟后关机

shutdown -r now 现在重启

halt 关机

reboot 重启

sync 把内存数据同步到磁盘

用户管理

添加用户

useradd foo

如果没有指定组,会为用户foo创建一个foo用户组,并创建一个该用户的家目录

useradd -d 用户名 /home/ba

-d指定家目录

passwd 用户名 设置密码

删除用户

userdel 用户名

不带参数,会保留家目录

userdel -r 用户名

会同时删除家目录

一般保存家目录,因为可能有一些个人资料

查询用户

id 用户名

切换用户

su - 普通用户

su root

exit 或者ctrl+d 回到原来的用户

用户组管理

groupadd 组名

groupdel 组名

增加用户时直接加组:useradd -g 用户组 用户名

修改用户组:usermod -g 用户组 用户名

用户和组的相关文件

/etc/passwd

用户的配置文件

/etc/shadow

口令的配置文件:每行的含义:

/etc/group

组的配置文件

指定运行级别

/etc/inittab

init [0123456]

找回root密码

进入单用户模式,单用户(init 1)不需要密码就可以登录,然后passwd root改密码

文件目录类

pwd

ls -alFh

h表示人类易读的形式

cd

cd ~

cd ../

mkdir -p /home/ba/far

rm -rf 目录及目录下的内容

touch filename 创建一个文件

cp -r source dest 递归拷贝

rm -r:递归删除整个文件夹 -f:强制删除

mv 移动文件与目录或重命名

cat 浏览文件内容 -n:行号 | more 分页显示,并显示行号

more 文件

less 根据显示需要加载的内容。对于大文件效率高

> 重定向文件,没有文件会创建文件,文件已存在会覆盖内容

>> 追加内容到文件

echo 输出内容到控制台

head 文件 查看文件头10行内容

head -n 5 文件 查看文件头5行内容

tail -f 文件 实时追踪文件的更新内容

tail -n 5 文件

date

date +%Y

date +%m

date +%d

date "+%Y-%m-%d %H:%M:%S"

date -s "2018-10-10 11:22:22" 设置系统时间

cal 显示日历

cal 2018 显示2018年的整年日历

搜索查找类

find

-name 根据名称

-user 根据属于哪个用户的

-size 根据大小

find /home -name 文件名

find /opt -user root 查找/opt下属于root的文件

find / -size +20M 查找大于20M的文件

find / -size -20M 小于20M

find / -size 20M 等于20M

locate 基于索引的查找,速度较快,需要定期更新locate,使用updatedb

grep 和管道符| 查找文件内容

grep [-i|-n] 查找内容 源文件

-n 显示匹配行及行号

-i 忽略大小写

管道符就是将前一个命令的输出作为后一个命令的输入

gzip 文件 压缩,不会保留源文件

gunzip 文件.gz 解压

zip -r 文件.zip ./ 将当前文件夹下的内容压缩为文件.zip

unzip -d 目标文件夹 文件名

tar -xzvf 文件 解压tar文件

-c 产生.tar打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩

-x 解包.tar文件

tar -zcvf a.tar.gz 文件名1 文件名2 将两个文件压缩为指定压缩文件a.tar.gz

tar -zcvf myhome.tar.gz /home/ 压缩home目录为myhome.tar.gz

tar -xzvf myhome.tar.gz -C /home 解压到指定目录,目录必须存在

组管理

groupadd police
useradd -g police tom
passwd tom
su tom
touch a.txt

会查看文件属于哪个用户,哪个组,及权限

用户 用户组

递归更改文件夹的所有者

chown -R root:root 文件或者文件夹

文件(夹)权限的介绍

可用数字表示:r=4,w=2,x=1

rwx=4+2+1=7

中间的数字:如果是目录,表示子文件夹数,如果是文件,表示硬链接数

目录是一个特殊文件,ls -alFh查看的文件夹大小,是这个文件夹本身的大小,不是总大小

最后的时间是最后文件修改时间

会查看文件和文件夹信息

修改权限

chmod [+|-|=][r|w|x] [file|diretory]

chmod u=rwx,g=rx,o=x 文件或目录名

chmod o+w

chmod a-x

rwx=4+2+1=7

r-x=4+1=5

r-x=4+1=5

自己可以读写执行,同组用户和其他用户,不可以写

chmod 755 /home/filename

改变文件所在组

chgrp newgroup file

定时任务调度

crontab

-e 编辑定时任务

-l 查看

-r 终止(删除)定时任务

service crond restart 重启任务调度

crond任务调度

cron参数细节

定时任务案例

磁盘分区和挂载

分区的基础知识

win下的磁盘分区

linux分区原理

硬盘

IDE 并口

SCSI 串口,性能更好,目前基本都是这种硬盘

硬盘说明

查看硬盘

lsblk -f

下面不带参数的命令可以看到分区大小

lsblk

助记:老师不离开

待续:给linux添加一块新硬盘

  1. 虚拟机添加硬盘

手动添加硬盘

  1. 分区

fdisk /dev/sdb

fdisk命令分区步骤

  1. 格式化

将设备分区格式化为ext4格式的文件系统

mkfs -t ext4 /dev/sdb1

  1. 挂载

创建目录,并挂载到创建的目录

mkdir /home/newdisk
mount /dev/sdb1 /home/newdisk/

另外,卸载命令

umount 设备名称 或者 挂载目录

  1. 设置可以自动挂载

/etc/fstab文件中添加一行

vi /etc/fstab
/dev/sdb1                                 /home/newdisk           ext4    defaults        0 0

退出文件编辑,允许下面命令

mount -a

磁盘情况查询

df -h

查看指定目录的磁盘占用情况

du -sh /目录

默认为当前目录

-s

指定目录占用大小汇总

-h

带计量单位

-a

含文件

--max-depth=1

子目录深度

-c

列出明细的同时,增加汇总值

查询/opt目录的磁盘占用情况,深度为1

du -ach --max-depth=1 /opt

磁盘情况-常用

  1. 统计/home文件夹下的文件个数

wc表示统计

l /home | grep "^-" | wc -l

  1. 统计/home文件夹目录个数

包括./../

l /home | grep "^-" | wc -l

  1. 统计/home文件夹文件的个数,包括子目录

-R表示递归子目录

l -R /home | grep "^-" | wc -l

  1. 统计文件夹下目录的个数,包括子文件夹里的

l -R /home | grep "^d" | wc -l

  1. 以树状显示文件目录
yum install tree
tree

网络配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0

进程管理

进程查询

ps -ef | grep 'java'

-e:显示所有进程

-f:全格式

ps显示的信息选项

字段 说明
PID 进程识别号
TTY 终端机号
TIME 此进程所消CPU时间
CMD 正在执行的命令或进程名

ps -aux

ps -a:显示当前终端的所有进程信息

ps -u:以用户的格式显示进程信息

ps -x:显示后台进程运行的参数

ps详解

进程终止

kill -9

-9:表示强迫进程立即终止

#如何踢掉非法用户

  1. 找到ssh登录的进程ID

ps -aux | grep sshd

  1. kill掉对应进程id

pstree查看进程树

-p:显示进程的ID

-u:显示进程的所属用户

查看防火墙状态

service iptables status

win上可以通过telnet查看端口是否在监听

使用chkconfig让维持服务状态

查看服务名

  1. setup => 系统服务

  2. /etc/init.d服务名称

使用ls -l /etc/init.d/

列出系统有哪些服务

开机流程和服务

开机流程

服务管理chkconfig

通过chkconfig命令可以给各个运行级别设置自启动或者关闭

语法:

  1. 查看服务:chkconfig --list|grep xxx

  2. chkconfig 服务名 --list

  3. chkconfig --level 5 服务名 on/off

监控服务

#top

选项说明:

-d 秒数

指定每隔几秒更新,默认3秒

-i

使top不显示任何闲置或者僵死进程

-p

指定进程id监控某个进程状态

交互操作说明:

P 以CPU使用率排序,默认此项

M 以内存使用率排序

N 以PID排序

q 退出top

#ps

#网络监控

netstat -anp | more

-an 按一定顺序排列输出

-p 显示哪个进程调用

Comments ( 0 )

Sign in for post a comment

About

linux基础操作学习笔记,供自己工作查阅复习 spread retract
Cancel

Releases

No release

Contributors

All

Activities

load more
can not load any more
1
https://gitee.com/jinxin.70/linux_note.git
git@gitee.com:jinxin.70/linux_note.git
jinxin.70
linux_note
linux_note
master

Search