目录
一.登录Linux和用户创建
1.登录Linux系统
2.Linux创建多个用户
二.Linux系统的基本指令
1.常用指令
uname -a —— 查看当前计算机的体系结构
ls —— 显示当前路径下的所有文件名称,不包括隐藏文件
① -l (显示当前路径下的所有文件名称和文件的更多属性,不包括隐藏文件)
② -l -a(显示当前路径下的全部文件,包括隐藏文件)
pwd —— 显示当前文件的路径
cd + 文件名 —— 进入该文件
①cd + /root/a/b/test.c (绝对路径)
②cd + ../bin/text.txt (相对路径)
③cd + ~ (直接进入当前用户的家目录)
④cd + - (进入历史上最近的那个目录)
mkdir —— 创建一个新的目录
mkdir -p d1/d2/d3/d4 (一次性创建多个目录)
touch —— 创建一个新的文件
注意:Linux中, 以"."开头的文件是隐藏文件!
"."表示当前目录 ".."表示上级目录
如:cd + .. 表示回退到上级目录
which + 指令名 = 查看该指令的路径
*alias mycmd='ls -a -l' (给ls -a -l起一个别名 mycmd)
whoami —— 查看当前用户是谁
tree + 目录名 —— 将该目录下的所有目录或文件以树状形式展现出来
yum install -y tree (安装tree功能的指令)
yum install -y nano(安装nano功能的指令)
rmdir + 目录名 (只能删除空目录)
rm + 文件名 —— 删除文件
①rm -f + 文件名 (强制删除该文件)
②rm + -rf + 目录名 (删除该目录下的所有子目录或文件)
③rm + -rf + / (删除根目录下的所有子目录或文件,直接开席~~)
man + printf —— 在手册中查询printf()函数的功能
cp test.c test/ —— 将test.c拷贝到test目录中
cp test.c test/my_test.c (将test.c拷贝到test目录中,并重命名为my_test.c)
mv test.c ../ —— 将test.c剪切到上级目录
*grep -n 'main' log.txt (在log.txt文件中找到main关键词,并表明其行数
-i (忽略大小写)
-v (打印出不匹配的那一类)
*grep -Rn 'int main()' /common_whb/ (递归式查找common_whb目录下含有'int main()'的所有文件)
*find ~ -name test.c —— 查找家目录下所有名为test.c的文件
Ctrl + r —— 对历史指令进行搜索,按上下键进行翻转
快速table键 —— 连按两下table键,迅速查找指令
Ctrl + c (关掉当前正在运行的程序)
Ctrl + d (End Of File,表示键盘输入结束,亦可取代exit)
shutdown -h (将服务器立即关机)
shutdown -r (将服务器重启)
shutdown -t + sec (过sec秒后关机)
2.重定向相关指令
echo or printf + "hello world"(字符串) —— 在屏幕上打印该字符串
① 输出重定向(>)
echo + 字符串 + > + 文件名 —— 将该字符串写入该文件中 写入前会将文件原先的内容清空
> + 文件名 —— 若该文件未创建,则创建该文件;若该文件已存在,则清空该文件。
② 追加重定向(>>)
echo + 字符串 + >> + 文件名 = 将该字符串追加到该文件中,即不会清空文件中原有的内容
3.文件数据打印相关操作
nano test.c —— 以记事本的方式打开test.c文件
cat test.c —— 查看test.c文件的内容
①cat -n test.c (带行号打印文件内容)
②cat -b test.c (带行号打印文件内容,空行无行号)
③cat -s test.c(压缩空行,打印文件内容)
④tac test.c (将test.c文件的内容倒着打印)
more test.c —— 打印test.c文件内容,分屏打印,回车可以看下一屏的内容
*less test.c (打印test.c文件的全部内容,可以用上下箭头浏览)
head -x log.txt —— 打印log.txt文件的前x行内容
tail -x log.txt(打印log.txt文件的后x行内容)
*wc -l log.txt —— 统计log.txt文件代码行数
uniq log.txt —— 相邻数据去重
sort log.txt | uniq —— 对log.txt文件先排序,再去重
4.时间戳的相关指令
*date +%Y-%m-%d_%H:%M:%s —— 查看时间(年、月、日_时、分、秒)
date +%s —— 查看目前的时间戳
date +%Y-%m-%d_%H:%M:%S -d @时间戳 (以年历形式显示目前时间)
5.压缩解压相关指令
为啥要对文件进行打包压缩??
① 若文件较多、较大,不打包压缩容易丢失
②打包压缩后,传输速度快
zip test.zip ./* —— 把当前目录下的所有同层文件都压缩到test.zip中
zip -r test.zip ./* —— 把当前目录下的所有文件都压缩到test.zip中
sz -E test.cc —— 将test.cc文件添加到桌面
rz —— 将本地的文件剪切到远端服务器
unzip test.zip —— 将test.zip解压
unzip test.zip -d ../test —— 将test.zip文件解压到上级目录中的test文件中
tar -czf test.tgz ./* —— 将当前目录下的所有文件或目录打包并压缩到test.tgz文件中
tar -xzf test.tgz —— 把test.tgz文件解压
三.Linux系统用户权限相关的指令
1.用户类型
Linux的具体用户:
① root——超级管理员
② common_user —— 普通用户
普通用户 ——> root 的方法:
① su —— 单纯的账号切换
② su - (让root重新登录)
root ——> 普通用户的方法
① su + 普通用户名 = 账号切换成该普通用户
② exit 离开该普通用户
ls /home (以root的身份查看所有的普通用户)
2.文件类型:
-: 普通文件
d: 目录文件
c: 字符设备文件
b: 块设备文件
l: 链接文件
p: 管道文件
3.文件权限
a.文件所具有的属性信息
人:①拥有者、②所属组、③others
即该文件是谁创建的、所属哪个小组、其余人对该文件来说就是others
事物属性:r(读权限) w(写权限) x(可执行权限,以可执行程序的方式加载到内存)
b.权限掩码
umask 0000 —— 将权限掩码改为0000
最终权限=起始权限 去掉 权限掩码中出现的权限
目录起始权限:777
文件起始权限:666
对于一个目录,它的rwx权限分别有什么用?
是否允许一个指定用户进入目录,需要x;
是否允许一个指定用户查看当前目录下的文件列表,需要r;
是否允许一个指定用户在当前目录下创建新的文件,需要w;
一个文件一定是属于某个目录的,该文件的属性能否查看,取决于该目录的权限
c.*更改用户下的文件权限:
chmod u +/-rwx test.txt (给拥有者加上或减去test.txt文件的r、w、x权限)
chmod g +/-rwx test.txt (给所属组加上或减去test.txt文件的r、w、x权限)
chmod o +/-rwx test.txt (给others加上或减去test.txt文件的r、w、x权限)
chmod a +/-rwx test.txt (给所有人加上或减去test.txt文件的r、w、x权限)
chmod u+rw,g+rw,o+r test.txt (给多对象对test.txt文件加上或减去多权限)
rwx 每位上只能是0或1 所以,可以用二进制的形式表示其状态
如:000=0 表示 --- ; 再如:100=4 表示 r-- ; 111=7 表示 rwx。
chmod 000 test.txt 给拥有者、所属组和others都赋予test.txt文件的---属性
chmod 456 test.c 拥有者:4=100 所属组:5=101 others:6=110
d.更改文件的拥有者
在root用户下:
chown whb test.txt (将test.txt文件的拥有者改为whb)
在普通用户下:
sudo chown root test.txt (将test.txt文件的拥有者强制改为root)
e.更改文件的所属组
在root用户下:
chgrp whb test.txt (将test.txt文件的拥有者改为whb)
在普通用户下:
sudo chgrp root test.txt (将test.txt文件的拥有者强制改为root)
f.粘滞位
粘滞位 —— 在一个共享目录(开放rwx权限)中,他人可能会删除不是自己的文件
chmod + t shared (给 shared 目录加上粘滞位)
作用:在该共享目录中,只有文件的创建者能够删除自己的文件,他人不行。
四.网络相关指令
ifconfig —— 用于配置和显示Linux内核中网络接口的参数,比如IP地址、子网掩码、广播地址等
ping —— 命令用于测试主机之间网络连接的可达性
traceroute —— 基于ICMP协议,可以得到从本机到目标主机,一共要经过多少路由器
netstat (net status,网络状态) —— 查看系统中有关网络端口的指令
-a 或 --all:显示所有连接和监听端口。
-n:以数字形式显示地址和端口号,而不是尝试解析主机名、服务名或用户名。这可以加快命令的执行速度,特别是在有大量连接的情况下。
-t:仅显示TCP连接。
-u:仅显示UDP连接。
-l 或 --listening:仅显示监听状态的套接字。
-p:显示哪个进程正在使用每个套接字。在Unix和Linux系统中,通常需要root权限来查看其他用户的进程信息。
-r:显示路由表。
--interval<seconds>:每隔一定时间自动刷新显示的网络统计信息。