linux学习笔记

TPMer TPMer     2022-12-07     488

关键词:

一直在linuxcast.net  学习linux视频,边学边总结了一些笔记。

=================一些基本操作===============

startx      进入图形界面
XXXX &        命令后面加上一个&位与运算符号,表示后台执行该命令

shutdown -h now 立刻进行关机
shutdown -r now 现在重启
reboot        现在重启

hostname    显示主机名
history     显示历史命令记录
clear        清除屏幕
!!        重复上一个命令
!字符        重复前一个以"字符"开头的命令
!num        按照历史记录序号执行命令
!?abc        重复之前包含abc的命令
!-n         重复n个命令之前的那个命令
cat        查看文件内容


su         切换用户
sudo        使用管理员身份运行命令
id        显示当前用户的信息
passwd        修改当前用户密码

================进程管理命令==============
jobs        管理(查看)后台作业
bg 编号1    把编号1的进程设为后台运行作业
fg 编号2    把编号2的进程设为前台运行作业


====================文件相关命令==========
ls        列出当前目录文件(不显示隐藏文件)
   参数    -l      显示详细信息
    -a    显示所有文件(包括隐藏文件)
    -R    递归显示子目录结构
    -ld    显示目录和链接信息

pwd        显示当前工作路径
touch        创建一个大小为空的文件或者 更新文件修改时间
file         查看文件信息(属性)

cp        复制文件或目录
   参数    -r    递归复制整个目录树
    -v    显示详细信息

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

rm        删除文件或目录
   参数    -i    交互式
    -r    删除包括目录中的所有内容
    -f    强制删除,没有警告提示(小心使用)

mkdir        创建一个目录
rmdir        删除一个空目录
rm -r(-f)    删除一个非空目录

===========vi使用基本操作===================

1.vi hello.java
2.输入i[进入到插入模式]
3.按ESC键[进入命令模式]
4.输入“:”[wq退出并保存 q!退出不保存]


命令模式下
    i    在光标前插入文本
    o    在当前行下面插入新行
    dd    删除整行
    yy    复制当前行放入缓冲区
    n+yy    将n行的内容复制放入缓冲区
    p    将缓冲区的内容在光标处粘贴
    u    撤销上一个操作
    r    替换当前字符
    /    查找关键字(取消查找高亮颜色    :noh[nohighlightsearch])

ex模式下
    :w     保存修改
    :q     退出
    :q!     强制退出,不保存修改
    :x     保存并退出,相当于:wq
    :set nu  显示行号(:set nonu[no number] 取消行号显示)
    :!      执行系统命令
    :sh    切换到命令行,使用 ctrl + d 切换回vim

===========日期时间命令=====================


date        查看当前系统时间
+%Y:%m:%d    格式化显示时间
clock        显示硬件时钟时间
cal        查看日历
uptime        查看系统运行时间

===========输出查看命令=====================

echo        显示输入的内容
cat        显示文件内容
more        用于翻页显示文件内容(只能向下翻页)
less        用于翻页显示文件内容(带上下翻页)
head        显示文件的头几行(默认10行)
        -n 指定显示的行数
tail        显示文件的末尾几行(默认10行)
        -n 指定显示的行数
        -f 追踪显示文件更新(一般用于查看log日志文件,命令不退出)

===========查看硬件信息=====================

lspci        查看PCI设备
    -v    查看详细信息

lsusb        查看USB设备
    -v    查看详细信息

lsmod        查看加载的模块(驱动)

===========关机、重启=====================

shutdown    [关机、重启]    时间
    -h    关机
    -r    重启
ex:
    立即关机    shutdown -h now
    10分钟后关机    shutdown -h +10
    23:30分关机    shutdown -h 23:30
    立即重启    shutdown -r now

poweroff    立即关机
reboot        立即重启

===========归档、压缩=====================

zip        压缩文件
    格式:zip 压缩后的文件名.zip    要压缩的文件(或目录)    

unzip        解压压缩的zip文件

tar        归档文件
    -cvf     创建一个归档文件
    ex:    tar -cvf 归档后的文件名.tar    要归档的文件(或目录)

    -xvf    释放一个归档文件
    ex:    tar -xvf 要释放的归档文件.tar
    
    -cvzf    将归档后的归档文件进行gzip压缩以减少大小
    ex:    tar -cvzf backup.tar.gz /etc     将etc这个目录归档压缩

=================查找=====================

locate        查找文件、文件夹
    ex:    locate keyword
    此命令是从数据库中查找,数据库每天更新一次,也可用updatedb手动更新

find        高级查找文件、文件夹
    find    查找位置 查找参数
    ex:    find . -name *linuxcast*    在当前目录查找文件名包含linuxcast的文件
    find / -name *.txt        从根目录递归查找 后缀为 .txt的文件
    find / -perm 777        从根目录递归查找权限为777的文件
    find / -type d            从根目录查找所有类型为“目录”的文件
                    -d    目录
                    -l    链接(相当于快捷方式)
                    更多详见 man find
    find . -name "a*" -exec ls -l \\;
    将当前目录查找到的所有以a开头的文件 作为参数传递给 ls -l 命令
    像 -exec XXXX \\; 这为固定格式,XXXX 表示某些命令

============使用fdisk进行磁盘管理==============

fdisk是来自IBM的老牌分区软件,几乎所有Linux系统均默认安装
fdisk是一个MBR分区工具,不可用于GPT分区
只有超级用户(root)权限可以执行fdisk
fdisk分区后需要使用partprobe让内核识别新的分区


============ 创建文件系统 ==============

mke2fs         [参数] [需要创建的文件的路径]
    -t 创建的类型(type)
        ex:    mke2fs -t ext3 /dev/sdb1
    -b  指定文件系统块(block)大小(block是文件系统读写操作的最小单位)
    -c  建立文件系统的时候检查块损坏
    -L  指定卷标
    -j  建立文件系统日志

mkfs.***    可用来快速建立文件系统(***表示文件系统名)
        ex:    mkfs.ext3  /dev/sdb1

dumpe2fs    用来查看指定文件系统的信息
        ex:    dumpe2fs /dev/sda1

e2label        为指定文件系统添加卷标
        ex:     e2label /dev/sda1 LINUXCAST

fsck        检查文件系统错误
        ex:    fsck /dev/sda1

============文件系统挂载管理==================


mount        mount 要挂载的设备   挂载点
        ex:    mount /dev/sdb1    /mnt

    -t  指定文件系统的类型,如: -t ext3、-t vfat  
    -o  指定挂载选项:
           ro,rw    只读挂载或读写挂载
           sync     不使用文件缓存,所有操作直接写入磁盘
           async    使用缓存提高文件系统读写效率
           noatime  不更新文件访问时间
           atime    更新文件访问时间
           remount  重新挂载

umount        卸载一个挂载的文件系统
    ex:    umount 挂载源或挂载点
        umount /dev/sdb1 == umount /mnt

    有时会出现 device busy 错误信息(因为被占用了)无法卸载 可以使用以下命令
fuser        可查看某文件系统中正在使用的文件
    ex:    fuser -m /mnt

lsof        可查看正在被使用的文件[list open file 简写]
    ex:    lsof /mnt

-----------------自动挂载设置----------------

配置文件/etc/fstab 用来定义需要自动挂载的文件系统,其中
每一行代表一个挂载配置
/dev/sdb1    /mnt    ext3        defaults    0 0
需要挂载的设备    挂载点    文件系统    挂载选项    暂时不用明白

================Linux下获取帮助=================================
几乎所有命令都可以通过 -h 或 --help参数获取命令的帮助信息
man命令是Linux中最为常用的帮助工具,可以通过以下形式获取man帮助:
man 要获取帮助的命令
man -k 关键字       搜索包含关键字的帮助文档
info与man命令类似,但是输出信息更为详细
绝大多数程序都有相应的帮助文档,保存在/usr/share/doc文件夹中

=================== 用户基础 ==============================


每个用户有一个用户名和一个用户ID(UID),用户ID是操作系统真正用来管理标识用户的,UID为32位长,从0开始,最大一般到60000。
用户分为:root用户(uid为0)、系统用户(uid 1~499)、普通用户(uid 500+)
每个用户有一个家目录,用来保存用户私有数据,
root用户的家目录为/root,
普通用户家目录为/home下与用户名相同的目录

每个可登陆用户拥有一个指定的shell
一个用户可以属于一个主组,可以属于一个或多个附属组
用户、组信息保存在以下三个文件中:

/etc/passwd   用户信息
/etc/shadow   用户密码
/etc/group     组信息

命令id用以显示当前用户的信息,命令passwd用以修改当前用户的密码

以下命令用以显示登陆用户信息:

whoami      显示当前用户
who          显示登陆的用户的信息       
w              显示登陆的用户的详细信息

命令useradd用以添加一个用户:

useradd     用户名

    -d       指定用户家目录
    -s       指定用户登陆shell
    -u       指定用户uid
    -g       指定用户所属主组
    -G      指定用户所属附属组


命令usermod用以修改一个用户的信息:

usermod     参数 用户名

    -l       修改用户名
    -u      修改uid
    -g       修改用户主组
    -G      修改用户附属组
    -L       锁定用户
    -U       解锁用户

命令userdel用以删除一个用户:

userdel     用户名
userdel -r 用户名     删除用户的同时删除该用户家目录

groupadd    用以创建一个组:

groupadd     组名

groupmod    用以修改一个组信息:
groupmod     -n  新组名 旧组名
groupmod     -g 新组ID 旧组ID

groupde        用以删除一个组


==================Linux权限机制=====================

chown        修改一个文件的所属用户:
        chown 用户 文件
    ex:    chown linuxcast  testfile

chgrp        修改一个文件的所属组:
        chgrp 组  文件
    ex:    chgrp linuxcast-group testfile

chmod        修改一个文件的权限:
        chmod 权限 文件
    ex:    chmod u+w linuxcast-file

--------------------Linux扩展权限--------------------

umask属性用来确定新建文件的默认权限

命令umask可以修改当前umask属性:

umask 022
创建文件:    666-umask
创建文件夹:    777-umask

Linux拥有三个特殊权限:

 对文件的影响对目录的影响
suid以文件的所属用户身份执行,而非执行文件的用户
sgid以文件所属组身份执行在该目录中创建的任意新文件的所属组与改目录的所属组相同
sticky对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件

命令chmod用以设置特殊权限:

chmod u+s linuxcast-file   设置suid

chmod g+s linuxcast-dir    设置sgid

chmod o+t linuxcast-dir    设置sticky


=================Linux网络基础配置================================

Linux中网卡标识为eth,第一块网卡叫做eth0,第二块叫做eth1,以此类推

使用lspci或lsusb命令可查看网卡物理信息

命令ifconfig用以查看网卡信息

命令ifup、ifdown用以启用、关闭一个网卡接口

ifup eth0

ifdown eth0

我们一般使用setup命令设置网卡信息

网卡的配置信息保存在下面目录中:

/etc/sysconfig/network-scripts/

配置文件为ifcfg-网卡名称,如:ifcfg-eth0

DNS服务器IP保存在:

/etc/resolv.conf

主机名配置保存在:

/etc/sysconfig/network


常用网络命令:

ping

host

traceroute

mtr

网络故障排查遵循从上至下、从里至外的原则

==================管道及重定向 =========================

管道及重定向就是Linux多命令协作的基础机制

Linux的Shell对数据流进行以下分类定义:

stdin     标准输入  编号为:0   默认:键盘

stdout   标准输出  编号为:1   默认:终端

stderr    标准错误  编号为:2   默认:终端

重定向用来控制终端数据流:

>        将标准输入以覆盖形式重定向到指定文件,如:ls > outfile

>>      将标准输入以追加形式重定向到指定文件,如:ls >> outfile

<        重定向标准输入   如:grep linuxcast < /etc/passwd

2>      重定向标准错误

2>&1   将标准错误合并到标准输出中

管道“|”用以将一个命令的标准输出作为另一个命令的标准输入:

命令1  |  命令2

管道通常用来组合不同命令

重定向通常用来保存输出信息


====================命令行文本处理工具==========================

关键字搜索:

grep  关键字  指定文件
    -i   搜索时忽略大小写
    -n  显示结果所在行
    -v  显示不包含关键字的行

基于列的文本处理:

cut -d: -f1 /etc/passwd
    -d  指定分割字符
    -f  指定显示列
    -c  基于字符顺序进行列分割

文本统计:

wc linuxcast
    -l   只统计行数
    -w  只统计单词书
    -c   只统计字节数
    -m  只统计字符数


文本排序:

sort linuxcast
    -r   倒序排序
    -n   基于数字进行排序
    -f   忽略大小写
    -u   删除重复行

文本比较:

diff linuxcast-1 linuxcast-2
    -i   忽略大小写
    -b  忽略空格数变化
    -u  统一显示信息(一般用于生成patch文件)

文本转换:

tr -d "TMD" < linuxcast     删除指定关键字

tr 'a-z' 'A-Z' < linuxcast    转换大小写

搜索替换:

sed 's/linux/unix/g' linuxcast   将所有linux关键字替换为unix
sed '1,50s/linux/unix/g' linuxcast    将1到50行中的所有的linux替换为unix
sed -e 's/linux/unix/g' -e /nash_su/six_sex/g' linuxcast
    将所有的linux替换为unix,所有的nash_su 替换为six_sex
sed -f sedrules linuxcast    将sedrules中的替换规则在linuxcast中执行


======================================Linux系统启动详解======================
========== ========== ==========

Linux系统启动流程如下:

    BIOS
    MBR
    GRUB
    加载内核
    init
    runlevel

Linux内核文件保存在:

/boot/vmlinuz    内核文件

/boot/initramfs   内核模块

命令dmesg显示本次内核启动信息

init是系统运行的第一个进程

Linux运行级别:

0   关机

1   单用户模式

2   不带网络的多用户模式

3   命令行多用户模式

4   未使用

5   X11图形界面模式

6   重启

运行级别保存在配置文件:

/etc/inittab

命令runlevel显示当前及上一个运行级别

命令init可修改当前运行级别

init 3  单用户模式

单用户模式下可恢复root密码

在启动菜单下按e进入编辑模式,再在内核行最后添加1,再按b启动。进入单用户模式,
进入终端后用passwd修改root密码了。
为了安全起见,防止一般人修改内核启动引导。可以给修改引导命令添加一个密码,有点
相当于windows的BIOS密码。先再终端用grup-md5-crypt生成一个用md5加密后的密码串,再
将这个密码串复制下来。再在/boot/grup/grup.conf文件中添加一行
password --md5 加密后的密码串
然后保存退出,下次再想修改启动参数就要先按p输入密码,才能修改。

待续。。。。。

linux~学习笔记目录索引

本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅!本目录包括的内容会包括linux基础命令,redis,mongodb,node.js,.netcore,kafka,rabbitmq,zookeep... 查看详情

linux学习笔记(代码片段)

linux学习笔记1.操作系统的发展史1.2Unix1.2Minix1.3Minix1.4Minix没有火起来的原因2.linux介绍2.1Linux内核版本2.2Linux发行版本2.3Linux目录结构2.4用户目录3.命令行的基本用法3.1命令的使用方式3.2查看帮助文档3.3tab自动补全3.4history游览历史3.5... 查看详情

linux学习笔记之基本操作汇总

Linux学习笔记之基本操作汇总图片放大了再看才清楚!!!!Linuxcdocd/rootpackageocd/userocd…/ocd~homeocd-lsolsols-aincludingthehiddenfilesols-lmoremessagemkdiromkdirnameomkdir/user/namermormfi 查看详情

linux学习笔记(第一周)

Linux笔记基本概念UNIX体系结构操作系统(内核):一种软件,控制计算机硬件资源,提供程序运行环境。​内核的接口被称为系统调用(systemcall,图中的阴影部分)。公用函数库构建在系统调用接口之上,应用程序既可使用公用函... 查看详情

linux学习笔记

以下几个符号作为目录名有特殊的含义:“/”代表根目录“..”代表上一级目录“.”代表当前目录“~”代表HOME目录“-”代表前一目录  Linux下用字符表示的文件类型    -:普通文件 ... 查看详情

linux学习笔记之linux相关知识

...、总结、coding……】。这不但可以扩展知识面,对后续的学习也有一定的帮助。1、操作系统    ​​操作系统​​​(​​OperatingSystem​​​,简称OS)是管理和控制​​计算机​​​​硬件​​​与​​软件​​... 查看详情

linux学习笔记(代码片段)

Linux学习笔记(二)Author:akynazhBlog:akynazh.site一些文件操作pwdpwd[-P]-P:显示出确实的路径,而非使用链接(link)路径。mkdirmkdir[-mp]目录名称-m:设置文件的权限喔!直接设置,不需要看默认权限(umask... 查看详情

学习笔记,samba配置和使用

最近一直在学习Linux,学完后我真的很后悔。没有早一些学习Linux,如果要是在大学里就学习了Linux,也许我现在会走的更远。当然世界没有如果,庆幸的是我还是和linux结缘了。认识她,了解她。人生最重要的决定都是在5年前决... 查看详情

学习笔记类目录一览--不定期更新

目录概述Linux学习笔记Linux系统编程VScode使用记录波形分析GitHub使用Qt5学习笔记串口助手bin文件合成工具概述每次想要查找以前的笔记都要翻来翻去,索性写一个目录文章。以后需要查找什么东西,或者想要补全某篇文章&... 查看详情

linux学习笔记(代码片段)

Linux学习笔记(一)Author:akynazhBlog:akynazh.siteLinux开机CMOS是记录各项硬件参数且嵌入在主板上面的储存器BIOS则是一个写入到主板上的一个固件(固件就是写入到硬件上的一个软件程序)。这个BIOS就是在开机的时候,计算... 查看详情

linux学习笔记:31个常用linux命令和相关解释

LINUX学习笔记三:最近在带新同事,是一个刚入行的萌新,对于linux不是很熟悉,问我怎么来学习。所以今天接着之前的部分,继续分享一些linux学习资料。有需要的点点保存,没有跳过呗。PS:内容都... 查看详情

linux——学习使用笔记

1、linux各个分区的作用 http://www.cnblogs.com/200911/p/4012161.html2、windows+ubuntu双系统时划分ubuntu空间时“空闲空间”变“不可用”?出现这种情况,估计是将分区类型选为主分区了,linux系统默认最多有四个主分区,去... 查看详情

嵌入式linux学习笔记fbtft使用笔记(代码片段)

前言在断断续续学习了比较长时间的嵌入式Linux之后,我着手准备自己设计一款Linux的小电脑,在设计硬件之前,我需要掌握一些软硬件的使用,比如fbtft用于驱动小LCD屏幕,usb摄像头,2.4Gwifi模块等我对Linu... 查看详情

嵌入式linux学习笔记fbtft使用笔记(代码片段)

前言在断断续续学习了比较长时间的嵌入式Linux之后,我着手准备自己设计一款Linux的小电脑,在设计硬件之前,我需要掌握一些软硬件的使用,比如fbtft用于驱动小LCD屏幕,usb摄像头,2.4Gwifi模块等我对Linu... 查看详情

linux学习笔记(12)-进程间通信|管道

...享内存,消息队列和套接字等……  现在一个个的开始学习!  ——————————————————————————————————————————————————  管道是一个进程链接另一个进程的数据通... 查看详情

iptables学习笔记

iptables学习笔记为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。http://www.cnblogs.com/shijiaqi1066/p/3812510.html   1Linux防火墙概述Linux防火墙实际指的是Linux下的Netfilter/Iptables。Netfilter/Iptables... 查看详情

2016-7-3linux学习笔记

linux的文件类型   dr-xr-xr-x.  4rootroot 4096Jun1809:57boot  ls     -l:长格式         文件类型: & 查看详情

linux学习笔记

Linux开发工具🍬目录Linux开发工具🍬💻Linux安装软件💻💻Linux软件包管理器yum💻💻Linux编辑器-vim的使用💻普通模式📖末行模式📖vim配置📖末尾📖💻Linux安装软件& 查看详情