Linux基础第一天
Linux简介
Linux是一种 开源的操作系统 ,因此, Linux是一种免费的操作系统 ,可以在多种计算机设备上运行,包括台式机、笔记本电脑、服务器和嵌入式系统等。Linux操作系统具有稳定性、安全性和可扩展性等优点,广泛应用于服务器领域、云计算、超级计算机和移动设备等各种场景。
同时,Linux也有多个版本和发行版,如Ubuntu、Debian、Fedora、Red Hat Enterprise Linux和CentOS等
Linux优点
1.Linux系统兼容Unix系统、⼏乎具备Unix所有优秀特性。
2.Linux系统基于GNU许可(GNU is Not Unix)、开放源代码的程序、可⾃由修改。
3.Linux系统基于GPL通⽤许可,免费、开源、随意修改、随意传播、⽆任何版权限制。
4.Linux系统兼容x86系列的CPU架构、并且⾼效稳定、可靠、安全。
5.Linux系统拥有完善的多⽤户、多任务、多进程、多CPU的系统。
6.Linux系统具有⼤量的第三⽅免费应⽤程序、中⼩型企业完全够⽤。
常见发行版本
⽬前企业⽤到 centos 7.2 内核版本 3.10
centos 7.9 4.18 版本
ubutu 20 版本 16.04
源优化
systemd介绍
systemd是一个功能强大、灵活、高效和可靠的Linux系统和服务管理器,它可以提高系统的稳定性、可靠性
和管理效率。它是Linux系统管理的重要组件之一,已被广泛应用于各种Linux发行版中。
初始化进程
开机过程
- 电脑开机BIOS自检(POST):当您按下电源按钮时,计算机的BIOS(基本输入/输出系统)将运行自检程
序,检查硬件设备是否正常工作。如果出现故障,BIOS将发出蜂鸣声并显示错误消息。 - 启动菜单:接下来,计算机会加载启动菜单,您可以从菜单中选择您想要启动的设备或系统。通常,您可以从
硬盘驱动器、光盘或USB闪存驱动器中启动计算机。 - 加载操作系统内核:当您选择启动设备后,计算机将读取该设备上的引导记录。引导记录包含有关操作系统位
置和启动方式的信息。接着,操作系统内核将被加载到内存中。 - 内核初始化:一旦操作系统内核被加载到内存中,它将开始初始化操作系统的各个组件。这包括加载设备驱动
程序、初始化网络和文件系统等。 - 启动初始化进程:最后,操作系统将启动初始化进程(systemd进程),这是一个特殊的进程,它是系统中第
一个运行的用户空间进程。它将负责启动其他进程和服务,使计算机能够正常工作。
目标名称
服务管理
**System V init****(6系统) | systemctl****命令(7系统) | |
---|---|---|
service crond start | systemctl start crond.service | 启动服务 |
service crond stop | systemctl stop crond.service | 停⽌服务 |
service crond restart | systemctl restart crond.service | 重启服务 |
service crond status | systemctl status crond.servre | 查看服务运⾏状态 |
systemctl is-active sshd.service | 查看服务是否在运⾏中 | |
chkconfig crond on | systemctl enable crond.service | 开机⾃动启动 |
chkconfig crond off | systemctl disable crond.service | 开机不⾃动启动 |
systemctl is-active sshd.service | 查看服务是否在运⾏中 | |
systemctl mask crond.servre | 禁⽌服务运⾏ | |
systemctl unmask crond.servre | 取消禁⽌服务运⾏ | |
systemctl 服务状态说明
loaded 服务单元的配置⽂件已经被处理
active(running) 服务的⼀个或多个进程在运⾏中
active(exited) ⼀次性运⾏的服务成功被执⾏并退出(服务运⾏后完成任务,相关进程会⾃动退出)
active(waiting) 服务已经运⾏但在等待某个事件
inactive 服务没有在运⾏
enabled 服务设定为开机运⾏
disabled 服务设定为开机不运⾏
static 服务不能被设定开机启动,但可以由其他服务启动该服务
bash
命令流程
当我们执⾏⼀个命令, 整个命令执⾏流程如下:
1.判断命令是否通过绝对路径执⾏
2.判断命令是否存在别名
3.判断⽤户输⼊的是内部命令还是外部命令
4.内部命令直接执⾏, 外部命令检测是否存在缓存
5.检测 PATH 路径, 有执⾏, ⽆报错
转义字符
反斜杠(\):使反斜杠后⾯的⼀个变量变为字符串。
单引号(''):转义其中所单纯的字符串。
双引号(""):保留其中的变量属性,不进⾏转义处理。
反引号(``):把其中的命令执⾏后返回结果。
系统⽬录结构
/etc 系统重要配置⽂件, 以及常⽤服务配置⽂件
/var 存放系统引导启动时产⽣的可变⽂件,⽂件通常动态更改的,例如: 缓存⽬录,⽇志⽂件
/run 系统启动后, 运⾏的程序产⽣的运⾏时数据, 包括进程的pid⽂件,锁⽂件等
/home 普通⽤户的主⽬录, 普通⽤户的家⽬录默认为/HOME/USERNAME
/root 超级管理员的主⽬录, 普通⽤户⽆权操作
/tmp 存放临时⽂件, ⼀般存放超过10天以上都会⾃动删除,可以更改删除临时⽂件的期限
/boot 存放系统引导时候需要的⽂件
/dev 存放设备⽂件
/usr 安装的软件, 共享库, 重要的⼦⽬录有
/usr/bin ⽤户命令⽬录
/usr/sbin 管理员命令⽬录
/usr/local 本地⾃定义安装的软件
vx: WingspanGo
vx: WingspanGo**⽂件路径定位**
路径的作⽤:定位⽂件具体位置信息
你要在那⾥创建什么⽂件?
你要将什么⽂件复制到什么地⽅?
你要删除的⽂件在什么地⽅?
绝对路径
Linux系统采⽤了⽬录树的⽂件组织结构, 在Linux下每个⽬录或⽂件都可以从根⽬录处开始寻找, ⽐如: /usr/bin
⽬录。这种从根⽬录开始的全路径被称为"绝对路径", 绝对路径⼀定是以 “/” 开头的。
相对路径
Linux系统采⽤了⽬录树的⽂件组织结构, 在Linux下每个⽬录或⽂件都可以从根⽬录处开始寻找, ⽐如: /usr/bin
⽬录。这种从根⽬录开始的全路径被称为"绝对路径", 绝对路径⼀定是以 “/” 开头的。
⽬录管理命令
1.⽬录创建命令 mkdir
\# mkdir dir1
\# mkdir /home/wing/dir1 /home/wing/dir2
\# mkdir /home/wing/{dir4,dir5} -v
\# mkdir /home/wing/dir6/dir6-1 -pv
⽂件管理命令
文件创建命令touch
# touch filename
\# touch filename_1 filename_2
\# touch /home/wing/file5 file6
\# touch file{1..10}
\# touch file{a,b,c}
\# touch file{a..z}
⽂件时间 stat
[root@test-example ~]# stat test.txt
File: 'test.txt'
Size: 2 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 67335626 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2018-01-21 12:12:48.949097044 +0800
Modify: 2018-01-21 12:12:35.243302963 +0800
Change: 2018-01-21 12:12:35.243302963 +0800
Birth: -
访问时间:atime,查看内容
修改时间:mtime,修改内容
改变时间:ctime,⽂件属性,⽐如权限
删除时间:dtime,⽂件被删除的时间
文件目录复制cp命令
用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
vx: WingspanGo
vx: WingspanGovx: WingspanGo
//将name⽂件复制⾄/tmp⽬录中
\# cp name /tmp/name_copy
//如果复制过想保持原⽂件名,不修改名称
\# cp name /tmp/name
//如果复制过想保持原来的属性, -p保持原⽂件或⽬录的属性
\# cp -p name /tmp/name_p
//复制⽬录只需要使⽤-r参数, 递归复制
\# mkdir name_name
\# cp -r name_name/ /tmp/name_tmp
//将多个⽂件拷⻉同⼀个⽬录
\# cp -rv /etc/hosts /etc/hostname /tmp
\# cp -rv /etc/hosts /etc/hostname ./
//
\# cp -rv /etc/hosts /etc/hosts.bak
\# cp -rv /etc/{hosts,hosts.bak}
\# cp -rv /etc/hosts{,-org}
⽂件⽬录移动命令 mv
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
//移动⽂件⾄tmp⽬录
\# mv file /tmp/
//移动⽂件⾄tmp⽬录并修改名称为file_test
\# mv file /tmp/file_test
//移动⽬录⾄/tmp⽬录下
\# mv dir/ /tmp/
//移动多个⽂件或多个⽬录⾄同⼀个⽬录
\# touch file{1..3}
\# mv file1 file2 file3 /opt/
\# mkdir dir{1..3}
\# mv dir1/ dir2/ dir3/ /opt
⽂件⽬录删除命令 rm
rm [OPTION]... FILE...
-r 递归
-v 详细过程
//删除⽂件, 默认会提醒是否删除⽂件
\# rm anan
//强制删除⽂件, 不提醒
\# rm anan -f
//删除⽬录,会提醒
\# rm -r dir/
//强制删除⽬录,不提醒
\# rm -rf dir/
⽂件查看命令cat
cat //查看⽂件内容
示例:cat /etc/passwd
示例:cat -n /etc/passwd //-n参数⾏号
示例:cat >> wing.txt <<EOF //追加数据
test
EOF
head //查看⽂件头部内容,默认前⼗⾏
示例:head /etc/passwd
示例:head -n5 /etc/passwd //-n参数指定查看头⼏⾏
tail //查看⽂件尾部内容,默认最后⼗⾏
示例:tail /etc/passwd
示例:tail -f /var/log/messages // -f参数跟随尾部输出⽽变化
⽂件下载命令wget
wget //⽂件下载
-O //指定下载地址,更改名称
-T //超时时间
-q //安静下载(关闭wget输出)
--spider //⽹络爬⾍
示例:wget http://www.baidu.com
curl //⽂件下载
示例:curl -o http://www.baidu.com
yum install lrzsz
rz //⽂件上传
sz //⽂件下载
示例:sz filename
命令查找命令locate
locate //查找⽂件或者⽬录
示例:locate /etc/sh //搜索etc⽬录下所有以sh开头的⽂件
示例:locate -i /etc/sh //搜索etc⽬录下,所有以sh开头的⽂件,忽略⼤⼩写
which //查找系统PATH变量⽬录下的命令(绝对路径)
示例:which ls
whereis //查找⽂件索引数据库下的命令、源⽂件、man⽂件。⾮PATH变量查找,所以查找的⾯⽐which要⼴ -b,-
m
示例:whereis ls
示例:whereis -b ls
标签:tmp,第一天,命令,基础,etc,Linux,cp,crond
From: https://www.cnblogs.com/zgw03/p/18342633