Linux基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含12276字,纯文字阅读大概需要18分钟。
内容图文
![Linux基础](/upload/InfoBanner/zyjiaocheng/929/c4922523c59e406e9fcc44dcfa6d39fa.jpg)
文章目录
Linux作用
Linux一般用来做服务器端的操作系统
学习Linux可以做Linux运维、嵌入式开发、为后面学习Python和人工智能等课程打下基础
-
服务器端:提供服务的一方,远程 (90%以上的服务器端使用Linux)
-
客户端:PC机、手机
本质上都是计算机 -
操作系统:中介/平台
eg.桌面操作系统(Windows、Mac OS)、服务器端操作系统(一般无可视化操作界面)、手机端操作系统(安卓、ios、塞班)、 智能设备的系统
Linux更为安全、Windows开放权限多
安卓基于Linux(核心),开发外围软件
命令行操作 通过SSH客户端连接远程服务器
常用的大概2-30个
内核版本 | 发行版本 | |
---|---|---|
作用 | 操作系统的心脏,处理各种硬件打交道的工作 | 内核版本+各种应用软件(办公 媒体播放 浏览器 数据库) |
其它 | 稳定版本 开发版本 | Ubuntu Redhat CentOS |
Linux文件系统(目录和文件)
Linux没有盘符概念,只有一个根目录
/home 多为个人文档,home内可以区分多个用户
/usr 存放可执行文件
/bin binary,二进制文件、普通命令
/sbin system binary,系统二进制文件,需要有系统权限
/usr/bin 用户安装的应用程序
/usr/sbin 超及管理员执行的安装的应用程序
打开终端(Terminal)的默认路径:home/”用户名“/
/usr 应用程序
详情见Linux各个目录及每个目录作用介绍,注意规范
通过挂载加硬盘
常用指令
Tab键可以实现命令的自动补全 文件、目录
上下方向键可以取得以上历史操作
clear: 清屏
cd
(change directory):打开目录 用/(~或不输入可以直接回到home目录) ./至该目录的下级;有绝对路径(以/开头)和相对路径
cd … 打开上一级路径
cd - 两次使用进行路径返回
pwd (print work directory):查看所在路径
ls的使用范围为当前目录
还可以将查找到的内容写入文件:
eg.ls >> 【文件名/也可以在该文件夹下创建新文件】
haha@ubuntu:~/Desktop$ ls >> 126.txt
ls
ls(list):查看该路径内所有内容(文件夹、文件)
ls ”相对路径“:
ls /:罗列根目录下所有文件
eg.罗列出 ~/Desktop的路径
ls -l 竖向排列,可以查看文件所处文件夹、修改日期、大小byte,总大小Total:kb
ls -alF (或ll) 查看文件所处文件夹等,且包含该级和上一级文件夹
ls -i 罗列出文件详细信息及文件id
ls -lh 文件单位变为kb
ls -a 可显示隐藏文件夹
ls -la 同时使用两种
.当前文件夹
…上一级文件夹
.Ro:隐藏文件Ro
通配符缩小搜寻范围
ls *.txt 通配符 *代表可以为任意字符,.txt限定了文件类型
若使用通配符?,仅代表一个字符
eg.
通配符[ ]实现或操作,可以是数字或者字母
eg.
touch
touch:创建文件夹
mkdir
mkdir(make directory):创建文件
eg.创建隐藏文件夹
rm
删除(remove)rm指令中需要加上-来区分删除的是文件或文件夹名
rm -d 文件名
rm -r 文件夹名
rm 隐藏文件夹名
(move)mv 将文件夹文件移动到指定位置(相对、绝对位置)
cp 复制文件到指定为值
cp -r 文件夹复制到指定位置
除此之外,还可以进行重命名操作
使用每个指令均会使用程序,该程序文件保存了当需要执行命令时需要做的事情,完成该命令并输出结果。使用 which【指令】 可以查看到到改文件加所处位置
eg.特例 which cd,输出为空,是shell内置的命令
find
find进行文件搜索:遍历所有文件速度慢
**精确搜索:**find 【地址 /为根目录】 -name [文件名]
'Permission denied’需换文件夹进行搜索
也可以显示垃圾箱内的文件
Ctrl+C可以终止命令的执行
模糊搜索:
采用通配符*或‘
类似于ls
常见的搜索方式、可多种组合
不限定大小写:
find 【地址】-iname [关键词]
按照文件大小
find [文件] -size +1
linux的1数据块=512byte
通过所属用户
find [地址] -user 【用户名】
eg.
通过时间查找文件
find [路径] -mmin [时间]
-mmin 上次文件内容被修改时间
-amin 上次文件被访问时间
-cmin 上次文件属性(文件的权限)被修改时间
eg.
【时间】+5 上一次修改时间大于5
【时间】 -5 上一次修改时间小于5
通过文件类型进行搜索:
文件、文件夹(目录类型)、软链接
find 【路径】 -type 【f】
-f (file)
-d (directory)
-l (link)
组合查询
条件间用 连接
-a (and)
-o (or)
eg.
不加-a时默认为and连接
locate
locate:索引库搜索速度快(对比可以类比于字典的查找)
locate 【关键字】
查找所有含该关键字的信息
【xx命令】 --help :打开命令帮助手册,查找该命令相干用法;罗列所有的帮助信息
man 【xx命令】 maual手册可使用方向键换行、enter键换行;字母b、空格上下页,以q推出
cat
cat: 直接在命令行中打开文件
cat -b显示行号,不显示空白行
cat -n显示空白行
more:文件以页的方式显示
空格和b翻页、enter换行
grep
grep 【关键字】 【搜索的文件名】
从文件中抓取文档中的文本(的所在行信息)
grep 【类型】【关键字】 【文件名】
eg.
-n 显示该行信息,把说明行号
-v 去除关键字信息,并显示文件中其它所有内容
eg.用于去除文件中的注释行/仅删除整行的注释,以#开头
eg. "^【符号】“表示以【符号】开头
eg.”【符号】$"表示为以【符号】结尾
同样以-i 模糊大小写查询
echo
echo:写入操作
类似于print
haha@ubuntu:~/Desktop$ echo hello!
hello!
也可以直接将文本加入到文件中
haha@ubuntu:~/Desktop$ echo hello! >126.txt #直接覆盖文件中内容
haha@ubuntu:~/Desktop$ echo hello@ >>126.txt #保留原有文件基础上+下一行添加
管道:联结命令——“|”
haha@ubuntu:~/Desktop$ ls -lh| grep 125.txt
-rw-rw-r-- 1 haha haha 0 Feb 16 00:03 125.txt
软链接(快捷方式),在当前文件夹中创建
ln 【文件位置】 【软链接名称】 (L)
haha@ubuntu:~/Desktop$ touch aa/abc
haha@ubuntu:~/Desktop$ ln aa/abc abc_sof
打开软链接,内容与代表的文件中一致
haha@ubuntu:~/Desktop$ cat abc_sof
123
23
useradd
添加用户:
useradd 【新用户名】
eg.出现以下情况,无权限
haha@ubuntu:~/Desktop$ useradd user1
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
sudo/su
sudo获取权限(?临时权限),减少了登出和登入root所需的时间、提高的安全性
速冻有5分钟(??不止5min)的有效期,在U欧效期内执行速冻不需要再次输入密码
sudo unseradd user1
[sudo] password for haha: #输入密码后回车即可创建成功
创建含home目录(-m)的用户,默认无
haha@ubuntu:/home$ sudo useradd -m user2
haha@ubuntu:/home$ ls /home #查看home目录,发现含user2
haha user2
cat /etc/passwd
利用 /etc/passwd文档查看是否创建成功
haha@ubuntu:~/Desktop$ cat /etc/passwd
#...
#...
sssd:x:121:127:SSSD system user,,,:/var/lib/sss:/usr/sbin/nologin
geoclue:x:122:128::/var/lib/geoclue:/usr/sbin/nologin
pulse:x:123:129:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
hplip:x:124:7:HPLIP system user,,,:/run/hplip:/bin/false
gnome-initial-setup:x:125:65534::/run/gnome-initial-setup/:/bin/false
gdm:x:126:131:Gnome Display Manager:/var/lib/gdm3:/bin/false
haha:x:1000:1000:ubantu_allname,,,:/home/haha:/bin/bash
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
user1:x:1001:1001::/home/user1:/bin/sh #可以看到user1已经创建成功
passwd
设置密码:
haha@ubuntu:~/Desktop$ sudo passwd user1
New password:
#几种错误的提示符
BAD PASSWORD: The password is shorter than 8 characters
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password: #重新输入密码
passwd: password updated successfully #提示成功
更改当前用户密码:
haha@ubuntu:/home/user2$ passwd
Changing password for haha. #这里的当前用户为haha
可以使用Ctrl +d退出当前修改界面
id
将用户分组:用户可以由0或多个福家族,用户组的作用是为了方便权限控制;即为给用户附加别的权限
eg.默认创立的分组:每个用户都有一个初始组
haha@ubuntu:/home/user2$ id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1)
haha@ubuntu:/home/user2$ id user2
uid=1002(user2) gid=1002(user2) groups=1002(user2) #自然的分成了两个组
useradd -g (group)
haha@ubuntu:/home/user2$ sudo useradd -g user1 user3
haha@ubuntu:/home/user2$ id user3
uid=1003(user3) gid=1001(user1) groups=1001(user1) #新的用户user3加入到user1中
切换用户
eg.切换到根用户
su 【用户名】
haha@ubuntu:/home/user2$ su root
Password: #输入密码
root@ubuntu:/home/user2# 切换成功,用户由haha变为root
在root权限下可以方便的创建新的用户
输入exit或 Ctrl+d退出root用户
普通用户登入只有“$”
haha@ubuntu:/home/user2$ su user1
Password:
$ pwd
/home/user2
userdel
删除用户:
userdel 【用户名】 删除用户
userdel -r 【用户名】 删除用户的同时删除家目录
userdel -f 【用户名】 强制删除用户(可能是在另一个Terminal打开的用户)
eg.可能在处理过程中遇到的问题
haha@ubuntu:/home/user2$ userdel -r user5
userdel: Permission denied.
userdel: cannot lock /etc/passwd; try again later. #该用户下无权限删除,因为属于uroot创建?
root@ubuntu:/home/user2# userdel user1
userdel: group user1 is the primary group of another user and is not removed. #其它用户在该组内,故无法删除
root@ubuntu:/home/user2# userdel -r user5
userdel: user5 mail spool (/var/mail/user5) not found #其实已删除,原理?
删除后可以通过以下命令查看确认
haha@ubuntu:/home/user2$ cat /etc/passwd
or
haha@ubuntu:/home/user2$ ls /home
groupadd
创建、修改、删除组
groupadd 【组名】
groupmod -n 【新组名】 【组名】
groupdel 【组名】
可以通过以下命令查看确认
root@ubuntu:/home/user2# cat /etc/group
文件、用户、组ID
haha:x:1000:1000:hahaa:/home/haha:/bin/bash
用户名:密码(存在影子文件中):用户ID(UID):组ID(GID):指定全名(可以为空):家目录:shell
/etc/shells
SHELL(change Shell)
shell是用来解析命令的,它加收用户命令,然后调用相应的程序执行
shell相当于一个翻译,翻译命令使机器听懂
第一种shell:/bin/bash 翻译一号 系统创建的用户均为该种
第二种shell:/usr/bin/nologin 翻译二号
第三种shell:/bin/sh 翻译三号(新创建用户的时候的shell)
查看系统中的Shell:
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
$
CHSH: 修改Shell
Password:
Changing the login shell for user1
Enter the new value,or press ENTER for the default
Login Shell [/bin/sh]:/bin/bash #输入需要修改的新Shell
/etc/group
???/etc/group 配置当前系统有哪些用户组
1.组名
2.组密码标志
3.GID
4.组中附加用户
影子文件:密码进行了加密
/etc/shadow 用户影子文件
/etc/gshadow 组影子文件
which
通过which查看命令:
1.无任何反应:命令cd放在shell中,内置命令
2.有输出:外部命令
root@ubuntu:/home/user2# which cd
root@ubuntu:/home/user2#
root@ubuntu:/home/user2# which ls
sh: 0: getcwd() failed: No such file or directory #(???
/usr/bin/ls
whoami/who
查看用户信息:
whoami:当前用户信息
who:所有已登录的用户信息
eg.
haha@ubuntu:/home/user2$ whoami
haha
haha@ubuntu:/home/user2$ who
haha :0 2021-02-16 10:18 (:0)
usermod
修改组
初始组: usermod -g【目标组】 【用户】
id 【用户】查看执行情况
附加组:usermod -G 【附加组1】,【附加组2】,【附加组n】 【用户】
在这种情况下,原有的附加组会被覆盖,所有保留原有的附加组需要加在指令中
修改Shell: usermod -s【目标Shell】 【用户】
查看详细当前路径的所有信息
haha@ubuntu:~/Desktop$ ll
total 20
drwxr-xr-x 3 haha haha 4096 Feb 16 14:05 ./
drwxr-xr-x 18 haha haha 4096 Feb 16 15:57 ../
-rw-rw-r-- 1 haha haha 0 Feb 16 00:03 125.txt
-rw-rw-r-- 1 haha haha 50 Feb 16 12:29 126.txt
-rw-rw-r-- 1 haha haha 0 Feb 16 00:03 225.txt
drwxrwxr-x 2 haha haha 4096 Feb 16 14:03 aa/
-rw-rw-r-- 2 haha haha 7 Feb 16 14:04 abc_sof
#所属用户 所属组 文件大小(byte) 日期 时间 文件(夹)名
1位:文件性质
- 二进制文件
d 文件夹
3位:用户(所属人)权限
3位:所属组权限
3位:其它用户权限
注释:
r读 w写 x 执行
eg. rw- 可读可写可执行
chmod/chown/chgrp
权限 | 文件 | 文件夹(目录) | |
---|---|---|---|
r | 读read | 查看文件内容 | 可列出目录中的内容(仅限于名字) |
w | 写write | 修改文件内容 | 可以在目录中创建、删除文件(包括修改文件名字) |
x | 执行execute | 可执行运行we年 | 可以进行入目录(不能查看目录内容) |
tips:Windows下的exe是可执行文件,用于批量处理命令或者处理脚本;而Linux中可执行文件用于启动某个应用程序的linux下的shell脚本(或类型脚本),一般用来启动某个应用程序或者服务程序
修改权限:只有文件所有者和超管可以修改文件的权限
chmod 【所属人/所属组/其它人】 【±=】 【rwx】
eg.给125.txt的所属人、组添加执行权限
haha@ubuntu:~/Desktop$ chmod u+x,g+x 125.txt
#前后变化
haha@ubuntu:~/Desktop$ll
-rw-rw-r-- 1 haha haha 0 Feb 16 00:03 125.txt
#↓
-rwxrwxr-- 1 haha haha 0 Feb 16 00:03 125.txt* #并且因为是可执行文件 125.txt标识变为绿色
#也可以使用=rwx
或者,可以用数字表示权限
R–4 rw-6 rwx 7 -wx 3
eg.r–rw-rwx 467
eg.
haha@ubuntu:~/Desktop$ chmod 666 125.txt #这里的6即为rw-权限
#文件的前后变化
---x-w-r-- 1 haha haha 0 Feb 16 00:03 125.txt*
#↓
-rw-rw-rw- 1 haha haha 0 Feb 16 00:03 125.txt
修改文件,并包络文件的所有子文件:chmod -R 【数字数字数字】 【文件或文件夹】
chown 【所属人】 【需要更改的文件】
chgrp【新所在组】 【需要更改的文件】
- -r修改子文件的权限
eg.
haha@ubuntu:~/Desktop$ sudo chown user2 126.txt
#更改后
-rw-rw-r-- 1 haha haha 50 Feb 16 12:29 126.txt
#↓
-rw-rw-r-- 1 user2 haha 50 Feb 16 12:29 126.txt
haha@ubuntu:~/Desktop$ sudo chgrp user2 126.txt
#更改后
-rw-rw-r-- 1 user2 haha 50 Feb 16 12:29 126.txt
#↓
-rw-rw-r-- 1 user2 user2 50 Feb 16 12:29 126.txt
history_历史命令
内容总结
以上是互联网集市为您收集整理的Linux基础全部内容,希望文章能够帮你解决Linux基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。