编程之家收集整理的这篇文章主要介绍了Linux学习笔记,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
说明:安装过程中,可以通过control+alt在虚拟机和本机之间来切换鼠标
目录名称 | 解释说明 | 存放内容 |
---|---|---|
/bin | 即Binary,(/usr/bin、/usr/local/bin) | 常用的命令 |
/boot | 存放启用Linux使用的核心文件,包括链接文件和镜像文件 | |
/home | 存放普通用户的主目录 | |
/root | 管理员用户的主目录 | |
/media | linux把识别的设备挂载到这个目录 | |
/mnt | 挂载别的文件系统,如d:/myshare | |
/var | 存放不断扩充的东西,经常修改的放在这里,如各种日志文件 |
正常模式(用Vim打开文档时,直接进入正常模式),可以进行的操作如下:
编辑模式。可以进行的操作如下
命令行模式。可以进行的操作如下
相互转换
首先在终端中输入vim 文件名
,如果文件存在就打开,不存在就创建。
拷贝粘贴:yy
---拷贝当前行;nyy
---拷贝当前向下n行;p
---粘贴
删除:dd
---删除当前行;ndd---删除当前向下n行
查找:/关键字+回车
---查找,继续回车
查找下一个关键字
行号::set nu
---添加行号;:set nonu
---取消行号
撤销:编辑模式下的输入了文字,esc
到正常模式后,u
---撤销
编辑/etc/profile文件
先设置行号,输入n后,shift+g
shutdown -h now
---->立即关机halt
--->立即关机shutdown -h 1
--->一分钟后关机reboot
--->立即重启shutdown -r now
--->立即重启关机和重启前一半都需要执行sync
--->将内存数据写入磁盘,放置数据丢失
su -用户名
命令来切换成管理员身份logout
--->注销用户useradd [选项] 用户名
useradd lzx
,在/home
目录中就会出现名为lzx的文件夹
。useradd -d 指定目录 新用户名
的方式,给新建用户指定家目录/home/和用户名同名的目录或指定目录
给用户设置密码:
passwd 用户名
+回车
userdel 用户名
----删除用户userdel -r 用户名
----删除用户,并删除家目录id 用户名
uid=500(lzx) gid=500(lzx) 组=500(lzx)
无此用户
su - 用户名
来切换用户su - lzx
(因为是高权限用户到低权限用户,所以不需要输入密码)exit
who am i
或whoami
groupadd 组名
----增加一个组groupdel 组名
----删除一个组useradd -g 用户组 用户名
----增加用户时,直接指定一个组usermod -g 用户组 用户名
----修改用户组/etc/passwd
文件lzx:x:500:500::/home/lzx:/bin/bas
/etc/group
文件lzx:x:500:
/etc/shadow
文件运行级别 | 说明 |
---|---|
0 | 关机 |
1 | 单用户(可以用来找回密码) |
2 | 多用户状态,没有网络服务 |
3 | 多用户状态、有网络,命令行形式 |
4 | 系统未使用,保留给用户 |
5 | 图形界面 |
6 | 重启系统 |
/etc/inittab
文件中的id:5:initdefault
中的数字vim /etc/inittab
id:5:initdefault
中的5改成3man 命令或配置文件
man ls
help 命令
help cd
pwd
ls [选项]
:显示当前目录的文件和文件夹ls [选项] 路径1
:显示路径1的文件和文件夹cd 绝对路径或相对路径
cd
或cd~
:回到家目录cd..
回到上一级目录mkdir[选项] 要创建的目录
mkdir /home/hello1
mkdir -p /home/hello2/aaa1
rmdir 要删除的空目录
rm -rf 要删除的目录
touch 文件名称
,创建一个touch 文件名称1 文件名称2
创建多个cp [选项] source dest
(cp 文件source到文件夹dest下,经常使用相对路径)-r
:递归复制整个文件夹
\cp
rm [选项] 要删除的文件或目录
-r
,递归删除整个文件夹
-f
,强制删除不提示rm -rf 文件夹
mv 要移动的文件 目标路径
,移动mv 旧文件名 新文件名
,重命名,实质也是移动cat [选项] 要查看的文件
-n
:显示行号/etc/profile
文件,并显示行号| more
全屏的方式显示文本文件的内容。(加载整个文件)
用法:more 要查看的文件
快捷键
快捷键 | 说明 |
---|---|
space | 向下翻页 |
enter | 向下一行 |
q | 退出 |
control+f | 向下滚动一屏 |
control+b | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
分屏的方式显示文本文件的内容(加载文件的一部分,随时加载)
语法:less 要查看的文件
快捷键
快捷键 | 说明 |
---|---|
space | 向下翻页 |
pageUp | 向上翻页 |
pageDown | 向下翻页 |
/字符串 | 向下搜索,n是向下查找,N是向上查找 |
?字符串 | 向上搜索,n是向上查找,N是向下查找 |
q | 退出 |
适合显示大文件,效率高
echo 输出内容
echo $PATH
echo hello
head 文件
:默认显示前10行head -n5 文件
:显示头5行tail 文件名
,默认显示后10行tail -n5 文件名
,显示后5行tail -f 文件名
,实时追踪该文件的所有更新ls -l > 文件1
:列表的内容覆盖写入到文件1(要加上隐藏的内容,就用-al
)ls -l >> 文件1
:列表的内容追加写入到文件1尾部cat 文件1 >或>> 文件2
:将文件1的内容覆盖或追加到文件2echo "内容" >或>> 文件1
:将自己写的内容覆盖或追加到文件1ln -s 源文件或目录 软连接名
rm -rf 连接名
(连接名后别带/,否则资源忙---相当于windows中的应用程序已经打开,无法删除)history,
显示所有历史指令history 5
,最近的5条记录!10
,执行历史编号为10 的指令date
date "+%Y-%m-%d %H:%M:%S"
,当然也可以拆开使用单独的一些date -s "2020-02-02 11:11:11"
cal
显示本月cal 2020
显示2020年的日历find 搜索范围 [选项]
-name
,按照文件名方式查找(*.txt代表查找所以的txt文件)(暂时不知道有什么鬼用,感觉多此一举)-user
,按照用户名查找-size
,按照文件大小查找(+代表大于,-小于,不加是等于)locate 要搜索的文件名
locate
指令是基于数据库进行查询,第一次使用前必须用updatedb
指令创建locate数据库grep [选项] 查找内容 源文件
-n
,显示所在的行号-i
,忽略大小写cat hello.txt | grep -ni java
gzip 文件
(①只能压缩为.gz文件;②源文件会消失)gunzip .gz文件
zip -r 新的压缩文件名.zip 要压缩的内容
,(-r是递归压缩目录)unzip -d 压缩文件名.zip
(-d是存放目录).tar.gz
文件tar [选项] 自己起名.tar.gz 打包的内容
tar -zcvf 自己起名.tar.gz 打包的内容
tar -zxvf a.tar.gz
tar -zxvf a.tar.gz -C /opt/
(目录必须存在)Linux中,每个用户都属于一个组,用户不能独立于组外。在Linux中没个文件夹有:所有者、所在组、其他组的概念
ls -ahl
chown 用户名 文件名
groupadd 组名
useradd -g monster js
id js
来查看ls -ahl
chgrp 组名 文件名
usermod -g 组名 用户名
usermod -g 目录名 用户名
说明:chmod命令中,u:所有者,g:所有组,o:其他人,a:所有人
chmod u=rwx g=rx o=x 文件名或目录名
chmod o+w 文件名或目录名
chmod a-x 文件名或目录名
chmod u=rwx g=rx o=x 文件名或目录名
就相当于 chmod 751
chown 新所有者 文件名
chown 新所有者:新组 文件名
chgrp 新组 文件名
chgrp -R 新组 目录名
crontab[选项]
-e
,编辑crontab定时任务-l
,查询crontab任务-r
,删除当前用户所以crontab任务service crond restart
创建任务:
crontab -e
*/1 * * * * ls -l /etc/ >> tmp/to.txt
ls -l /etc/ >> tmp/to.txt
5个占位符说明(分时天月周)
占位符 | 含义 | 范围 |
---|---|---|
第1个* | 分:每小时中的第几分钟 | 0~59 |
第2个* | 时:每天中的第几小时 | 0~23 |
第3个* | 天:每个月中的第几天 | 1~31 |
第4个* | 月:一年中的第几个月 | 1~12 |
第5个* | 周:一周的的星期几 | 0~7(07都是周天) |
特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 代表所有的时间单位:没分钟,每小时 |
, | 不连续的时间:“0 2,4 * * *”表示每天2点和4点的0分执行 |
- | 连续的范围:“0 2-4 * * *”每天的2点到4点的0分执行 |
*/n | 每隔多久执行一次 |
lsblk
或 lsblk -f
图示
我用的是macOS上面的secureRCT,Windows系统在第一部略有不同
lsblk
查看分区情况,只是有了sdb,而没有分区和挂载点的信息。fdisk /dev/sdb
开始进行分区m
查看命令,发现n
是新增分区命令,输入 n
,然后选择 p
表示设置为主分区,分区编号选择1就ok,下面两步都可以默认,直接两次回车。w
退出lsblk
命令查看分区情况,发现已经分好了区,但是还没有挂载点mkfs -t ext4 /dev/sdb1
lsblk -f
命令查看分区情况,发现已经有了40位的UUIDmount /dev/sdb1 /home/newdisk
挂载lsblk -f
命令查看分区情况,发现已经有了挂载点vim /etc/fstab
打开文件/dev/sdb1 /home/newdisk ext4 defaults 0 0
:wq
mount -a
umount /home/newdisk
(如果现实设备忙,要退出要newdisk目录再重试)语法
df -h
du -h /目录
(默认是当前目录)
-s
,指定目录占用大小汇总-h
,(human)带计量单位,方便人看-a
,含文件-c
,列出明细的同时,增加汇总值--max-depth=1
,子目录深度案例和工作实用指令
查询 /opt 目录的磁盘占用情况,深度为 1
du -ach --max-depth=1 /opt
统计/home 文件夹下文件的个数
ls -l /home | grep "^-" |wc -l
统计/home 文件夹下目录的个数
ls -l /home | grep "^d" |wc -l
统计/home 文件夹下文件的个数,包括子文件夹里的
ls -lR /home | grep "^-" |wc -l
统计文件夹下目录的个数,包括子文件夹里的
ls -lR /home | grep "^d" |wc -l
以树状显示目录结构
yum install tree
,来安装cd /home
,在 tree
说明:这块MacOS比较麻烦。后续再搞。
命令:ps
选项:
-a
,显示当前终端所有信息进程-u
,以用户的格式显示进程信息-x
,显示后台进程运行的参数语法总结
显示所有进程:ps -aux
查看某一个进程:ps -aux | grep xxx
。
查看父进程:ps -ef | more
kill [选项] 进程号
(适合杀死单个进程)kill all 进程名
(适合杀死多个进程)
-9
:强制杀死进程ps -aux | grep sshd
来查看有哪些用户在登录状态,并得到进程号。然后 kill 进程号
ps - aux |grep sshd
来查看sshd服务的进程号(命令为 /usr/sbin/sshd
的是sshd服务),然后 kill 进程号
ps -aux | grep bash
来查看哪些终端开着(命令为/bin/bash的是),然后 kill 进程号
,发现没反应,强制杀死即可 kill -9 进程号
pstree [选项]
-p
:显示进程的PID-u
:显示进程所属用户service 服务名 xxx
(xxx处可以是:start、stop、restart、reload、status)service iptables status
查看防火墙状态service iptables stop
停止防火墙service iptables stop
查看状态service iptables start
重启telnet IP地址 端口号
来测试setup
后,进入系统服务,就可以看到所以服务,其中带*的是开机自启的服务。可以按空格改变。/etc/init.d/服务名称
来查看
ls -l /etc/init.d/
chkconfig --list
chkconfig --list | grep xxx
chkconfig --level 系统运行级别 服务名 on或off
chkconfig 服务名 on或off
含义:top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在 执行一段时间可以更新正在运行的的进程。(类似于任务管理器)
语法:top [选项]
常用选项
-d 秒数
,指定top命令每隔几秒更新,默认是3秒-i
,不显示任何闲置或僵死进程-p
,通过指定进程id来监控这个进程交互指令
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默认是这样排序的 |
M | 以内存使用率排序 |
N | 以PID排序 |
q | 退出top |
u | 输入u再回车输入用户名--->查看该用户的 |
k | 杀死进程 |
netstat [选项]
netstat -anp | more
( -an
按照一定顺序排列输出,-p
显示那个进程在调用)netstat -anp | grep xxx
rpm -qa
(q=query,a=all)rpm -qa | grep xxx
rpm -q 软件包名
rpm -qi 软件包名
rpm -ql 软件包名
(就是查看安装在了哪里)rpm -qf 文件全路径名
epm -e 软件包名
rpm -ivh 软件包的全路径名称
(i=install,v=verbose提示,h=hash进度条)yum list | grep xxx
yum install xxx
以上是编程之家为你收集整理的Linux学习笔记全部内容,希望文章能够帮你解决Linux学习笔记所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478