1.1用户配置
linux下两种用户
超级用户(root):可以在Linux下做任何事情,不受限制
普通用户:在Linux下做有限的事情
超级用户的命令提示符是“#”
普通用户的命令提示符是"$"
命令:su [用户名]
可以切换输入的用户
切换到root时,直接输入su即可
通常安装虚拟机比如ubuntu时,没有给root配置密码,需要先给root配密码,才能切换到root
使用命令sudo passwd root 再回车 第一次输入的是自己的密码 第二次才是输入的root密码
(sudo命令提升了普通用户的权限)(使用阿里云、腾讯云等非本地的,需要设置复杂的密码)
所有命令的基本使用规则:
命令名 命令参数 操作对象
大部分命令执行成功是没有提示的,执行失败会有提示,会提示失败原因
su 切换用户是压栈效果
exit退出就是弹栈
切换到其他用户后,history是在其他用户的
2、添加用户
命令:useradd 用户名
添加一个普通用户
(普通用户下执行sudo useradd 用户名)
(这个命令创建的用户名通常是不合理的。此时配置的用户不能远程登陆,还需要配置密码,而且没有工作目录)
命令:cat /etc/passwd
查看系统目前有哪些用户
但是,如果要添加一个普通用户user1
ubuntu下配置用户需要执行命令:
命令:useradd -m user1 -s /bin/bash
系统会在/home下建立一个名为user1的用户
(-s的作用是指定使用的脚本解析器)
常用快捷键:
ctrl a 光标回到最前面
ctrl e 光标回到最后面
3、设置密码
命令:passwd 用户名
设置或修改用户名的密码
4、删除用户
命令:userdel 用户名
删除一个普通用户
(但是删除用户后,其家目录不会被删除,如果要删除家目录,需要userdel -r 用户名)
(第一次删除没有加-r参数,第二次再使用-r用户名,是无法删除家目录的)
注:
/home家目录
/home/user1 user1的工作目录(家目录)
1.2目录及文件操作
1、查看文件或目录
命令:ls [选项] [目录或文件]
列出该目录下所有子目录和文件
ls .. 查看上一级目录(相对路径,不是以/开头的)
ls /home 查看/home路径下的文件信息(绝对路径,以/开头)
常见命令:
ls -a 显示指定目录下所有子目录与文件(包括隐藏文件)
ls -l 列出详细信息
每行列出的详细信息依次是:
文件类型与权限 连接数 文件所有者 文件所属组 文件大小 最近修改时间 文件名字
ls -l . 表示当前目录
ls -l .. 表示上一级目录
ls -l * 遇到文件夹,会把当前文件夹下的文件都列出来
例如-rw-rww-r-- 1 luke luke 0 Feb 16 15:23
-开头的是普通文件
d开头的是文件夹
后面9个字符表示文件的访问权限,分为3组,每组3位
第一组是文件创建者的权限,第二组是同组用户的权限,第三组表示其他用户的权限
每一组三个字符分别表示对文件的读、写、执行权限
r的值为4,w的值为2,x的值为1
命令:man [命令]
查看命令的详细描述
2、改变工作目录
命令:cd 目录名
改变工作目录,将当前工作目录改变到指定目录下
常用的切换目录命令:
cd . 到当前目录
cd ./xxx 到某个文件
cd ..到上一级目录
cd / 到根目录
cd ~到用户家目录下,与直接执行cd效果一样
cd - 到上一次目录
3、显示当前工作目录
命令:pwd
功能:显示用户当前所在目录
4、创建目录
命令:mkdir 目录名
当前目录下创建一个目录
5、删除目录
命令:rmdir 目录名
只能删除空目录
6、拷贝文件或目录
命令:cp [选项] 源文件或目录 目标文件或目录
把指定的源文件复制到目标文件或把多个源文件复制到目标目录中
cp -f 存在同名文件直接覆盖
cp -i 存在同名文件提示是否进行覆盖
cp -r 如果拷贝的是目录,将同时拷贝该目录下的子目录和文件
例如,将/home/user/0718 目录下的所有文件及目录拷贝到/home/user1 目录下,则使用
cp -r /home/user/0718 /home/user1
7、移动文件或目录
命令:mv [选项] 源文件或目录 目标文件或目录
mv -i 存在重名,提示是否覆盖
mv -f 存在重名,直接覆盖
8、删除文件或目录
命令:rm [选项] 文件或目录
删除一个目录中的一个或多个文件或目录
rm -f 删除过程中不给提示
rm -i 删除过程中给提示
rm -r将该目录及该目录下的目录及子目录全删除
(命令:rm 目录名 是无法删除的,只能删除文件,如果只需要删除文件,不需要加-r,防止目录文件删除)
(一个文件能否被删除,依赖该目录的权限)
9、显示目录树形结构
命令:tree
以树状图列出目录内容
在ubuntu需要执行sudo apt install tree进行安装,才能执行
10、改变目录或文件的权限
命令:chmod
改变文件或目录的访问权限,用户用它控制文件或目录的访问权限
(能不能改变一个文件的权限,依赖于是不是文件的拥有者)
数字设定法:chmod xxx 文件名
(一个文件能否被删除,依赖该目录的权限)
(文件的权限表示能否向文件中操作内容)
11、文件查找
命令:find 起始目录 查找条件 操作对象
在指定目录结构中搜索,并执行指定的操作
find . -name file 从当前目录及子目录查找
该命令的查找条件可以是一个逻辑运算符not、and、or组成的复合条件
and:-a表示
命令:find /home/user -name 0718 -a -type d
查找目录类型的文件
命令:find /home/user -name 0718 -a -type f
查找普通文件
or:-o表示
find /home/user -name main.cc -o -name main.c
not:!表示
可以加通配符
*零个或任意多个字符
?单个字符
[]某个范围
命令:find . -empty
查找空文件或空目录
命令:find . -perm 777
查找某个权限的文件
命令:find . -size +1
查找指定文件大小的文件
一个单位为块,代表512字节
(+大于,-小于)
命令:find . -type x
查找类型为x的文件
d 目录文件
f 普通文件
命令:find . -mmin n
查找n分钟前文件内容被修改过的所有文件
命令:find . -mtime n
查找n天以前文件内容被修改过的所有文件
命令:find /home/user -name main.c|xargs ls -l
查找目录下名为main.c文件并显示这些文件的详细信息
命令:find /home/user -type f |xargs -i cp {} ~/day1/result
找出当前目录下的普通文件并复制到~/day1/result目录下
| 管道:把前面命令的输出作为后面命令的输入
|xargs 有多个命令时需要加xargs
12、列出文件系统的整体磁盘空间使用情况
命令:df [选项] [文件名]
命令:df -h
以GB、MB、KB等格式显示,可以直接显示整个磁盘使用情况
命令:du -h --max-depth=0 /home/luke
只想显示当前目录的情况
1.3文件查看及处理命令
1、查看文件内容
命令:cat [选项] [文件]
查看目标文件内容
命令:cat file -b
对非空输出行编号
命令:cat file -n
对输出的所有行编号
2、显示文件内容的前几行
命令:head -n 行数值 文件名
显示目标文件的前几行
命令:head -n 10 main.cc
显示当前目录下main.cc的前10行
重定向符号:
>重定向输出、>>添加输出、
文件描述符是一个整数,代表一个打开的文件,标准的三个描述符号:
标准输入:一般指键盘,描述符为0
标准输出:一般指屏幕输出,描述符为1
错误输出:也是屏幕,描述符为2
创建空文件的四种方式:
1、echo > a.txt 会有一个字节(echo -n >a.txt 为空文件)
2、touch b.txt
3、cat > c.txt (ctrl c退出)
4、vi d.txt (:wq退出)
3、显示文件的后几行
命令:tail -n 行数值 文件名
显示目标文件的最后几行
命令 histroy |tail -10 >day2_history.txt
把history尾部十行文件输出
4、单页浏览文件
more 或者 less命令(按q退出)
5、对文件内容进行排序
sort 文件名
没有改变原来文件的改变
6、查看文件内容类型
file 文件名
根据文件内容,判别文件类型
7、报告或删除文件中重复的行
uniq 文件名
只能去重相邻的
-c 在输出行前面加上每行在输入文件
8、统计指定文件中的字节数、字数、行数
wc 文件名
命令:wc -l
统计行数
命令:ls|wc -l
显示当前目录下的文件个数
9、汉字编码转换
iconv
gbk两个字节 utf8 三个字节
10、搜索文件内容
命令:grep [选项] [查找模式] [文件名1,文件名2,...]
grep过滤器查找指定字符模式的文件,并显示含有此模式(正则表达式)的所有行
命令:ls -l | grep ^d
显示当前目录下的所有子目录的详细信息
命令: ls -l | grep txt$
显示当前目录下以txt结尾的文件
命令:grep world file*
查找当前目录下普通文件所含的字符
1.4命令替换
1、管道与命令替换
|
2、文件或目录的创建掩码
umask指文件或目录在全部权限中要去掉的一些权限,普通文件缺省时umask的值为002,超级用户为022
3、文档管理
命令:tar [主选项+辅选项] 目标文档 源文件或目录
tar可以为文件和目录创建档案
命令:tar cvf source.tar *
打包所有文件
命令:tar cvzf source.tar.gz *
压缩所有文件
命令:tar xvf source.tar
将归档的文件释放掉
4、scp 远程copy文件命令
scp filename username@ip:path
filename:要发送的文件名称
username:copy到的目标主机的用户名
ip:目标主机ip
path:目标主机路径
如果scp的是文件夹,需要加-r
scp file3 king@192.168.4.52:~/
从本机copy到其他机器
scp king@192.168.4.52:~/file3 .
从其他机器copy到本机
如果scp的是文件夹,需要加-r
scp -r dir1 king@192.168.4.52:~/
5、ssh协议(安全文件传送协议)
6、用来查看和配置网络设备
ifconfig
当网络环境发生改变时可以通过此命令对网络进行相应配置,只有root权限才可以配置网络
sudo /etc/init.d/networking restart 重启网络
7、查看与设置路由
route -n
当网络不通时,通过执行route查看路由,查看网关配置是否正确
8、ubuntu设置固定ip
无图形化界面配置固定ip
sudo vim /etc/network/interfaces
将下面内容写到interfaces
auto lo
iface lo inet loopback
9、无密钥登录
原理:
加密算法
1、哈希,散列--密码存储验证
盐值salt
2、对称加密算法-传输加密
加密解密用的同一个密钥
3、非对称加密算法-传输加密
加密解密用的不同密钥,一把公钥,一把私钥
公钥加密的东西只能由私钥解密,私钥加密的东西只能由公钥解密
实现步骤:
第一步:生成公钥和私钥
ssh-keygen 一直回车,生成公钥和私钥
第二步:秘钥复制到服务器的authorized_keys
ssh-copy-id luke@xx.xx.xx.xx
10、将文件中的内容替换
命令:sed -i "s/world/hello/g" file*
把file中的world字符替换为hello