Linux基础命令个人笔记

文末有下载链接

个人笔记

绝对路径:路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。

相对路径:路径的写法,不是由 / 写起,例如由/usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。

ls  查看当前目录下的文件夹以及文件

ls -a  列出当前目录下全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)

ls -d 仅列出目录本身,而不是列出目录内的文件数据(常用)

ls -l 长数据串列出,包含文件的属性与权限等等数据(或者写作“ll”)

ls -al  将当前目录下的所有文件列出来(含属性与隐藏档)

cd  切换目录

cd ..  返回上一级目录

cd ../..          返回上两级目录

cd或cd ~     返回home目录

cd - 目录名   返回指定目录

pwd  显示当前所在的目录

mkdir  创建一个新的目录(即使将命令写“mkdir duanhuijie.txt”创建的同样是一个文件夹,只不过文件夹名字为:duanhuijie.txt)

mkdir -p  直接将所需要的目录(包含上一级目录)递归创建起来!

touch 创建文件

rmdir  删除一个空的目录(只可以删除空目录,若目录中有文件,比如txt文件,则删除失败。如果“duanhuijie”目录中有一个名为“123”的目录,且123目录为空目录,则“duanhuijie”目录同样可以用rmdir命令删除)。

rmdir -p  递归删除目录

rm  删除文件

rm -f 强制删除文件

rm -rf  删除文件夹(包括非空文件夹)

cp  复制文件或者目录

cp aa.txt duanhuijie

代码释义:拷贝文件aa.txt到duanhuijie文件夹

mv  文件或者目录的移动或改名

语法为:mv [参数] 源文件或目录 目标文件或目录

mv -f 强制移动如果目标文件已经存在,不会询问而直接覆盖

mv -I 若目标文件 (destination) 已经存在时,就会询问是否覆盖!

mv -u 若目标文件已经存在,且 source 比较新,才会升级 (update)

man [某命令]  man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。列出命令的帮助手册。

按q退出帮助程序。

        图略

cat a.txt  显示a.txt文件中的内容(包括空格)

cat -b a.txt  显示a.txt的内容以及行号,空行不显示行号。

cat -n b.txt  显示b.txt的内容以及行号,空行也显示行号。

cat -E b.txt  将结尾的断行字节 $ 显示出来

cat > a.txt  编辑文本文档。覆盖编辑,不可退格(若敲击退格键则显示“^H^H^H”)。Ctrl+D结束命令

cat >> a.txt  编辑文本文档。追加编辑,不可退格(若敲击退格键则显示“^H^H^H”)。Ctrl+D结束命令

cat <<eof> a.txt  编辑文本文档。覆盖编辑,可退格。最后一行敲击出eof按回车结束命令。若按Ctrl+C强制结束命令,但是原文件不做更改。

cat <<eof>> a.txt  编辑文本文档。追加编辑,可退格。最后一行敲击出eof按回车结束命令。若按Ctrl+C强制结束命令,但是原文件不做更改。

cat <<end> a.txt  编辑文本文档。覆盖编辑,可退格。最后一行敲击出end按回车结束命令。若按Ctrl+C强制结束命令,但是原文件不做更改。

cat <<end>> a.txt  编辑文本文档。追加编辑,可退格。最后一行敲击出end按回车结束命令。若按Ctrl+C强制结束命令,但是原文件不做更改。

cat a.txt > b.txt  将a.txt文档内的内容复制覆盖粘贴到b.txt

cat a.txt >> b.txt  将a.txt文档内的内容复制追加粘贴到b.txt

tac a.txt  tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写。

nl a.txt  显示a.txt中的内容,并且为有内容的行编号等价于cat -b a.txt

nl -n ln a.txt  显示a.txt中的内容,并且为有内容的行编号,其中序号靠左

nl -n rn a.txt  显示a.txt中的内容,并且为有内容的行编号,其中序号靠右

nl -n rz a.txt  显示a.txt中的内容,并且为有内容的行编号,不够位数的用0补齐。

more a.txt  显示a.txt中的内容只是显示代码默认行数的一部分,按空格翻页,按回车下一行。如果内容较多,显示不全需要结束命令则按q键即可退出命令。

more -3 a.txt  显示a.txt中的内容,规定3行为一页,按空格翻页,按回车下一行。如果内容较多,显示不全需要结束命令则按q键即可退出命令。

more -2 +3 a.txt  显示a.txt中的内容,规定2行为一页,从第3行开始显示,按空格翻页,按回车下一行。如果内容较多,显示不全需要结束命令则按q键即可退出命令。

/字串  代表在这个显示的内容当中,向下搜寻『字串』这个关键字

:f  立刻显示出档名以及目前显示的行数

b  代表往回翻页,不过这动作只对文件有用,对管线无用

less a.txt  查看a.txt的内容。

less 运行时可以输入的命令有:

空白键    :向下翻动一页;

[pagedown]:向下翻动一页;

[pageup]  :向上翻动一页;

/字串     :向下搜寻『字串』的功能;

?字串     :向上搜寻『字串』的功能;

n         :重复前一个搜寻 (与 / 或 ? 有关!)

N         :反向的重复前一个搜寻 (与 / 或 ? 有关!)

q         :离开 less 这个程序;

↑     :向上滚动一行;

↓     :向下滚动一行;

head -n 5 a.txt  显示五行a.txt文件内容。

语法:head [-n number] 文件

tail -n 5 a.txt 取出文件a.txt文件后面五行

语法:tail [-n number] 文件

选项与参数:

-n :后面接数字,代表显示几行的意思

-f :表示持续侦测后面所接的档名,要等到按下ctrl+c才会结束tail的侦测

whereis命令  用来寻找命令的可执文件所在的行位置。

whereis ls  释义:ls命令的可执行文件在哪

语法为:

-b:只查找二进制文件

-m:只查找命令的练级帮助手册部分

-s:只查找源代码文件。

whatis命令 用于获取命令简介。它从某个程序的使用手册中抽出一行简单的介绍性文件,帮助用户迅速了解这个程序的具体功能。

find命令 用于文件查找。

find a.txt  查看当前目录下名为a.txt的文件(不包括其子目录)。

find . a.txt  查看当前目录下及其子目录下的名为a.txt的文件。

find . *.c  将当前目录及其子目录下所有文件后缀为 .c 的文件列出来。

find . -type f  将当前目录及其子目录中的所有文件列出

grep命令

语法:grep [参数] 要查找的字符串 文件名

grep -c 66 b.txt  查找文件b.txt中含有66的字符有几行

grep -ci aa b.txt  查找文件b.txt中含有aa的字符有几行,(-i不区分大小写)。

grep -c ^aa b.txt  查找文件b.txt中含有aa字符开头的有几行。

grep -c aa$ b.txt  查找文件b.txt中含有aa字符结尾的有几行。

grep -c ^aa$ b.txt  查找文件b.txt中一行只有aa字符的有几行。

grep -n a b.txt  查找文件b.txt中一行含有a字符列出来,并且编号(空行也编号)。

grep -n 'aa  ' b.txt  查找文件b.txt中一行含有aa  (aa后面有两个空格)字符列出来,并且编号(空行也编号)。

grep常用的命令↓

-v  列出不匹配的行

-c  对匹配的行计数

-l  只显示包含匹配模式的文件名

-h  抑制包含匹配模式的文件名的显示

-n  每个匹配行只按照相对的行号显示

-i  对匹配模式不区分大小写

dd命令

dd if=/dev/zero of=file1 count=2 bs=10M  用dd命令从/dev/zero设备文件中取出2个大小为10MB的数据块,然后保存成名为file1的文件。

dmesg命令  用于实例名和物理名称来标识连到系统上的设备。dmesg命令也用于显示系统诊断信息、操作系统版本号、物理内存大小以及系其他信息。

dmesg | more  分页显示系统设备信息。管道符:“|”

free命令  主要用来查看系统的内存、虚拟内存的大小及占用情况。

date命令  用来查看系统当前的日期和时间

date -d 08/06/2018  输出指定的日期时间

cal命令  显示指定月份或年份的日历,可以带两个参数,其中,年、月份用数字表示;只有一个参数时表示年份,年份的范围为1~9999;不带任何参数的cal命令显示当前月份的日历。

cal 4 2022  显示4月的日历

cal 2022  显示2022年的日历

clock命令 用于从计算机硬件获得日期和时间

ps命令  主要用于查看系统的进程。

参数选项:

-a     :显示当前控制终端的进程(包含其他用户的)。

-u          :显示进程的用户名和启动时间等信息。

-w         :宽行输出,不截取输出中的命令行。

-l      :按长格形式显示输出。

-x     :显示没用控制终端的进程。

-e     :显示所有进程

-tn :显示第n个终端的进程。

ps -a  显示当前控制的终端进程,包含其他用户。

ps -u  显示进程的用户名和启动时间等信息。

ps -x  显示没用控制终端的进程。

ps -x | more -5  分页显示没用控制终端的进程,一页五行。

ps -x | grep -c add  在显示没用控制终端的进程中查找包含add的内容有几行。

ps -au  显示其他打开终端的进程。

ps -e  显示所有的进程

ps -t n  显示第n个终端的进程

另外还有:

ps -aux  显示所有包含其他使用者的行进程

ps -ef  全格式输出,类似于ls -l命令。

pidof命令  用于查询某个指定服务进程的PID值。

语法为:pidof [服务名]

pidof  sshd  显示sshd进程的PID号。

ps -e | grep sshd  查询sshd的进程号并显示出来。

kill命令  “Ctrl+C”是强制结束前台进程,kill就是强制结束后台进程。

kill -l  显示kill命令所能发出的信号种类。每个信号都有一个对应的值。

kill -9 2133  杀掉进程号为2133的进程

先用pidof sshd查看sshd的进程号

然后用  kill [信号对应数值] [进程ID]  杀掉进程。

或者用  kill -9 SIGKILL [进程ID]  命令,因为9对应的信号为SIGKILL命令。

killall命令  终止某个指定的服务所对应的全部进程

killall sshd  关闭sshd所对应的全部进程

nice命令  修改进程的优先级。优先级的计算和NI值有关。NI值越大,优先级越低;反之越高。

nice -n ps -l n  其中“n”表示NI的值,正值表增大,负值表减小。

renice命令  根据进程号来改变进程的优先级。

renice n [进程号]  n为修改后的NI值。

先用ps -l查看当前的进程

renice 6 2077

top命令  实时监控进程情况,默认5秒刷新一次。

top -d 1  屏幕1秒刷新一次。Q退出

jobs 命令  用于查看再后台的进程

fg命令  把后台运行的命令调到前台

bg命令  把前台的命令调到后台。

at命令  在特定的时间运行Linux命令

at now +2 minutes  从现在起,2分钟后执行某命令。

clear命令  清屏

uname命令  用于显示系统信息

shutdown命令  用于在指定时间关闭系统

shutdown [参数] 时间 [警告信息]

-r                系统关闭后重新启动

-h                    关闭系统

时间是以下几种形式

now           表示立即

hh:mm       指定绝对时间,hh表示小时,mm表示分钟

+m             表示m分钟后

shutdown -r now  系统关闭后重新启动现在执行

halt命令  表示立即关闭停止系统,但是不关闭电源,需要人工关闭电源。

reboot命令  相当于“shutdown -r now“。

poweroff命令  相当于“shutdown -h now“。

alias命令  创建命令的别名

语法:alias [命令别名] = “命令行”

history命令  显示用户最近执行的命令,可以保留的历史命令数和环境变量HISTSIZE有关。只要在编号前加“!“,就可以重新运行history中显示的命令行。

wget命令  用于在终端中下载网络文件。

语法:wget [参数] 下载地址

             图略

who命令  用于查看当前登入主机的用户终端信息,格式为“who [参数]“。

last命令  查看所有系统的登录记录,格式为“last [参数]“。

sosreport命令  用于手机系统配置及架构信息并输出诊断文档,格式为“sosreport“。

echo命令  用于在终端输出字符串或变量提取后的值,格式为“echo [字符串] [$变量]“。

echo ‘aaa’ > a.txt  覆盖写入a.txt文档

echo ‘aaa’ >> a.txt  追加写入a.txt文档

         图略

su [用户名]  切换用户,但是环境变量信息不会变成用户的相关信息

su - [用户名]  切换用户,把环境变量信息也变为用户的相关信息

sudo命令  使普通用户调用一下root用户密码权限

         图略

useradd [用户名]  创建新用户。创建完后没有密码,需要用命令设置。

useradd -d /duan duan  在根目录创建duan用户

useradd -g ai211 yonghu1  在ai211组创建yonghu1

uaseadd -c [注释内容] [用户名]  给用户添加注释内容

userdel [用户名]  删除某个指定用户

userdel -r [用户名]  删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

              图略(出错了,没运行出来)

passwd [用户名]  为创建的用户设置密码(要在root用户下才可以)。

passwd [选项] [用户名]

         -l 锁定口令,即禁用账号。

         -u 口令解锁。

         -d 使账号无口令。

         -f 强迫用户下次登录时修改口令。

passwd -d Michael  使Michael 用户无需密码登录

groupadd [选项] [用户组]  创建新用户的时候如果没有规定组,默认和用户名一样创建组。

groupadd ai211  创建ai211组

useradd -g ai211 zhangsan  创建zhangsan到ai211组中。

groupmod -g 1006 ai211  修改ai211的GID为1005

groupmod -n vr211 ai211  把ai211组的组名改为vr211。

usermod -g ai211 zhangsan  把zhangsan用户组改到ai211组中。

groupdel [组名]  删除指定组(只可删除空组)

groupdel vr211

usermod -G ai211,shandong heze  在ai211组中添加shandong和heze两个用户

cat /etc/group  用户组的所有信息都存放在/etc/group文件中

cat /etc/passwd  用户的所有信息都存放在/etc/passwd文件中

vipw命令  等同于vi/etc/passwd命令,用于直接对账户文件/etc/passwd文件进行编辑时自动锁定文件,编辑结束后对该文件进行解锁,保证了文件的一致性。

I插入  Esc退出  :wq保存并结束  :q!不保存并结束

ls -l命令 以长格式的形式显示出来

文件类型的几种符号d,-,l

d 代表目录目录

- 代表普通文件

l 表示为符号链接文件(link file)

第一个rwx意思是是所属用户(user permissions)

第二个rwx意思是是所属组(group permissions)

第三个rwx意思是是其他所属用户(other permissions)

r代表read(可读)

w代表write(写入)

x代表execute(执行)

chgrp ai211 123  更改123文件夹的所属组为ai211组

chown duanhuijie 123  更改123文件夹的所属用户为duanhuijie

chown huijie:789 666  修改666文件夹的用户为huijie,同时修改组为789

chmod命令  更改文件9个属性

chmod用二进制的形式修改文件属性

chmod 777 wenjian  修改wenjian的三者权限都为rwx

rwx三个权限都有则二进制表示为111,转换为十进制为7

详细讲解:略

chmod -R 661 a  将a目录以及a目录下的子目录递归改变其权限为rw-rw---x

-R 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更

chmod用字符的形式修改文件属性

使用以下4种字母表示不同用户

u:user,表示所有者

g:group,表示属组

o:others,表示其他用户

a:all,表示以上3种用户

使用以下3种字母的组合表示法设置操作权限

r:read,可读

w:write,写入

x:execute,执行

操作符号包括以下三种

+:添加某种权限

-:减去某种权限

=:赋予给定权限并取消原来的权限

chmod g-r wenjian  修改wenjian的所属组权限,减去r权限

chmod a=r wenjian  修改wenjian的三种用户的所属权限都为r

umask 命令  查看或则修改文件的预设权限

<----与一般权限有关的是后面3个数字

建立文件,预设没有可执行(x)这个权限,即只有rw这两个权限,也就是最大为666,预设权限为:-rw-rw-rw-

建立目录,默认权限均开放,即为777,预设权限为:drwxrwxrwx

022的由来

若是新建立目录,那么目录的默认权限为drwxr-xr-x,也就是755,那么777-755=022;

若是新建文件,那么文件的默认权限为-rw-r--r--,也就是644,那么666-644=022

umask -S  大写S选项会以符号类型的方式显示权限,不加S以数字的形式显示

umask 222  可以直接修改默认权限,但是其他用户的默认权限不一定修改

chattr 命令  修改问价隐藏属性

a:系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。

b:不更新文件或目录的最后存取时间

c:将文件或目录压缩后存放

d:将文件或目录排除在操作之外

i:不得任意改动文件或目录

s:保密性删除文件或目录

S:即时更新文件或目录

u:预防意外删除

最重要的是+i和+a这两个属性

-R:递归处理,将指定目录下的所有文件及其子目录一并处理

-v<版本编号>:设置文件或目录版本

-V:显示指令执行过程

+<属性>:开启文件或目录的该项属性

-<属性>:关闭文件或目录的该项属性

=<属性>:指定文件或目录的该项属性

chattr +i duanhuijie 给duanhuijie文件加i权限

加上i权限后,不能改也不能删

chattr =a duanhuijie  指定duanhuijie文件为权限,可以追加。

访问控制列表

setfacl 命令  用于管理问价的ACL规则

R:递归

m:针对普通文件

b:删掉某个文件的ACL

setfacl -Rm u:duan:rwx /root  给用户duan设置访问/root的权限

duan用户成功cd进入 /root目录

getfacl  获取访问控制列表(显示文件上设置的ACL信息)

getfacl /root  获取 /root的访问控制列表

Linux添加磁盘

fdisk /dev/sdb 命令

新建磁盘分区

p(primary)新建主分区

默认分区号第一次分区默认为1

第一个分区分100M,(+100M此过程不能退格)

输入p查看刚才设置的分区

确认分区信息无误后输入w将分区信息写入disk

至此第一次分区结束!

再次运行ls /dev命令即可查看到sdb1文件👇

删除分区

运行fdisk /dev/sdb命令后输入d(delete)选项进行删除分区的操作。

如果有两个分区,默认删除分区2,如果只有一个分区,输入d后直接删除1分区。

输入p查看当前剩余的分区

确认分区信息无误后输入w将分区信息写入disk

再次运行ls /dev命令查看/dev下的文件sdb2将会消失

mkfs 命令  建立文件系统(格式化分区)

-t:指定要创建的文件系统类型

-c:建立文件系统首先检查坏块

-l file:从file文件中读磁盘坏块列表,file文件一般是由磁盘坏块检查程序产生的。

-V:输出建立文件系统详细信息

mkfs -t ext4 -V -c /dev/sdb1  格式化sdb1磁盘分区,-t ext4指定要创建ext4文件系统,-V要卸载-c的前面

mount命令  挂载设备

mount -t ext4 /dev/sdb1 /duan  将文件类型为ext4的磁盘分区挂载到/duan文件夹下

进入/duan目录使用ls -al命令查看所有文件,可以看见有一个lost+fount文件

也可以用lsblk命令查看已经挂载的分区

umount 命令  卸载已经挂载的分区

直接在/duan目录下运行umount -t ext4 /dev/sdb1 /duan命令会出现“目标忙”的提示;

cd /回到根目录(或者退出/duan目录)即可

fsck命令 检查文件系统的正确性,并对Linux磁盘进行修复(必须先把磁盘卸载才能检查分区)

参数选项:

-C:显示完整的检查进度

fsck -C /dev/sdb1  对sdb1分区进行检查并修复

dd命令  使用dd命令建立和使用交换文件。当系统的交换分区不能满足系统的要求而磁盘上又没有可用空间时,可以使用交换文件提供虚拟内存(最小2G)

dd if=/dev/zero of=/duan/wenjian bs=1024M count=1

从/dev/zero文件下分出3个文件到/duan目录下,命名为wenjian,每个文件大小为1024M(bs=1024后不加单位默认为字节)。

mkswap /duan/wenjian1  使用mkswap命令说明该文件用于交换空间

swapon /duan/wenjian1  激活交换空间后即可用free命令查看

swapoff /duan/wenjian1  卸载被激活的交换空间

df 命令  查看磁盘空间的占用

参数选项:

-t:显示各指定类型的文件系统的磁盘空间使用情况

-T:显示文件系统类型

df -T  (T代表Type)查看磁盘空间占用并显示文件系统类型

du命令  用于显示磁盘空间的使用情况。该命令逐级显示指定目录的每一级子目录占用文件系统数据块的情况。

文件系统的自动挂载

vim /etc/fstab  命令

按yy复制光标所在的行,按p粘贴刚才复制的行

进入插入模式

进入插入模式后修改相对应的信息

esc退出插入模式

:wq保存并退出

reboot重启后自动挂载

磁盘配额配置

首先添加一个磁盘

fdisk /dev/sdb 对sdb建立sdb1分区(2G足矣)

mkfs.ext4 /dev/sdb1 对sdb1分区建立文件系统(只有ext4文件类型才支持文件配额)

添加用户

运行vim adduser.sh命令,“adduser.sh”是一个文件名,可以自定义。

往adduser.sh内插入如下内容

运行sh useradd.sh 命令

cat /etc/passwd  查看创建的用户

vim /etc/fstab 进入挂载目录,配置一下开机自动挂载

reboot  重启系统

chgrp /duan duan  修改/duan所属组为duan

chmod g+w  给/duan目录添加其他用户的w权限

quotacheck -avug -mf  强制扫描已挂载的文件系统

quotaon -auvg  启动quon的服务

edquota -u user1  给user1进行限额设定

soft=280000kb≈280M  使用容量超过280M予以警告

hard=300000kb≈300M  最大容量为300M

edquota -p user1 -u user2  将user1的限额设置复制给其他用户

edquota -g duan  更改群组duan的限额

soft=900000kb≈900M  使用容量超过900M予以警告

hard=1000000kb≈1000M  最大容量为1000M

edquota -t  修改宽限时间

由原来的7days修改为现在的14days

测试磁盘配额

su – user1 切换到普通用户下,利用dd命令往user1 /duan目录下添加文件,当超出280M时,提示:“出错: 超出磁盘限额

在Linux中配置软RAID

1.事先安装4块SCSI硬盘

2.创建4个磁盘分区

创建4个磁盘分区,容量大小都一致,都为500M

fdisk /dev/sd(b-e)

n选项创建新分区

fdisk -l | grep sd

为四个分区创建文件系统

mkfs.ext4 /dev/sd(b-e)1

修改磁盘ID

fdisk /dev/sd(b-e)

t项修改磁盘ID

fdisk -l

3.使用mdadm命令创建RAID5

madam --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1

4.为建立的/dev/md0建立类型为ext4的文件系统

mkfs.ext4 /dev/md0

5.查看建立的RAID5的具体情况

mdadm --detail /dev/md0

6.将RAID设备挂载

将RAID设备挂载到指定目录/duan上

首先需要创建一个/duan目录

mkdir /duan

手动挂载文件系统

mount /dev/md0 /duan

写入一个数据块

hostnamectl status 查看主机名

nmtui命令  用界面的方式修改主机名。使用NetworkManager的nmtui接口修改后(/etc/hostnamed文件),不会通知hostnamectl。要想强制让hostnamectl知道静态主机名已经被修改,需要重启hostnamed服务。(动图演示👇)

使用hostnamectl修改主机名(动图演示👇

使用NetworkManager的命令行接口nmcli修改主机名(动图演示👇

使用vim修改主机名(修改hostname文件)

下载链接

Linux个人笔记.pdf
https://www.aliyundrive.com/s/bGKambXPP9H
提取码: ob95 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值