Linux(指令)

目录

alt + enter      全屏 ,退出全屏

clear              清屏

pwd                 打印默认所处路径

cd

cd                    进入文件

cd                进入某一文件

cd .                 当前目录

cd ..                上级目录

cd ~               进入当前用户的家目录(任意一个linux用户,用特定用户登录系统时,默认在家目录下)

cd -            在最近所处的路径下使用

扫描二维码关注公众号,回复: 17528462 查看本文章

rm / rmdir

rmdir        删除目录文件(只能删除空目录)

rm              删除文件

rm -f 文件名                强制删除

rm -r 文件名                递归删除

 注意:rm -rf /          系统崩溃,要重装系统

            rm -rf *          在根目录时也会导致系统崩溃

mkdir

mkdir                创建目录文件

【 mkdir -p 串文件路径  】               递归创建一串文件路径

tree           显示所有文件路径       ---报错---->   安装tree命令

which 

alias                起别名

ctrl+c                 终止异常

ls

 ls -a -l/ls -l -a/ls -al/ls -la

ls -l      默认自己的目录

ls -l      指定目录里的内容

ls -l -d            查看目录本身

ls -l 和 ls -l 路径  相同

. 开头的文件                隐藏文件

touch                             创建普通文件

mkdir                             创建目录文件夹

stat        

touch .文件名                创建隐藏文件

mkdir .文件名                创建隐藏文件

man指令

上下键                查找历史命令 

cp 

cp 目录 要递归拷贝 

echo指令        将后续当字符串打印(默认加换行符)

 printf                          显示打印

echo和cat的区别

文件

 mv src dst         剪切文件/指定文件重命名(dst不是目录或者不存在就是命名)

cat        显示器打印

history        查看历史命令(日志)

less                       查看日志,可以上下翻阅

tail

tail 文件名                        查看尾部日志(默认10行)

tail -n 文件名                    查看尾部几行日志

head 

 head 文件名                查看头部日志(默认10行)

head -n 文件名             查看头部几行命令

打印特定的中间行 

时间相关指令

date +%s        时间戳

时间戳转化为时间

cal                 查看日历信息

​编辑

cal -n                只能查看本年近几月的日历

find命令                        

grep  搜索字符串

grep "9" log.txt    显示含9的句子

grep -n "9" log.txt  显示含9的句子且显示行数

grep -v "9" log.txt   去掉带9的行数

grep -i "hello" log.txt   忽略大小写,视为相同

grep -v "hello" log.txt   不符合规定的语句

grep -vi "hello" log.txt  忽略大小写的不符合条件的语句

zip/unzip指令        打包(文件合并)/压缩(减少体积)

zip/unzip

tar 

远程拷贝(linux与linux机器之间)

bc指令   计算器

uname -r  查看体系结构和系统内核版本

ctrl命令 

 history  查看历史命令

关机

shell命令及运行原理

 linux权限

sudo     以超级用户身份行使

 权限

改变文件属性

改变文件的拥有者 chown(chown [参数] 用户名 文件名)

改变文件或目录的所属组 chgrp(chgrp [参数] 用户组名 文件名)

改变文件所属或者拥有者

 目录权限

缺省权限 

删除文件权限

文件属性 

 粘滞位


win界面----os开始时,都是黑屏终端+指令操作

Linux也有图形界面----desktop os-----终端+指令操作

alt + enter      全屏 ,退出全屏

clear              清屏

pwd                 打印默认所处路径

cd

cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录

cd                    进入文件

cd                进入某一文件

cd .                 当前目录

cd ..                上级目录

cd ~               进入当前用户的家目录(任意一个linux用户,用特定用户登录系统时,默认在家目录下)

cd -            在最近所处的路径下使用

rm / rmdir

rmdir        删除目录文件(只能删除空目录)

空目录是指该目录中没有其他的文件或目录,当该目录中存在文件或目录文件,删除不了

rm              删除文件

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除(parent)

-f 即使文件属性为只读(即写保护),亦直接删除 (force)
-i 删除前逐一询问确认(inquire)
-r 删除目录及其下所有文件 (recursive)

rm -f 文件名                强制删除

rm -r 文件名                递归删除

 注意:rm -rf /          系统崩溃,要重装系统

            rm -rf *          在根目录时也会导致系统崩溃

                  *         通配符

win也可以多用户使用:可以打开另外的桌面

mkdir

mkdir                创建目录文件

【 mkdir -p 串文件路径  】               递归创建一串文件路径

tree           显示所有文件路径       ---报错---->   安装tree命令

centos                 yum install -y tree

ubuntu                sudo apt-get update
                           sudo apt-get install tree

which 

alias                起别名

命令就是文件

命令本质==可执行文件==写的c/c++程序

运行程序                

ctrl+c                 终止异常

显示当前目录下的文件(当前用户所处的目录)   

用户       whoami              

目录       pwd                    

当前目录下的文件           

ls     ll      ls -l(命令行 命令行选项(可以0个或多个,多个选项用空格隔开))

ls显示文件属性,只有ls就只显示文件名

ls -l        显示更多属性

ls

-a 列出目录下的所有文件,包括以 . 开头的隐含文件
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-l 一行只输出一个文件。

 ls -a -l/ls -l -a/ls -al/ls -la

ls -l      默认自己的目录

ls -l      指定目录里的内容

ls -l -d            查看目录本身

ls -l 和 ls -l 路径  相同

. 开头的文件                隐藏文件

touch                             创建普通文件

mkdir                             创建目录文件夹

stat        

touch .文件名                创建隐藏文件

mkdir .文件名                创建隐藏文件

建立一个空文件,该文件也要占据磁盘空间 (文件=内容+属性(大小,类型,名称...))

D:\Adobe Premiere Pro\Premiere Pro 2024(目录或普通文件)

(根目录)/root/113/lesson(目录或普通文件)

Linux的文件结构:是一颗从 根目录/ 开始的一个多叉树

a.叶子结点:一定是普通文件或者空目录

b.非叶子结点:一定是一个非空目录

路径具有唯一性:子节点只有唯一一个父节点

任何一个目录即使为空,系统也默认给该目录自动生成

从根目录/开始定位到目标文件的路径:绝对路径(在配置文件中使用)       /home/bit/test.c    

以非/为参照位置,定位一个文件:相对路径(日常操作较多,简单)

man指令

上下键                查找历史命令 

man手册                从1开始向下找到3

man 3                  c语言

man 2                性能调用

同一目录的文件不能同名,不同目录的文件可以同名

cp 

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

拷贝到上级目录 

cp 目录 要递归拷贝 

echo指令        将后续当字符串打印(默认加换行符)

 printf                          显示打印

echo和cat的区别

echo后续内容当字符串打印

cat打印指定文件名里的内容

知识点

1.在Linux中,一切皆文件   

终端的本质在Linux系统就是一个文件,/dev/pts/xxx

如何理解系统帮我们打开?

系统在执行你的代码之前会先去执行fopen接口,打开文件后再去执行代码

为什么要帮我们打开?

用户默认状态下使用方便

为什么不打开其他的?

默认打开三个就够用了,需要使用其他的再打开就行了

2.重定向操作

写入显示器文件中

把内容显示到文件中----输出重定向

文件不存在---创建文件

文件存在有内容---清空内容,再写入

故可以用">文件名"创建文件(普通文件)

可以清空文件内容

追加重定向“>>文件名”(不清空内容,直接追加内容)

输入重定向"<文件名"(从文件里读,输出到显示器上)

/dev/pts     终端系统  以c开头的文件为字符文件

终端也是文件

表明终端也是文件

文件

-:普通文件,不看后缀(不代表禁止使用后缀),文本,可执行,库,图片,视频...

系统不关心后缀,不代表工具(gcc)不关心后缀

d:目录文件

c:字符文件,键盘,显示器,终端,输入的数据只有顺序性        /dev/pts

b:块设备文件,磁盘          /dev/vda

l:连接文件        /usr/lib

p:管道文件

s:socket文件

 mv src dst         剪切文件/指定文件重命名(dst不是目录或者不存在就是命名)

cat        显示器打印

history        查看历史命令(日志)

less                       查看日志,可以上下翻阅

tail

-f 循环读取
-n<行数> 显示行数

tail 文件名                        查看尾部日志(默认10行)

tail -n 文件名                    查看尾部几行日志

head 

 head 文件名                查看头部日志(默认10行)

head -n 文件名             查看头部几行命令

打印特定的中间行 

 

单词行数统计 wc:单词  -l:行数

时间相关指令

%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d

问题:计算机关机再开机时时间仍然准确?

主板上,纽扣电池让系统主板一直在记录时间

date +%s        时间戳

时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

由于时间差,加上了8个小时

时间戳的作用:

1.转化为时间

2.用户->日志->时间

可以进行“区间查找

时间戳转化为时间

cal                 查看日历信息

cal -n                只能查看本年近几月的日历

find命令                        

grep  搜索字符串

-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

grep "9" log.txt    显示含9的句子

grep -n "9" log.txt  显示含9的句子且显示行数

grep -v "9" log.txt   去掉带9的行数

grep -i "hello" log.txt   忽略大小写,视为相同

grep -v "hello" log.txt   不符合规定的语句

grep -vi "hello" log.txt  忽略大小写的不符合条件的语句

zip/unzip指令        打包(文件合并)/压缩(减少体积)

打包:传送拷贝文件时防止文件丢失

压缩:减少体积,节省存储空间,网络传递,可以减少网络传递时间

zip/unzip

安装zip/unzip    sudo apt install -y zip unzip

                          zip --version

                          zip -r dst.zip src     压缩文件

                          unzip xxx.zip    解压文件

                          unzip xxx.zip -d 指定目录   解压到指定目录下

-r 递归处理,将指定目录下的所有文件和子目录一并处理

将Linux上的压缩文件传递给windows

                        sudo apt install -y lrzsz  先进行安装

                        sz xxx.zip     将Linux上的文件传到windows上面

                        rz       从windows页面上传到Linux

tar 

tar 选项 xxx.tgz srcdir    打包src成tgz文件

tar打包不需要递归,默认全部打包

tar czf xxx.tgz src 打包

tar xzf xxx.tgz       解压

tar xvzf xxx.tgz     解压的过程展现出来

tar xzf xxx.tgz -C 路径    把文件解压到指定路径

选项

-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录 

远程拷贝(linux与linux机器之间)

scp lesson4.tgz whb@公网ip:/home/whb/code/113

scp dst.tgz 用户名@公网ip:目标机器指定的路径

bc指令   计算器

计算器的功能

uname -r  查看体系结构和系统内核版本

uname -a

uname -r

体系结构,芯片内核

1.x86_32 x86_64(x64)

2. 新老内核的问题

-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

ctrl命令 

ctrl+r    搜索历史命令

ctrl+d    退出当前用户

 history  查看历史命令

关机

shutdown 选项

shell命令及运行原理

shell感性理解(初步理解)

为什么要存在外壳程序?

1.方便用户操作

2.外壳程序,保护内核

3.外壳程序->进程->新命令到来->创建子程序

 linux权限

linux用户  root用户(超级管理员) / 普通用户

超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

身份切换

普通用户->超级用户       su     不会影响当前的目录

                                       su -   直接以root目录

超级用户->普通用户      adduser 用户名

                                       passwd 用户名

                                       su 用户名 不需要密码

查明当前用户                 ls /home

sudo     以超级用户身份行使

安装软件,安装到系统中,需要管理员root权限

用sudo安装软件,但输入的是普通用户的密码?  

以超级用户身份运行

以超级管理员身份在普通用户时以root身份创建文件

第一次输密码之后,会有10分钟左右的免密码时间

安装软件通常放在/usr/bin目录下

在普通用户下,使用sudo命令,出现问题

 sudo:用来进行指定的短暂提权的

 权限

是什么?

能或不能做什么事

为什么?

1.控制用户的行为,防止错误的发生

2.理解    权限=角色+目标属性

   权限首先限制的是角色(人)

   权限要求目标必须具备对应的属性

不是拥有组,不是所属组,就是other

什么是所属组?更精细化的权限管理,首先要有更精细化的角色分配

怎么办?

实操

改变文件所属组,拥有者,other的权限      chmod [参数] 权限 文件名

改变文件属性

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

所有用户

根据八进制位改变文件权限

能改任何人的文件权限么?用户只能更改自己的文件权限

用sudo可以更改

没有权限时相应操作会被阻止

确定权限信息时,系统会先确定用户是谁                用户角色确定只有一次

在centos只会按顺序确定,拥有者,所属组,other

改变对应的拥有组,此时按照顺序对应当前用户匹配的组来进行权限的限制

改变文件的拥有者 chown(chown [参数] 用户名 文件名)

改变文件或目录的所属组 chgrp(chgrp [参数] 用户组名 文件名)

-R 递归修改文件或目录的所属组
root用户不受权限约束

如何理解可执行?

可执行权限!=文件可执行

给了执行权限,但文件本身不可执行,故无法执行

当文件可以执行时去掉它的可执行权限,故文件依然不可以执行

改变文件所属或者拥有者

系统默认不允许将文件给别人,想要给别人,必须高权限(sudo/su)

 目录权限

如果想进入一个目录,需要什么权限?可执行权限(x)

如果对目录没有r,就无法查看目录里面的文件

如果对目录没有w,就无法在指定目录内部新建文件

默认情况下,新建一个目录,rwx权限默认全都有

如何理解linux多用户之间相互隔离?  /home/test   故任何目录无法进入其他用户的家目录

缺省权限 

对于普通文件:起始权限666,默认不可执行

对于目录文件:起始权限777,默认携带x

不同系统的初始权限不同(因为系统默认会存在一个叫做权限掩码的概念)

000 000 010

最终权限=起始权限&(~umask)

umask存在的目的?

希望凡是在umask中出现的权限,都不应该在最终权限中出现

为什么要存在umask?

a.默认权限,由OS自主决定,无法在创建前进行修改---系统可配置,可以灵活满足需求的一种表现

b.特殊情况下,配置umask,可以控制文件的默认权限,让我们的代码可控

改变umask,从而改变文件权限

删除文件权限

不可读不可写,但可以删除文件

一个文件是否能被删除,与文件本身无关!与文件所处的目录w权限有关

文件属性 

 粘滞位

两个普通用户在根目录(公共目录)下创建文件夹,当a用户为了让b有修改文件的权限,放开了other写的权限,不仅b可以修改a创建的文件,还有c,d等等用户均可以修改a创建的文件甚至删除------

共享文件:不想让非文件的拥有者删除(如a创建的文件,b不能删除)

想在文件夹下共享文件,就得在文件夹下新建文件,但是新建文件涉及到文件夹w的权限,即使创建文件的权限,也是删除文件的权限,故使任何人都能在共享目录下新建,但是不能让非拥有者删除----权限标志位:t(粘滞位)只给目录

chmod +t 文件夹名

根目录下存放临时文件:tmp(存在粘滞位的功能)

猜你喜欢

转载自blog.csdn.net/2301_79941274/article/details/141085897