可能需要注意
硬链接软连接
基本
自由软件基金会
自由软件基金会(Free Software Foundation,FSF)是一个致力于推广自由软件、促进计算机用户自由的美国民间非盈利性组织。。其主要工作是执行GNU计划,开发更多的自由软件,完善自由软件理念。
Linux基金会
Linux基金会是一个非盈利性的联盟,其目的在于协调和推动Linux系统的发展,以及宣传、保护和规范Linux
开源
•自由软件赋予使用者以下的四种自由:
-
使用的自由:可以不受任何限制地使用软件。
-
研究的自由:可以研究软件运作方式、并使其适合个人 需要。
-
散布的自由:可以自由地复制此软件并传播给他人。
-
改良的自由:可以自行改良软件并传播改良后的版本。
优点
•Linux is Free
•可移植性
•多用户
•多任务
•多级文件系统
•与设备独立的输入输出操作
•强大的交互界面shell
•系统工具
•系统服务
登录,退出
ctrl+alt+F1到ctrl+alt+F7可以在6个字符虚拟终端和一个图形终端之间进行切换
logout
exit
ctrl+d
#退出用户
双系统
swap
在内存小于2G的情况下,交换分区应为内存的2倍,超过2G的话,交换分区为物理内存加上2G
/
根目录所有目录都会放到这个挂载点下面
/home
主目录,自己创建的文件有时候会放在这里
/boot
启动目录,启动文件在这个目录下
Linux根目录下有哪些文件?
/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。(不要动)
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/srv:该目录存放一些服务启动之后需要提取的数据。
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
/tmp:这个目录是用来存放一些临时文件的。 用完即丢的文件可以放在这个目录下
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin: 系统用户使用的应用程序。
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。s代表super
/usr/src: 内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
/www:存放服务器网站相关的资源,环境,网站的项目
最多有多少个逻辑分区?
主分区是一定最多有四个,但是逻辑分区要看计算机硬盘接口,SCSI 最多 16 个,IDE 最多 63 个,但是好像又有其他说法,按老师说的从英文字母排序来看 26个字母-2(a/b)-1(c 一个主分区)=23个
在实际操作中我发现不止16也不止23个,说明我这边使用的是IDE类型的硬盘接口
文件系统
传统的磁盘与文件系统应用中,一个分区被格式化成一个文件系统,由于新技术的运用,像LVM,这些技术可以将一个分区格式化成多个分区,也可以将多个分区合成一个文件系统
文件除了文件内容外还有很多属性,例如权限(rwx),文件属性(拥有者,用户组,时间参数等),文件系统将这些系统,分到不同的区块里面,权限和属性放到inode
里面,实际数据放到数据区块
里面,此外,还有一个超级区块
,记录整个文件系统的整体信息,包括inode和数据区块的总量,使用量,剩余量等
挂载
挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
命令
ls
不多说了
颜色可以区分文件类型
蓝色显示表示是目录
黑色显示表示是普通文件或者硬链接文件
绿色显示表示是可执行文件
淡蓝色表示是软链接文件
红色闪烁(红色背景)表示出错的软链接文件
红色表示压缩文件
man帮助
man who
获得who命令的帮助信息
man 5 passwd
给出的是/etc/passwd配置文件的格式说明
man 1 passwd
给出的是passwd命令的使用说明
who
[root@Cai ~]# who
root pts/0 2021-06-15 19:55 (59.38.32.9)
root pts/2 2021-06-15 20:08 (59.38.32.9)
who -q (–count )
当时登录的有几个用户
[root@Cai ~]# who -q
root root
# users=2
who -H (–heading )
[root@Cai ~]# who -H
NAME LINE TIME COMMENT
root pts/0 2021-06-15 19:55 (59.38.32.9)
root pts/2 2021-06-15 20:08 (59.38.32.9)
who -b
指出最近系统启动的时间和日期。
[root@Cai ~]# who -b
system boot 2021-06-08 22:07
who am i
显示当前用户的信息
date
[root@Cai ~]# date
Tue Jun 15 20:17:24 CST 2021
cal
查看当月日期
[root@Cai ~]# cal
June 2021
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
cal 2005 显示2005年的日历
cal 1 2005 显示2005年1月份的日历
useradd
添加一般用户r
useradd tt
为添加的用户指定相应的用户组
useradd -g root tt
创建一个系统用户
useradd -r tt
为新添加的用户指定home目录
useradd -d /home/myd tt
建立用户且制定ID
useradd caojh -u 544
练习
usermod -G admin test #把test添加到admin里面
查看组和附属组 id username
创建一个用户tom1,家目录是/tom1
useradd -d /home/tom1 tom1
或者默认也是
创建一个用户tom2,所属组为student组
useradd -g student tom2
创建一个用户tom3,附属组为student03
useradd tom3
usermod -G student03 tom3
创建一个用户tom4,所属组为student03,附属组为student
useradd tom4
usermod -G student03 tom4
创建一个用户tom5,家目录为/student/tom5,所属组为student03,附属组为movie和music
useradd -d /student/tom5 -g student03
usermod -G movie
usermod -G music
passwd
设置密码
usermod
改变用户mary的家目录为/usr/mary
usermod -d /usr/mary -m mary
改变用户mary的所属组为teacher
usermod -g teacher mary
改变用户mary的附属组为movie和music
usermod -G movie , music mary
练习
修改用户tom的家目录为/movie/tom,附属组为movie和music
usermod -d /movie/tom -m tom
usermod -G movie,music tom
# usermod -d /home/test/t -m t -G test1,mary 也行
修改用户tom的所属组为teacher,附属组为movie和music
usermod -g teacher -G movie,music tom
注意:更改用户的信息后,用户要重新登陆才能使更改的内容生效
userdel
删除用户
userdel -r
删除用户家目录
groupadd
groupmod
groupdel
cd
cd -a
ll -a
mkdir
创建目录
rm
rm 文件名
rm -r 文件夹名
(删除文件及其子文件夹名)
软件包管理
rpm
安装rpm格式的软件包
红帽包资源管理器,用于管理rpm格式的程序
rpm -qa | grep ***
查询系统是否安装***
的rpm包
rpm -e ***
删除***
程序
rpm -ivh ***.rpm
安装 ***
程序
rpm -Uvh ***.rpm
升级***
程序
安装源码包程序
根据压缩格式,先解压、解包
tar -zxvf *.tar.gz
tar -jxvf *.tar.bz2
cd 解压后的文件夹名
./configure --prefix=安装目录
make
make install
绿色文件名即可运行,即./绿色文件名
免安装的软件包,直接./绿色文件名
,或者查看帮助文件
举例namp程序的具体安装步骤如下
tar -jxvf nmap-3.93.tar.bz2
cd nmap-3.93
./configure - -prefix=/usr/local/namp3.93
make
make install
cd /usr/local/nmap3.93/bin
./nmap localhost
mount
mount -o 选项 设备名 挂载点
具体步骤
建立挂载点,通常是在/mnt
目录下建立多个目录,用于挂载多个设备
fdisk -l #查看可用设备
用mount命令挂载
例如
mount /dev/cdrom /mnt/cdrom
mount /dev/sda1 /mnt/Udisk
mount /dev/hda5 /mnt/D (限真实双OS)
切换目录到挂载点目录
cd /mnt/C
ls查看目录下的文件
取消挂载点umount
shell重定向
https://blog.csdn.net/Dueser/article/details/115530797
wc
默认输出行数,单词数,字节数4 4 66 1.txt
- -c或–bytes或–chars 只显示Bytes数。
- -l或–lines 显示行数。
- -w或–words 只显示字数。
- –help 在线帮助。
- –version 显示版本信息。
head
head 只看头几行
head -n 20
head -3 file1 file2 file3
head -c 只看头几个字节
tail
tail 只看尾巴几行
tail -n 20
tail -c 只看尾几个字节
df
-h 使用人类可读的格式
-i 列出 inode 资讯
-T 显示文件系统的形式
du
du 会显示指定的目录或文件所占用的磁盘空间
所占用的磁盘空间并不是文件大小
-h 以K,M,G为单位
-s 仅显示总计
cp
复制
-R 递归复制
-i 在覆盖目标文件之前给出提示,要求用户确认是否覆盖
-v 解释
-f 覆盖不提示
mv
移动
-f 覆盖不提示
-i 在覆盖目标文件之前给出提示,要求用户确认是否覆盖
-v 解释
-u 只在SOURCE文件比目标文件新或者目标文件丢失时才移动
ln
ln 硬链接
ln -s 软链接
https://blog.csdn.net/Dueser/article/details/115531389
more
查看文件,可以跳转行
空格下一页,b上一页
less
比more功能略强一点,都是查看文件
cut
paste
合并文件
find
找出硬链接并删除
find / -inum 134 -exec rm {} \;
zip
zip -r src.zip /root/test
zip -unzip
gzip-gunzip
还有tar啥的,太多了,肯定不考
grub
引导加载程序
ps
类似windows的任务管理器,看进程状态的
ps -l 与当前shell有关的进程
ps aux 显示系统所有进程的情况
pstree
进程树
kill
kill -9
kill -15
一般kill进程之后,需要释放资源再结束,但是我们可以手动改
write
write 用户名
发送消息
mesg
设置终端机的写入权限
wall
广播
mesg设置为n的用户会收到广播吗?
不会
普通用户也可以发送广播吗?
可以
写好的广播稿,如何发送?
重定向
内容长短有限制吗?
有
[halo@Cai ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/halo": 2 messages 2 new
>N 1 root Fri Jun 25 13:45 19/564 "asdf"
N 2 root Fri Jun 25 13:46 20/567 "asdf"
& 1
Message 1:
From root@Cai.localdomain Fri Jun 25 13:45:44 2021
Return-Path: <root@Cai.localdomain>
X-Original-To: halo
Delivered-To: halo@Cai.localdomain
Date: Fri, 25 Jun 2021 13:45:44 +0800
To: halo@Cai.localdomain
Subject: asdf
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@Cai.localdomain (root)
Status: R
jhhh
fdshfh
& 2
Message 2:
From root@Cai.localdomain Fri Jun 25 13:46:00 2021
Return-Path: <root@Cai.localdomain>
X-Original-To: halo
Delivered-To: halo@Cai.localdomain
Date: Fri, 25 Jun 2021 13:46:00 +0800
To: halo@Cai.localdomain
Subject: asdf
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@Cai.localdomain (root)
Status: R
asdf
asdf
asdf
& mail
To: root
Subject: asdf
ffff
fff
EOT
&
- h 显示消息头
- q 退出
- R 回复
R 3
- d 删除
mail user@域名
vim
可以同时打开两个文件,输入命令:n
切换
:r ! cat filename2
将filename2的内容读入,插入到当前文件的光标位置后的一行
命令模式
hjkl移动光标
- w、b 切换到下一个单词、切换到上一个单词首
- e 切换到下一个单词尾
- 0 行首
- $ 行末
- kG 第k行
- x 向后删除
- X 向前删除
- dd 整行删除
- u 撤销
- ctrl+r 撤销
复制,粘贴修改替换等省略
末行模式
搜索
/
向下?
向上n和N可以切换
可以使用shell命令
例如::! ls
输入模式
正常输入
自定义vim
set all
显示参数
显示行号
set nu
缩进5个字符
set tabstop=5
类似宏定义(用5来代替5dd)
map 5 5dd #unmap 5
永久更改(全局,需要root和用户个人的配置)
自己家目录下的.vimrc
全局的/etc/.vimrc
如何修改?
例如:在文件结尾加set nu
如果冲突则用户个人生效
用户管理
https://blog.csdn.net/Dueser/article/details/114239433
shell
echo $(ls -a)
命令序列
;
分组
(date; whoami; pwd; ls ) > result.txt
export
export -p
所有变量
alias
命令别名设置
alias ll='ls -l'
unalias
grep
grep test filename
输出的是在filename里所有出现过test这个字符串的行
grep -n java book.txt|cut -d ":" -f 1
sed -i 'kd' book.txt #k是行数
read
读入
echo “please input a long sentence:"
read a b c
echo \$a=$a
echo \$b=$b
echo \$c=$c
echo
echo -e "input a file name in the current directory:\c"
read FILE
cp $FILE ${FILE}_bak
vi $FILE
echo -e "input a file name in the current directory:\c"
read FILE
echo ${FILE:?"you must input a file name,please try again"}
cp $FILE ${FILE}_bak
vi $FILE
问题
1
所将文件夹“teacher”下的文件“试卷A.doc”复制到文件夹“student”下,如何实现?
GUI下:
同时显示源目录和目标目录窗口
用鼠标拖拽
Shell下:
cp teacher/试卷A.doc student/
输入 一条命令后回车即可
2
如果想复制所有以project开头和以.c结尾的文件怎么办?
GUI下:
分类显示,睁大眼睛选,拖拽
Shell下:
cp teacher/project*.* *.c student/
3
useradd无法找到命令和权限不够是什么情况
无法找到命令是指环境变量没有添加
权限不够是因为用户不是root
4
motd,登录时候的字符
5
book.txt
java:sun
html:w3c
SqlServer:Microsoft
搜索java这本书的记录
gerp java book.txt
删除java这本书的记录
grep -n java book.txt|cut -d ":" -f 1
sed -i 'kd' book.txt
6
一个文件file 用"作分割符,想取出文件中的第一个域,如何实现?
grep file|cut -d """ -f 1
课堂记录
题型
单选15*2=30
5道多选5*3=15
判断10*1=10
应用5*5=25
大题10*2=20
考试
人物…
Ken Thompson
Unix之父
国产OS…
哪些不是国产OS
分区
linux的分区问题,
主分区拓展分区逻辑分区
严格区分大小写
配置文件的man在第几页
useradd用户无权限和pash没有加命令
/etc/motd
/etc/inittab,init 0-6 5
更改运行级别
邮箱目录?/etc/…
/var/spool/mail/用户名/
重定向 合并
wc
文件名出一个小题,文件头文件尾,代替
du 文件大小,磁盘空间大小
软硬链接
vim判断选择,5分题都有
定制vim 行号 写到配置文件里 home生效
隔多久改密码
cut 5分
find
邮件write mesg wall
su登录的不认为是在线用户