week 7
Linux 切换root用户
1 | sudo su |
wc 命令
统计给定文件的行数,字数和字符数
-l 统计行数
-w 统计字数
-c 统计字节数
1 | wc file |
cd 命令
1 | cd - //返回上一次的目录 |
tree命令
tree命令,主要功能是创建文件列表,将所有文件以树的形式列出来
shutdown 命令
1 | shutdown -h now %立即关机 halt |
ls命令
1 | ls -a //显示所有文件,包括以.开头的隐藏文件 |
touch
创建一个文件
cat 命令
1 | cat a.txt |
less 命令
分页显示文件内容,可上下翻页
more 命令
分页显示文件内容,但只能向下翻页
more [参数] [文件]
-p选项: 通过清除窗口而不是滚屏来对文件进行换页
-c 类似
1 | more -3 -p a.txt //每一个屏幕显示三行 |
head
默认看10行
tail
默认看后10行
cp 命令
1 | cp source, dest |
mv 命令
改名 && 剪贴
1 | mv a.txt 222.txt |
rm 命令
1 | rm file |
mkdir 命令
1 | mkdir dir1/dir11/dir111 -p |
week7作业
- 执行命令: ll > file, 然后把file1文件内容加上行号输入到file2文件中
1
2ll > file1
cat -n file1 > file2 - 用more命令显示file1文件内容,每屏显示3行
1
more -3 -c file1
- 将~/file1拷贝到 /tmp目录下, 并改名file_test,提示是否覆盖已存在的目标文件
1
cp -i ~/file1 /tmp/file_test
- 将/tmp目录下的file_test文件移动到主目录并改名file3
1
mv /tmp/file_test /file3
- 将/home/shuxue下所有文件和目录递归拷贝到/tmp/home/shuxue目录下, 然后删除/tmp/home/shuxue
1
2cp -r /home/shuxue /tmp/home/shuxue
rm -r /tmp/home/shuxueweek 8
grep 命令
全面搜索正则表达式,并将其打印出来1
2
3
4
5
6
7
8grep 'string' dir // 在dir目录下查找包含string 的字符串的文件
grep 'a' * //在当前目录中查找包含'a' 的文件
grep -i "A" a // 在a文件中查找包含"A"的行, 不区分大小写
grep root /etc/passwd //在后面的路径中查找关键词root
grep "qwq" file* ./ //在当前文件夹所有file前缀开头的文件中查找"qwq"
grep -c "qwq" file* //输出匹配字符串行的数量
grep -n 'qwq' file* //列出所有的匹配行,并显示行号:
grep -l 'qwq' file* //只列出符合条件的文件名sort 命令
1
2
3
4
5
6
7sort [参数] [文件]
sort a //每一行第一个字母按字典序排序显示出来,不保存
sort -r a //倒序
sort -k 5 tmp //按第五列字典序排序
sort -k 5 -n tmp //第五列按数值大小排序
sort -k 5 -n tmp -r -o file //将结果保存在file中
ls -l | sort -k 5 -n -r //管道操作
find 命令
查找和搜索文件
find [参数] [路径] [查找和搜索范围]
按名字查找
1 | find . -name file |
按文件大小
1 | find +文件或目录 -size + |
chown 命令
chown[选项][所有者][:[组]] 文件列表
必须有root 权限
1 | chown sineagle file//更改文件的属主 |
chmod 命令
文件权限的表示方法
访问权限规定三种不同类型的用户
文件属主,同组用户,其他用户
访问权限的表示方法有三种:
三组九位字母表示法 r可读, w可写, x可执行可查找, ~无权限
三组九位二进制表示法
三位八进制表示法
文件权限的修改方法: chmod命令
1 | echo "ls -al /root | wc -l" > f5 |
练习题
1
2chmod u+r+w+x,g+r-w+x,o+r-w-x f1
1
chmod u+r+w+x,g+r-w+x,o+r-w-x dir1
1
2
3su
chmod g+w,o-r-w-x /tmp/rootdir
chmod o+x /tmp/rootdir1
2
3
4
5
6
7
8
9
10
11
12su
mkdir /var/www
chown shuxue /var/www //1
chmod u+r+x /var/www
chown :shuxue /var/www //2
chmod g+w+r+x /var/www
chmod o+r-w-x //3
chmod 777 /var/www /www.user //4SUID
week9
文件的链接
ln 命令
ln[选项] 源文件 [目标文件]
1 | ln a b |
硬链接
硬链接:是在另外的目录或本目录中添加目标文件的目录项额,
ln命令只会增加链接数,rm命令只会减少链接数,除非链接数为0,否则不会物理从文件系统被删除
- 以文件副本存在,不占用实际空间
- 不允许给目录创建硬链接
- 硬链接只有在同一文件系统才能创建
linux 每个文件对应一个Inode, 创建硬链接后,两个文件Inode是相同的
软链接
软链接
类似Windows系统快捷方式
创建软链接,源文件必须要使用绝对路径
软连接大小 = 源文件 + 路径的总字节数
目录可以创建软连接
1 | ln -s /home/a.txt a.test |
week10
用户和组的配置文件
passwd文件
位置:/etc/passwd
用于保存各个用户的信息
shadow 文件
用户保存用户账号的密码等信息
1 | tail /etc/shadow |
group 文件
保存各个用户的分组信息
用户和组的管理命令
useradd 命令
1 | useradd user1 |
usermod 命令
1 | usermod -l newusername oldusername |
userdel 命令
1 | userdel [-r] 用户名 //-r表示删除用户的同时删除用户所有的相关文件 |
passwd 命令
1 | passwd [参数] user %设置用户账号的口令 |
groupadd命令
1 | groupadd [-r] 组名 //不带参数为建立普通组,带参数为系统组 |
groupdel 命令
groupdel 组名
gpasswd [参数] 用户 组名
1 | gpasswd -a username groupname //将指定用户添加到指定用户组里 |
Linux 软件包管理
rpm包
安装RPM包的基本命令格式
1 | rpm -ivh <rpm包文件名> |
RPM包的卸载
1 | rpm -e <rpm包名> |
RPM包的升级
1 | rpm -Uvh <RPM包文件名> |
RPM包的验证
1 | rpm -V[参数] //验证已安装的rmp包的完整性,如果一致无输出,不一致有输出 |
RPM包的查询
1 | rpm -qa //查询系统安装的所有RPM包 |
RPM包存在依赖问题
yum软件包管理
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系
基本配置文件: /etc/yum.conf
软件仓库配置文件: /etc/yum.repos.d/
yum 常用命令
1 | yum list <软件包名> // |
1 |
tar包
.tar – 普通的非压缩的包
.tar.gz 或 .tgz – 表示压缩的文件包
1 | tar -cvf <tar包名> <文件或目录名> |
1 | du -sh /home/sineagle/ //查看文件的大小 |
src源码文件
安装步骤:
- 释放TAR包: tar -zxvf
- 查看说明文档
- ./configure
- make
- make install
- make clean
1 | tar -zxvf |
1 | mkdir /usr/local/java && tar -zxvf java_sdfsdfsf.tar.gz /usr/locl/java |
zip包
1 | rpm -qa|grep zip |
week12
网络通信管理
进程管理
系统启动后第一个运行的进程是systemd(init), 它的进程号是1(pid), systemd是唯一一个由系统内核直接运行的进程
守护进程的管理
at 作业
指定系统在将来的某个时间执行任务
1 | at sometime |
让系统在第二天早上8:20删除临时文件并给a用户发送一个问候邮件
1 | at 8:20am +1 day |
cron 作业
实现以固定的间隔时间执行作业,并且能统一管理所有作业
1 | crontab [-u user] filename //执行一个已经创建好的cron作业 |
1 | crontab -e //进入vi编辑作业 |
ps 命令
ps命令用于显示当前系统的进程状态
a 显示现行终端机下的所有程序,包括其他用户的程序
-a 显示所有终端机下执行的程序,除了阶段作业领导者之外
aux 没有终端的应用程序
x 显示所有程序,不以终端机来区分
1 | ps -ef |
free 命令
1 | free -h |
sleep 命令
1 | sleep time; command |
kill 命令
kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业
1 | kill pid |
查看当前进程的环境变量
Linux 环境变量的格式 key -value
keyo=value;value;value
1 | env |
top 命令
类似windows 下的任务管理器
进程的前台和后台控制
1 | command |
1 | top |
jobs 命令
可以查看挂起到后台的进程
fg命令
将后台挂起的进程恢复到前台执行
1 | fg 后台进程编号 |
Ctrl + z 快捷键
将一个前台进程执行的命令放到后台,并且处于暂停状态,不可执行
bg命令
将后台挂起的进程恢复到后台来运行
1 | bg 后台进程编号 |
系统的服务管理
INIT进程
系统运行的第一个进程
/etc/inittab
系统服务常用的管理命令
runlevel
查看系统的运行级别
init
转换服务的运行级别
1 | init |
chkconfig
1 | chkconfig --list |
systemctl
取代了chkconfig和service命令,但仍可使用
1 | systemctl list-units #列出当前系统服务的状态 |
week13
磁盘操作管理
fdisk -l
查看所有分区情况
lsblk
用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。
mount 命令
1 | mount [][] device mountpoint |
umount 命令
文件系统使用完毕需要卸载
1 | umount [device] [dir] |
du 命令
统计目录的磁盘使用情况
df 命令
用于查看当前被挂载的文件系统的信息
vi
工作模式
- 命令模式: 打开文件后后默认进入的模式
- 编辑模式: 输入一些命令后,切换到编辑模式
- 末行模式:
命令模式下的操作
命令模式到输入模式的转换
i:在光标之前插入
I:在光标所在行首插入
a:在光标之后插入
A:在光标所在行行尾添加文本
o:光标所在行上一行
O:光标所在行下一行
光标的移动
H(前) J(下) K(上) L(后)
0: 进入行首, $: 进入行尾
gg: 进入文件第一行, G: 进入文件末行, [x]G: 进入第x行
[x]l :向右移动x列
[x]h : 向左移动x列
删除操作
x: 删除光标后面的字符, X: 删除光标前面的字符
dw: 删除光标后面的单词
d0: 将光标位置之前本行内容删除
d$ 或 D :将光标位置之后本行内容删除
dd: 删除本行的所有内容
d3G: 将光标所在行到第三行删除
[x]dd: 删除光标开始后的x行
撤销操作:
u: 撤销
ctrl + r: 反撤销
vim中的复制和粘贴
p: (粘贴)将之前删除或复制的内容拷贝到当前光标下一个位置(如果之前复制的是一行,则拷贝到所在行的下一行)
P: (粘贴)将之前删除或复制的内容拷贝到当前光标所在行(如果之前复制的是一行,则拷贝到当前行的上一行)
yy: 复制一行
[n]yy: 复制n行
行结合命令
J: 把光标所在行与下一行结合成一行
[x]J: 把光标所在行与下面x行结合成一行
可视模式
v: 切换到可视模式
h j k l: 选择内容
y: 复制选中内容
d: 删除
查找
/[字符]: 从当前位置向下顺序查找字符
?[字符]: 从当前位置向上逆序查找字符
n: 切换到下一个
N: 切换到到上一个
#: 将光标移动到单词上,查找所有这样的单词
r: 替换当前字符
缩进
当前行向右缩进: >>
当前行向左缩进: <<
文本位移命令
>
: >4G 限定4行向右移动4列
命令模式切换到文本模式
a 移动到光标下一个位置插入
A 移动到当前行末尾插入
i 在光标位置插入
I 移动到当前行行首插入
o 在当前行下一行创建一行并进入
O 在当前行上一行创建一行并进入
s 删除光标下一个位置的字符并开始插入
S 删除光标所在行的所有元素并插入
末行模式的相关操作
: 切换到末行模式
输入一个数字表示跳转到第几行
末行模式下操作:
查找:
1 | :s//将光标所在行的第一个tom替换成jack jack |
week14
文本移动
缓冲区方式的文本移动
- 编辑缓冲区
- 命名缓冲区
- 删除缓冲区
命名缓冲区
由字母 a-z
命名, 即有26个字母命名的不同缓冲区。
- 从编辑缓冲区到命名缓冲区(复制或剪切)
1
2
3"字母名 + 行号 + 操作命令(Y, dd)
"a3Y
"b5dd - 从命名缓冲区到编辑缓冲区
1
2
3"字母名 + 操作命令
"ap
"bp
删除缓冲区
删除缓冲区可以由数字1-9指定
1 | "25dd %将包括光标所在行下5行删除并放到2的删除缓冲区中 |
按行操作的文本移动
按行复制 (co 命令)
1 | : 1, 3 co . %将1-3行文本复制到光标所在位置 |
文本块移动 (m 命令)
1 | : 1, 3 m 7 %将1-3行文本移动到第七行位置 |
文本间的文本移动
1 | : 2, 5 w %把2-5行文本块写到另一个新的 文件中 |
编辑多个文件
1 | vi 文件1 文件2 |
………….
Linux下配置Hadroop
参考博客
点我
week15
export 命令
功能:设置和显示环境变量
新增修改删除环境变量
编写test.sh
1 | echo "B=$B" |
1 | A=123 |
source 命令
在当前bash 环境下读取并执行file中的命令
该命令通常可以用 . 代替
sudo 命令
sudo可以把root用户执行的敏玲赋予普通用户执行
visudo 以安全模式编辑sudoers文件
ssh
安全的shell字符命令操作,相当于windows上的远程桌面连接
openSSH客户端的安装和使用(课本p254)
基本的ssh连接方式:
1 | ssh username@ip |
username表示远程机器的用户名,ip表示远程机器对应的ip地址
ssh 免密登录
1 | ssh root@10.3.1.74 |
使用scp 传文件
1 | scp local_file remote_username@remote_ip:remote_file |
week 16
磁盘的挂载(U盘)
1 | sudo mount /dev/sdb1 /mnt %挂载 |
压缩包管理
gzip和 bzip2
不常用,几乎被淘汰
1 | gzip *.txt %把当前目录所有包含.txt的文件分别进行压缩,不保留源文件 |
tar
-c 创建 - 压缩
-x 释放 - 解压缩
-v 显示提示信息 –压缩解压缩 – 可以省略
-f 指定压缩文件的名字
-z 使用gzip 的方式压缩文件 –.gz
-j 使用bzip2的方式压缩 –.bz2
如果不适用 -z 或 -j ,只能对文件或目录打包
压缩
1 | tar zcvf 生成压缩包的名字(xxx.tar.gz) 压缩的文件 |
解压缩
1 | tar zxvf 压缩包的名字 % 解压到当前目录 |