Linux系统的特点
Linux是一款开源免费的操作系统
支持多种硬件平台
支持多用户
具有非常强大的网络功能
在Linux系统中,英文大小写字母表示的含义不一样
Linux应用领域
Linux服务器:目前是服务器系统中最广泛的一种
桌面应用:新版本的Linux系统特别在桌面应用方面进行了改进,达到相当的水平
嵌入式系统:由于Linux系统开放源代码,可以方便修改,在嵌入式设备领域有很广阔的市场
Linux系统构成
内核、文件系统、命令解释器、应用软件
Linux操作系统文件系统

LINUX常用操作命令和命令行编辑快捷键
Ctrl + a/Home 切换到命令行开始
Ctrl+e/End 切换到命令行末尾
Ctrl + l 清除屏幕内容(效果等同于clear)
Ctrl+u 清除光标之前的内容
Ctrl + k 剪切清除光标之后的内容
Ctrl + y 粘贴刚才所删除的字符
Ctrl + r 在历史命令中查找 反复搜索执行过的命令
Ctrl+c 终止命令
Ctrl+o 重复执行命令
Ctrl+d 退出shell,logout,相当于exit
Ctrl + z 转入后台运行,但在当前用户退出后就会终止
Ctrl+t 交换光标位置前的两个字符的位置 (例如: lu➡ul)
Alt + t 交换当前与以前单词的位置
Alt + d 剪切光标之后的词
Ctrl+w 剪切光标所在处之前的一个词(以空格、标点等为分隔符)
Ctrl+(x u) 按住 Ctrl 的同时再先后按 x 和 u,撤销刚才的操作
Ctrl+s 锁住终端 命令代码都不太好使 (但是锁住了之后敲得东西会在解锁之后全部都显现出来)
Ctrl+q 解锁终端 继续操作
!! 重复执行最后一条命令
!$ 显示系统最近的一条参数
帮助命令
man command 按q退出
空格键 向下翻一页
[Page Down] 向下翻一页
[Page Up] 向上翻一页
[Home] 去到第一页
[End] 去到最后一页
/string 向下搜寻string这个字符串
?string 向上搜寻string这个字符串
n,N 利用/或?来搜寻字符串时,用n来继续下一个搜寻
可以用N来进行反向搜寻
q 结束这次的man page
local+e展示系统所有语言
--help 用法:date --help
info page 文本模式网页显示数据 需要连网
Linux提供在线求组方法
info和man的用途差不多,要查询的目标数据的说明文件必须要以info的格式来写
ls: -l 展示详细信息 ,-a展示隐藏文件 ls -al ~ 列出哪个地方的文件

touch: 修改时间或建立新档
-c 修改文件时间
-d:后面接想要修改的日期
-m:修改mtime
-t:加预修改的时间 格式:YYYYMMDDhhmm
把日期调为两天前:touch -d ”2 days ago“ bashrc
umask 文件预设权限看后面三个数字
[root@localhost ~]# umask
0022 看后三个数字
[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
chattr 配置文件隐藏属性
[root@localhost ~]# cd /tmp
[root@localhost tmp]# touch attrtest //建立空文件
[root@localhost tmp]# chattr +i attrtest //给予i的属性
[root@localhost tmp]# rm attrtest //尝试删除
rm: remove regular empty file ‘attrtest’? y
rm: cannot remove ‘attrtest’: Operation not permitted
[root@localhost tmp]# chattr -i attrtest //删除
lsattr(显示文件隐藏属性)
-a:将隐藏文件展现出来
-d:如果是目录,仅列出目录本身属性而不是目录内的文件名
-R:连同目录的数据一起列出来
mkdir(建立新目录): -m创建目录可以给他指定权限 -p加了他可以一层一层创一堆文件夹
mkdir -am 711 test2
mkdir -p test1/test2/test3/test4
cp:如果拷贝一个目录需要使用 -r,同时这个命令有另存为的作用
mv:即使移动目录页不需要选项,有重命名的作用 -f 强制移动 -u移动的时候只有比较新才会更新 -i互动
rm:如果删除目录需要加-r选项 -f强制删除 -i互动模式,问你删不删除
rmdir [-p] 目录名称
*:匹配任意长度字符串
?:匹配一个长度的字符串
文件内容查询
cat 查看文件内容、创建文件、文件合并、追加文件内容等功能
由第一行开始显示文件内容
-A:可列出一些特殊字符而不是空白 -b:列出行号,空白行不标行号 -E:将结尾的断行字符¥显示出来 -n:列出行号,空白行也会被列出 -T:将[Tab]以^I显示出来 -v:列出一些看不见的特殊字符
tac 由最后一行开始显示文件内容 -n接数字,表示显示几行 -f表示连续预测后面接的档名
nl显示的时候会显示行号
more一页一页地显示
less往前翻
head、tail 显示文件头部、尾部 选项-n 指定查看前n行或者后n行 不加默认查看10行
#head -n 20 /etc/man_db.conf
od 以二进制方式读取
where 脚本文件名搜索 只能找二进制 找不到脚本
whereis(文件或目录)在几个特定的目录下去搜索,优点:找的快,缺点:不一定能找到
-l:列出whereis查询的几个主要目录
-b:只找binary格式文件
-m:找说明文档
-s:只找source来源文件
-u:搜寻不在上述三个项目中的其他特殊项目
find (什么都可以搜索)
1.与时间有关
-mtime n :n为数字,代表在n天之前的[一天之内]被更动过内容的文件
-mtime +n:列出在n天之前(不含n天本身)被更动过内容的文件
-mtime -n: 列出在n天之内(含n天本身)被更动过内容的文件档名
-never file:file为存在的文件,列出比file还要新的文档名
find / -mtime 0 从当前这个时间点以前推24小时,0代表的目前时间
寻找/etc底下的文件,如果文件日期比/etc/passwd新就列出
find /etc -newer /etc/passwd
2.与组名有关的参数
-user name:找出账号为name的文件
-group name :找所拥有组的
-nouser:寻找文件拥有者不存在/ete/passwd的人
-nogroup:找没有组的
3,与文件权限及名称有关的参数
-name filename:搜寻文件名为ilename的文件
-size [+-]SIZE:搜寻比SIZE还要大(+)或小(-)的文件,这个SIZE的规格有:
c:代表byte k:代表1024bytes,
要找比50KB还要大的文件,[-size +50k]
-tupe TYPE: 搜寻文件的类型为TYPE的,类型主要有:一般正规文件(f),装置文件(b,c),目录(d)
连接档(l)
-perm mode :搜寻文件权限[刚好等于]mode的文件,这个类似chmod的属性值
-perm -mode:必须完全攘括mode权限
-perm /mode:包含任意mode权限
grep [搜索文本] [文件名] 搜索文本文件内容
-n用于显示行号 -i忽略大小写
find [目录] -name [文件名] 在一个目录及其子目录下查找文件
wc [文件名] 查看文件行数 、单词数等信息
-c表示查看多少字符 -i查看多少行,-w查看多少单词。不加选项显示这三项
管道可以把一系列命令连接起来上一个命令的输出将作为下一个命令的输入
ls |grep 'hello'
ls | wc -w
压缩解压命令
zip,unzip 将文件压缩为zip格式/将zip格式文件解压
tar 对gz或者bz2格式进行压缩解压
zip -r:可以选择压缩目录
zip test.zip filelist
zip -r qtx.zip month01
unzip -d 可以选择解压位置
unzip -d /home/tarena test.zip
tar:-cjf 用于压缩bz2格式文件 -czf用于压缩gz格式文件 -xvf用于解压文件 -C用于指定解压位置
tar -czf file.tar.gz file1 file2
权限管理
sudo 放在一个命令前,表示使用管理权限执行
账号记录在/etc/passwd 个人密码在/ect/shadow 组名在etc/group

第一个字符代表这个文件是来源于什么地方
[d]目录 文件里面的权限针对于文件
[-]文件 文件权限针对于文件具体内容
[l]连接档
[b]装置文件里面的可供存储的接口设备
[c]装置文件里面串行端口设备,例如键盘、鼠标
su- 切换管理用户 exit退出
chmod 修改文件权限 例: chmod 777 .bashrc
符号类型改变文件权限:
u +(加入) r
chmod g - (除去) w 文件或目录
o =(设定) x
a
chgrp :改变文件所属群组 被改变的组名必须要在/etc/group文件内存在才行
例: chgrp users initial-setup-ks.cfg 文件的群组被改成users了
显示展示命令
echo 向终端打印内容
-n 表示打印完成不换行
pwd显示目前所在目录 -P:显示确实路径而不是连接路径
date显示当前时间
cal 显示本月日历
cal [month][year] 显示本年日历
be 计算器
quit离开这个计算器
tab命令补全、文件补齐
【命令补全】:[Tab][Tab] 例:ca[Tab][Tab]可以列出所有以ca开头的指令
【文件补全】:ls -al ~/.bash[Tab][Tab] 列出在该目录下所有以.bash为开头的文件名
【参数/选项补齐】:date -- [Tab][Tab] 系统会列出来date这个指令可以使用的选项有哪些,包括未来会用到--date等项目 按照这个格式补全
df显示磁盘剩余空间
-h 选项以更符合阅读习惯的方式显示磁盘使用量,-T显示文件系统类型,ext4的为磁盘
whoami显示当前用户
history [num]显示历史命令记录 history默认显示500条历史记录
tree 显示项目属性结构
echo "hello world" > out.txt,将执行结果,写到out.txt文件
中,若有同名文件将被删除
ls /usr >> output.txt,将ls /usr的执行结果,追加到
Lsoutput.txt文件已有内容后
shutdown 关机或者重启,管理员权限执行sudo
shutdown -k 不是真的关机,只是发送警告信息
shutdown -r now 立即重启
shutdown now 立即关机
shutdown +10 10分钟之后关机
shutdown -h 20:25 20:25关机
shutdown -c取消关机
ln:一般使用-s选项 创建软连接,相当于快捷方式 如果跨目录创建需要使用绝对路径
ln -s /home/tarena/stage02/day02/hello.py hello
vi编辑器
vi [文件名]

i 在当前字符前插入文本
o在当前后面插入一空行
w 保存
q退出,没有保存不允许退出
q!强行不保存退出
wq保存并退出
w!强制保存
gg文件顶部
G文件末尾
:数字 移动到数字对应行数
:set nu 显示行号
:set nu!显示行号
u 撤销上次命令
ctrl -r 恢复撤销的命令
x删除光标所在字符 或者选中文字
cc删除光标所在行并进入插入模式
yy 复制一行,nyy复制多行
dd剪切光标所在行,ndd剪切多行
p粘贴
r 替换当前字符 命令模式
R 替换当前行光标后的字符 替换模式
:%s/str/replace/g 替换str为replace 底行模式
软件安装 安装软件包通常需要管理员权限
更新本地的资源列表 apt update
更新软件 apt upgrade
安装软件 apt install
卸载软件 apt remove --purge
安装本地软件包 dpkg -i
卸载软件 dpkg -P
解决依赖关系 apt install --fix-broken
资源列表 :/etc/apt/sources.list
sudo apt install sl # 安装
sudo apt remove --purge sl # 彻底卸载
pip3工具使用
pip3是安装python3标准线上库的重要工具。在python3.6
以后的版本中安装python默认就会自带这个工具。
pip3 list 查看已安装的python包
pip install [包名] 查看已安装的python包
pip3 show [包名] 查看已安装包的信息
pip uninstall [包名] 卸载已安装的python包
pip install --upgrade [包名] 更新包
pip freeze >requirements.txt 导出环境需求文档
ssh服务
ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全,在数据传输方面有很多应用。之前说到,实际工作中经常需要远程访问服务器,ssh就是通用的远程访问服务器的方法。
安装启动
安装ssh服务:sudo apt install openssh-server
查看ssh服务状态 ps -e | grep "ssh"
启动和关闭:
sudo service ssh start/restart/stop
ssh 用户名@ip 登录远程主机
scp 用户名@ip:文件名绝对路径 目标位置 远程复制文件
ssh登录
ssh levi@192.168.100.5 # 登录
exit # 退出
scp拷贝
# 注意:`:` 后面的路径写绝对路径
scp demo.py levi@192.168.100.5:/home/tarena
# 把远程主目录下demo.py文件 复制到本地当前目录下
scp levi@192.168.100.5:/home/tarena/demo.py .
# 加上 -r 选项可以传送文件夹
scp -r demo levi@192.168.100.5:/home/tarena/
在终端启动python服务
1.python3 hello.py
2.编写python程序时在第一行增加解释器声明
#!usr/bin/python3
修改文件的权限 使其有可执行的权限
通过指定文件位置执行代码
文件特殊权限 SUID,SGID,SBIT
Set UID(SUID)得到所有者的支持 4
Set GID(SGID)得到组的支持 2
Sticky Bit(SBIT) 1
有一个目录上面有这个权限之后,甲进来创建的文件归甲管,除了管理员别人都删除不了
SUID u+s
SGID g+s
SBIT o+t
[root@localhost tmp]# cd /tmp
[root@localhost tmp]# touch test
[root@localhost tmp]# chmod 4755 test;ls -1 test
4755中的4就是由这几个特殊权限相加
本文详细介绍了Linux操作系统,包括其开源免费、多用户支持、强大网络功能等特点,以及在服务器、桌面和嵌入式领域的广泛应用。此外,还探讨了Linux系统构成,如内核、文件系统和命令行工具,并列举了常用命令,如`ls`、`mkdir`、`cp`、`mv`、`rm`等,以及文件权限管理、压缩解压、软件安装和SSH服务的使用。通过对这些基础知识的掌握,读者能够更好地理解和操作Linux系统。
5925

被折叠的 条评论
为什么被折叠?



