01- 复习
/boot 目录 引导项
八种文件类型:
文件:-
目录:d
软链接:l
字符设备文件:c
块设备文件:b
管道:p
套接字:s
未知
cp –a 保持源文件属性(如时间属性 如果不用-a会变成最新的)
02- 打包压缩
gzip bzip2
gzip file
gunzip file.gz
bzip2 file
bunzip2 file.bz2
只能压文件 不能压目录
tar命令 打包
tar czvf xxx
tar xzvf xxx
对于rar:
sudo apt-get install rar
sudo apt-get install unrar
aptitude软件可以通过show查看是否某个软件是否已经安装了
sudo apt-get install aptitude
rar a –r test.rar a.b.c.d
unrar x
zip:
zip –r mydir.zip mydir out
03- 进程和网络
who命令 显示 用户 终端和登录到系统的时间
tty是文字的终端
pts是图形的终端
a = show processes for all users 显示所有用户的进程
u = display the process's user/owner
x = also show processes not attached to a
terminal
ps aux
如果grep出来有一条 说明没有 这个是grep进程
jobs: 显示当前的作业
作业: 多个进程的编组 这个组的名字叫作业
cat 然后ctrl+ z 会显示已停止
进程被挂起了
jobs 可以查看这个进程
这个东西是放到栈上的
挂起两个cat:
+号表示第二个进程被恢复的优先级要比第一个高
fg 恢复 ( fore ground)
与fg对应的是bg
前后台的定义:
前台:能与用户完成交互
后台:不能与用户完成交互
执行命令最后加一个 & 就是放到后台运行
给进程发信号杀死进程
kill –SIGKILL 19561
SIGKILL是宏定义9
所以也可以 kill -9 19561
env:
环境变量
echo $SHELL
SHELL是一个环境变量
$表示把环境变量的值取出
echo表示把值打印到屏幕上
echo $HOME 宿主目录
echo $PATH
当字节从shell输入可执行程序的时候会从PATH所指定的一系列目录 一个一个的去找 找同名的可执行程序
所以其实在windows下配path的时候 应写到加分号 最前面 而不是最后面
top命令 linux下文字版的任务管理器
显示某一条任务在linux系统下的情况
关于网络 在后面会详细的讲
ifconfig 临时设置 重启后就不生效了
临时更改ip地址
ping:
windows 的ping 发4个就停止了
linux 的ping 要加 –c 4 否则会一直发
netstat 查看网络状态
nslookup
finger
查看shell 目录什么的..(不常用)
01- ftp服务器实名用户上传下载
ftp:
ftp服务器
sudo apt-get install vsftpd
sudo aptitude show vsftpd
配置文件
sudo vi/etc/vsftpd.conf
配置文件语法要求很严格
把该打开的都打开
sudo service vsftpd start
然后使用ftp命令
或者127.0.0.1( 网卡的默认本地回环ip 127.0.0.1)
或者127.1
登上去以后pwd
显示服务器当前在~目录下
然后get xxx.file
从/etc登录的 所以会get到/etc下 (如果没有权限限制
put 上传
01- lftp和匿名ftp用户
tar czvf xxx.tar.gz a.out gcc.b asd.c
.tar.gz不加也行 但是加上方便自己
tar xzvf xxx.tart.gz
用ftp链接的前提是要知道服务器的用户名和密码
操作系统有一个默认的ftp位置
ftp 127.1
用户名 anonymouse 密码任意
pwd在’/’
然后ls
发现自己是在/srv/ftp下面
然后进行put命令 但是失败了,
重新开了一个终端查看/srv/ftp目录权限
发现所有者是root 所属组是ftp
第二个权限是r-x 没有写权限
所以不能进行put操作
不过之前改过/srcv/ftp/incoming目录的权限了
所以其实可以在incoming目录进行写操作
在incoming目录下进行操作:
总结一下匿名用户ftp:
anonymous
一般情况只能上传下载文件
如果想上传下载目录需要使用lftp
好处是mirror 可以上传下载目录
而且lftp显示中文不会乱码
默认lftp是匿名用户登录
如果想实名用户需要login
01- 改变ftp本地目录位置
查看本地的用!ls
lcd改变本地机的工作目录位置
07- nfs_ssh_scp
scp : super copy
(实际scp不算是一种服务器 确切的说就是一个命令)
super copy
加-r 就能拷贝木露露了
示例:
scp –r itcast@192.168.36.64:/home/itcast/dir ./zhangsan/
超级拷贝
nfs:
流程就是这样了
对比语法:
01- 其他命令
man man
一共9章
要求务必掌握前三卷
man printf // 显示的不对
man 3 printf // 找的是函数
ll:
输入alias查看别名
ls的颜色
关于-F:
增加别名:(只在当前终端临时生效,写到配置文件才能永久生效)
echo $PATH
echo $? 查看程序上次退出的值 (比如一段程序return 0 或者return 87)
cd ~
mkdir test
cd test
mkdir dir
touch file
ls –l
发现目录比文件多执行权限
原因是如果目录没有执行权限 就不能进入了
改成跟文件一样的权限…
进不去了
实际上操作系统里有一个叫umask的东西控制着创建出的文件的权限
umask叫文件操作掩码
第一个0表示八进制 后面三位对应着 文件所有者 同组用户 其他人
对于一个文件权限满了是 777
umask是002
所以实际创建的权限是775
设置umask 0511 这时候创建出来的文件就会是266
即:-w- rw- rw-
(查看文件夹权限)
(查看文件权限)
设置umask 0522 这时候权限应该是255
即
发现目录的权限是对的
但是file2文件的执行权限又去掉了
这是ubuntu的优化 操作系统不认为新touch的文件具有执行权限
文件如果想执行 需要是可执行程序
gcc….脚本编程.sh… 默认都没有执行权限
所以得chmod a+x .sh 给它后期赋予执行权限
chmod复习:
umask –S
直接查看创建的文件的权限
umask 改完直接把终端关上 再打开就失效了。
ctrl+alt+t 打开多哥终端
ctrl+shif+t 在一个终端里开多个窗口
alt+1 alt+2 alt+3
ctrl+d 关掉终端
poweroff可以通过ssh给关机…
shutdown 参数更多一些
uname –a 查看内核的版本
01- vim基本操作
i在本字符的左边
a 在本字符的右边
o 下一行行首
I 本行行首
A 本行行末
O 上一行行首
s 删除一个字符
S 删除一行
挪动光标
hjkl
G 移动到最后一行
gg 移动到第一行
gg = G 格式化代码 (自己试ubuntu16.04下不行 要先apt-get install vim..可能是indent格式化包不完整)
80G 到第80行
20G 到第20行
两个括号(大括号、中括号、小括号)对应位置之间移动 %
dd 删除一行
4dd 删除四行
u 撤销
光标往后的内容删掉 D (或者d$
d0 向前删除
0 移动到行首
$ 移动到行尾
选中某段字符删除:
按v进入可视模式
然后hjkl来移动光标选中你想删除的内容
然后d
其实d就是剪切 没有单纯的删除 剪切到缓存池里
粘贴是p
p 往光标所在的后面粘
复制 yy
复制三行 3yy
P 往光标所在字符前粘贴
u 撤销
ctrl+ r 重做
查找:
在命令模式下按/ (注意这不是末行命令 只有你按了: 才是末行命令)
然后 n 查找下个
比如int tmp变量了
想查找一下tmp在哪里被用到了
把光标移到tmp上 然后按*号
替换:
将一行进行替换
光标移动到要替换的单词上
然后进入末行模式
:s /printf/println
通篇全部进行替换:
:%s /printf/println/g
:%s /printf/printfln 替换每行的第一个要替换的字符串
将24到28行的println替换成printf
:24,28s /println/printf/g