以下是博主在学习Linux的过程中所做的笔记,因为博主也是刚入门,内容可能不会太全面,请多多包含。此博文的主要目的是便于以后自己查阅。
Linux命令:
1.cd…
返回上一级目录
2. 正常模式下(vim编辑器):
(1)yy 复制一行 10yy 向下复制10行 p 粘贴
(2)dd 向下删除一行 10dd 向下删除10行
(3)G 到文件的最后一行 gg 到文件的第一行
(4)u 撤销操作
(5)20shift+g 光标移动到20行
命令行模式:
(1):/hello 查找hello关键字
(2):noh 取消查找后的高亮显示
(3):set nu 显示行号 :set nonu 不显示行号
3.模式的切换(vim编辑器):
(1)一般模式切换到插入模式:i或者a
(2)一般模式切换到命令行模式: :(冒号)或者/(斜杆)
(3)插入模式切换到一般模式:ESC
(4)命令行模式切换到一般模式:ESC
4. vim:hello.java
没有hello.java则创建hello.java文件,有则进入hello.java文件
5. :wq
编辑后退出
6. :q
进入文件后没有修改直接退出
7 :q!
进入文件后修改不想保存,那么直接强制退出
8.shutdown
shutdown -h now : 表示立即关机
shutdown -h 1 : 表示 1 分钟后关机 shutdown -r
now: 立即重启 == reboot
9.halt
halt 就是直接使用,效果等价于关机
10.reboot
就是重启系统。
11.sync
sync 把内存的数据同步到磁盘
注意:当我们关机或者重启时,都应该先执行以下 sync 指令,
把内存的数据写入磁盘,防止数据丢失。
12.logout
logout 可注销用户(在图形运行级别无效)
13.su
su - 用户名 可以切换用户
14.useradd
useradd 用户名 可以创建一个新的用户,并在home目录下有与用户名同名的文件夹
15.useradd
useradd -d /home/user/ 用户名 在指定的目录下创建用户
16.userdel
userdel 用户名 :只删除用户
17.userdel
userdel -r 用户名:删除用户名和用户目录
一般只删除用户名,不删除用户目录
18.id
id+用户名 :查看用户名对应的信息
19.su
su - +用户名 : 切换用户
root用户切换到其他用户不需要密码,exit可以回退到root用户
其他用户切换到root用户需要输入密码
其他用户切换到其他用户也需要密码
20.groupadd
groupadd+组名:创建一个新的组
21.groupdel
groupdel+组名:删除指定的组
22.useradd
useradd -g +组名+用户名 :在创建用户的时候指定用户在哪个组
23.usermod
usermod -g+组名+用户名:修改用户所在的组为指定的新组
24.useradd -g+组名 -d +文件路径 +用户名 :
创建一个用户属于对应的组并且有自己命名的用户目录
25.查看三大配置文件:
/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
/etc/shadow 文件
口令的配置文件,每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group 文件
组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表
26.运行级别说明:
-
0:关机
-
1:单用户【找回丢失密码】
-
2:多用户状态没有网络服务
-
3:多用户状态有网络服务
-
4:系统未使用保留给用户
-
5:图形界面
-
6:系统重启
常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件
/etc/inittab 的 id:5:initdefault:这一行中的数字
27.切换不同的运行级别:
init +[0,1,2,3,5,6]
28.帮助指令:
(1) man ls
(2) help cd
(3) 百度
29.pwd :
显示当前的绝对路径
30.ls :
ls -a :查看包括隐藏文件的所有文件
ls -l :查看以每列一个文件的格式输出
ls -la: ls -a和ls -l 的搭配
31:cd ~ 或者 cd :
回到自己的家目录
cd .. 回到当前目录的上一级目录
32.创建目录:
mkdir+目录路径:在指定的路径下创建一个新的目录 如:mkdir /home/dog
mkdir -p +目录路径:在指定的目录下创建多级目录 如:mkdir /home/animals/dog
33.删除目录:
rmdir+目录路径:在指定的目录下删除指定的 空的 目录,如果待删除的目录非空,那么将删除不了
rm -rf +目录路径:如果待删除的目录非空,也可以删除成功
34.复制文件/目录:
cp +源文件+目标文件
cp -r +源目录+目标目录(可以进行递归复制,以复制整个目录过去)
强制覆盖不提示的方法:\cp
35.移动文件/改名:
移动文件:mv +源文件目录 +目标文件目录
改名:mv + 源文件名 + 新的文件名
36.删除文件/目录:
删除文件:rm +文件名
删除文件目录: rm -rf +文件目录
-r :递归删除整个文件夹
-f : 强制删除不提示
37.阅读文件:
cat指令: cat -n /etc/profile |more 以cat指令打开文件并显示行号和分页
-n是显示行号
|more是分页
more指令: more+文件 如:more /etc/profile 可以分页全屏显示
快捷键:Enter->向下移动一行
Space(空格)->向下翻一页
Ctrl+F->向下翻一页
Crtl+B->向上翻一页
less指令: less+文件 如:# less /opt/金庸-射雕英雄传txt精校版.txt 对于读取大文件效率很高
快捷键:空白键 向下翻动一页:
[pagedown] 向下翻动一页
[pageup] 向上翻动一页;
38. > 和 >>
> 输出重定向 : 会将原来的文件的内容覆盖
>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部。
下面的案例中 > 和 >> 都可以使用
(1) ls -l > a.txt 将当前目录写入到当前目录的a.txt文件中
(2) cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
(3) echo 输出内容到控制台。
echo "内容" >> 文件 将指定的内容追加到指定的文件中
39. cal
显示日历
40.echo命令:
echo $PATH :使用 echo 指令输出环境变量,输出当前的环境路径。
echo + "" : 输出引号内的内容到控制台
41.head命令:
head + 文件路径 :输出指定文件的前10行
head -n 5 +文件路径:输出指定文件的前5行
(也可以简写:head -5 +文件路径)
42.tail命令:
tail + 文件路径:输出指定文件的后10行
tail -n 5 + 文件路径:输出指定文件的后5行
tail -f +文件路径:监听指定的文件(重点!!!)
43.ln命令:
软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
创建软连接:
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接):ln -s /root linkToBoot
删除软连接:
rm -rf linkToBoot
44.history命令:
查看已经执行过历史命令,也可以执行历史指令
(1)查看已经执行过的历史命令:history
(2)执行历史指令:!+历史指令对应的行号 ,如:!20 代表执行历史指令的第20个指令
(3)查看最近执行的10个历史指令 :history 10
45.时间类:
date命令:
1) date (功能描述:显示当前时间)
2) date +%Y (功能描述:显示当前年份)
3) date +%m (功能描述:显示当前月份)
4) date +%d (功能描述:显示当前是哪一天)
5) date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)
6)date -s 字符串时间:设置系统的时间,例如 date -s "2020-07-28 14:46:46"
cal 命令:
1) cal :查看当前月的日历
2) cal 2020 :查看2020年的日历
46.搜索查找类:
(1)find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
find+要搜索的地方+以什么方式搜索+要查找的东西
--> find /home -name hello.txt 在home目录下以文件名的形式查找hello.txt文件
--> find /home -user root 在home目录下以用户名的形式查找与root有关的文件
--> find /home -size +20M 在home目录下以文件大小的形式查找大于20M的文件(大于用+,小于用-,等于直接写大小就行)
--> find /home -name *.txt 在home目录下所有以txt为后缀的文件(支持通配符的操作)
(2)locaate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的
locate 数据库实现快速定位给定的文件。
Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
--> updatedb
--> locate hello.txt 在系统的目录中查找hello.txt文件中
(3)grep 指令和 管道符号 |
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep [选项] 查找内容 源文件 :
cat /home hello.txt | grep -n hello 查看home目录下的hello.txt文件并过滤出关键字hello并显示行号
cat /home hello.txt | grep -ni hello 查看home目录下的hello.txt文件并忽略大小写过滤关键字hello最后显示行号
47.压缩和解压缩类:
(1)gzip和gunzip命令:
gzip + 文件名:将指定的文件压缩为*.gz的文件(gzip 对文件进行压缩后,不会保留原来的文件。)
gunzip + 文件名:将指定的文件进行解压缩
(2)zip和unzip指令:
zip [选项] XXX.zip + 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
zip hello.zip a.txt : 将文件a.txt压缩为hello.zip格式
zip -r mypackage.zip /home : 将/home目录下的所有文件递归压缩为mypackage.zip
unzip hello.zip :将hello.zip压缩包解压到当前文件夹
unzip -d /opt mypackage.zip : 将mypackage.zip压缩包解压到/opt目录下
(3)tar指令:
tar [选项] XXX.tar.gz + 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
压缩:
tar -zcvf mytxt.tar.gz a.txt b.txt : 将a.txt和b.txt文件压缩为 mytxt.tar.gz
tar -zcvf myhome.tar.gz /home : 将/home目录下的所有文件压缩为 myhome.tar.gz
解压:
tar -zxvf mytxt.tar.gz : 将压缩包mytxt.tar.gz解压到当前目录
tar -zxvf myhome.tar.gz -C /opt : 将压缩包myhome.tar.gz解压到/opt目录下
48.组的管理:
(1)ls -ahl:查看文件的所有者
(2)chown 用户名 文件名:修改文件所有者
-R 如果是目录 则使其下所有子文件或目录递归生效 : chown -R tom /home/kkk
(3)chgrp 组名 文件名:修改文件所在的组
-R 如果是目录 则使其下所有子文件或目录递归生效 : chgrp -R bandit /home/kkk
(4)chown newowner:newgroup file 改变用户的所有者和所有组
(5)usermod –g 组名 用户名:改变用户所在组
49.权限的管理:
1)权限的基本介绍
(1)ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位说明
1) 第 0 位确定文件类型(d:目录, -:普通文件 , l:软连接 , c:字符设备【鼠标、键盘等】 , b:块文件【硬盘等】)
2) 第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。---User
3) 第 4-6 位确定所属组(同用户组的)拥有该文件的权限,---Group
4) 第 7-9 位确定其他用户拥有该文件的权限 ---Other
2)rwx 权限详解:
(1)rwx 作用到文件
1) [ r ]代表可读(read): 可以读取,查看
2) [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,
才能删除该文件.
3) [ x ]代表可执行(execute):可以被执行
(2)rwx 作用到目录:
1) [ r ]代表可读(read): 可以读取,ls 查看目录内容
2) [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
3) [ x ]代表可执行(execute):可以进入该目录
(3)修改权限-chmod
第一种方式:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
1) chmod u=rwx,g=rx,o=x 文件目录名
2) chmod o+w 文件目录名
3) chmod a-x 文件目录名
第二种方式:通过数字变更权限
规则: r=4 w=2 x=1 ,
rwx=4+2+1=7
chmod u=rwx,g=rx,o=x
文件目录名相当于 chmod 751 文件目录名
50.crond 任务调度:
(1)crontab -e 编辑crontab定时任务
(2)crontab -l 查询crontab任务
(3)crontab -r 删除当前用户所有的crontab任务
快速入门:
设置个人任务调度。执行 crontab –e 命令。
接着输入任务到调度文件如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
第一个“*”一小时当中的第几分钟0-59
第二个“*”一天 当中的第几小时0-23
第三个“*”一个月当中的第几天1-31
第四个“*”一年 当中的第几月1- 12
第五个“*”一周当中的星期几0-7(0和7都代表星期日)
* 代表任何时间。比如第一个“*”就代表-小时中每分钟都执行一次的意思。
, 代表不连续的时间。比如“0 8,12,16* * *”命令,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
- 代表连续的时间范围。比如“05 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次。比如“*/10****命令”,代表每隔10分钟就执行一遍命令
51.lsblk 或者 lsblk -f 命令可以查看系统的分区情况(简单记忆:老师不离开lsblk)
52.给系统新增一个硬盘:
(1) 虚拟机添加硬盘:
在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,
至到完成。然后重启系统(才能识别)!
(2) 分区:
分区命令 fdisk /dev/sdb
参数:
•m 显示命令列表
• p 显示磁盘分区 同 fdisk –l
• n 新增分区
• d 删除分区
• w 写入并退出
开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w 写入分区并退出
,若不保存退出输入 q。
(3) 格式化:
分区命令:mkfs -t ext4 /dev/sdb1 其中 ext4 是分区类型
(4) 挂载:
将一个分区与一个目录联系起来
• mount 设备名称 挂载目录
• 例如: mount/dev/sdb1 /newdisk
• umount 设备名称 或者 挂载目录
• 例如: umount /dev/sdb1 或者 umount /newdisk
(5) 永久挂载:
通过修改/etc/fstab 实现挂载添加完成后 执行 mount –a 即刻生效
53.磁盘情况查询:
(1) df -lh :查询系统整体磁盘使用情况
(2) du +参数 + 目录 :查询指定目录的磁盘占用情况
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
du -ach --max-depth=1 /opt 查询 /opt 目录的磁盘占用情况,深度为 1
(3) 统计/home 文件夹下文件的个数:ls -l /home | grep "^-" | wc -l
(4) 统计/home 文件夹下目录的个数:ls -l /home | grep "^d" | wc -l
(5) 统计/home 文件夹下文件的个数,包括子文件夹里的:ls -lR /home | grep "^-" | wc -l
(6) 统计文件夹下目录的个数,包括子文件夹里的 : ls -lR /home | grep "^d" | wc -l
(7) 以树状显示目录结构: tree /home
54.进程管理:
(1) ps -aux :查看所有的系统进程
参数:
-a : 显示当前终端的所有进程信息
-u : 以用户的格式显示进程信息
-x : 显示后台进程运行的参数
(2)ps -aux | grep XXX : 查看系统中是否有XXX进程
结果说明:
• System V 展示风格
• USER:用户名称
• PID:进程号
• %CPU:进程占用 CPU 的百分比
• %MEM:进程占用物理内存的百分比
• VSZ:进程占用的虚拟内存大小(单位:KB)
• RSS:进程占用的物理内存大小(单位:KB)
• TT:终端名称,缩写
• STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行
,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
• STARTED:进程的启动时间
• TIME:CPU 时间,即进程使用 CPU 的总时间
• COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
(3) ps -ef :是以全格式显示当前所有的进程(包括PPID,父进程)
-e 显示所有进程。-f 全格式。
(4) kill [选项] 进程号(功能描述:通过进程号杀死进程)
killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
-9 :表示强迫进程立即停止
根据 ps -aux |grep XXX 查询到某个进程的id,再利用 kill + 进程id 即可杀死该进程
kill -9 + 进程id 强制杀死指定id的进程
killall +进程名 可以杀死与指定进程名有关的所有进程
(5) pstree [-u,-p] :查看进程树
参数:
-u :显示进程的所属用户
-p :显示进程的 PID
55.服务管理:
(1)service 管理指令:
service+服务名+[start | stop | restart | reload | status]
在 CentOS7.0 后 不再使用 service ,而是 systemctl
案例: 查看防火墙: service iptables status
打开防火墙: service iptables on
关闭防火墙: service iptables off
重启防火墙: service iptables restart
(2)补充:Windows的dos命令下可以利用telnet + ip + 端口号 检验Linux的某个端口是否开启
(3)查看系统的服务:
● 使用 setup -> 系统服务 就可以看到。
● ls -l /etc/init.d/
(4)chkconfig命令
chkconfig --list 可以查看所有服务在不同的运行级别下的开闭状态
chkconfig --list | grep XXX 可以查看指定服务在不同运行级别下的开闭状态
chkconfig XXX --list 功能同上
chkconfig --level + 数字 + 服务名 + on/off : 可以为指定的服务在指定的等级下修改状态
比如:chkconfig --level 5 sshd off 把sshd服务在运行状态为5时设置为关闭
56.动态监控进程
(1)top命令: top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top在执行一段时间可以
更新正在运行的的进程
(2)案例 1.监视特定用户
top:输入此命令,按回车键,查看执行的进程。
u:然后输入“u”回车,再输入用户名,即可
案例 2:终止指定的进程。
top:输入此命令,按回车键,查看执行的进程。
k:然后输入“k”回车,再输入要结束的进程 ID 号
案例 3:指定系统状态更新的时间(每隔 10 秒自动更新, 默认是 3 秒):
bash> top -d 10
57.查看系统网络情况netstat(重要)
netstat -anp
参数:
-an 按一定顺序排列输出
-p 显示哪个进程在调用
netstat -anp | grep sshd 专门查看sshd的网络情况
58.rpm包的管理:
(1)rpm -qa :查询所安装的所有 rpm 软件包
(2)rpm -qa | grep firefox : 查询系统中是否有安装firefox软件
rpm -q firefox 同上
(3)rpm -qi + firefox : 查询firefox的信息
(4)rpm -ql + firefox : 查询firefox的软件包中的文件
(5)rpm -qf + 文件名: 查询文件是属于哪个软件包的
(6)rpm -e + firefox : 卸载firefox这个软件
(7)rpm -ivh + 安装包名:安装指定的安装包 (在安装之前需要在光驱里面把安装包拷贝到/opt目录下在执行该命令)
59.yum命令:
yum list|grep xx 软件列表 :查询 yum 服务器是否有需要安装的软件
yum install xxx 下载安装 :安装指定的 yum 包
60.source 命令:
source 配置文件 (功能描述:让修改后的配置信息立即生效)