Linux 学习总结~

Linux 学习总结


Linux学习总结是本人在工作中(本人是做WEB前端开发)曾做过一段时间的运维工作,感觉挺有意思的,而且本人也挺喜欢在终端操作命令的模式来工作,这种感觉非常棒!

本文是作为个人对Linux命令的一些了解和总结,以便日后学习和查用。


@author fuyilong
@time 2017.10.6
@home 

emacs 也是一种编辑器

ctrl + c 强制结束当前进程(或者退出当前session),但是如果ctrl C 不起作用可以用ctrl \ 
su – ora11g
su – switch user 切换用户而不用退出当前终端session,高效快捷。 
 (切换用户以ora11g的用户身份来操作,加-是同时将shell 环境也切换为ora11g的shell环境)

passwd ora11g 修改用户为ora11g的密码


ps命令

ps –ef | grep passwd (process status) grep 是查找包含passwd 的行
ps aux 
ps –ef 是BSD风格的写法
ps aux 是UNIX风格的写法
ps  -e 显示所有进程
-f full全格式
-h header 只显示头部不显示标题
-l long 以长格式显示
-w width 宽输出
-a all 显示终端上所有进程,包括其他用户进程
-r running 只显示正在运行的进程
-u user 以用户为主的形式显示进程状况
一般ps aux | grep xxx 这种方式来使用ps 和grep 组合使用来查找
kill -9 进程ID (-9 表示强制杀死进程)
cat 查看某个文本文件的内容
cat –n test.txt 会给查看的文本添加行号 == nl test.txt


先用oracle用户登录到Linux终端界面
1. sqlplus /nolog
2. SQL>conn /as sysdba;
3. SQL>alter user wtadmin indentified by 123(注:修改用户wtadmin的密码为123)
4. SQL>alter user wtadmin account unlock;  (解锁用户wtadmin)
5. SQL>alter user wtadmin account lock; (锁住用户wtadmin)


SQL> select username from dba_usernames;
SQL>alter user uername identified by yourpasswd;
SQL>select * from v$tablespace 查看当前表空间
SQL>select * from sys.dba_tablespaces;
SQL>select count(*) from sys.v_$session;
SQL>shutdown immediate;重启数据库
SQL>show parameter user;


在Linux命令行中有时候出现> 这种符号是等待用户输入
在SQL命令行中按 Ctrl + Backspace来删除输入错误的字符


查看数据库的日志状态:有归档日志模式和非归档日志模式

archive log list 
alter system set log_archive_start=true scope=spfile 开启系统日志归档模式
alter database archive log 更改为归档模式


2018年1月22日20:49:56

1. 检查一些无用的log
RMAN>crosscheck archivelog all;
2. 删除一些过期的日志
RMAN>delete expired archivelog all;
设置为归档模式
alter database open; //打开数据库
alter database noarchivelog; //设置为非归档模式
startup mount; //开启挂载
show parameter log_archive_dest; //显示归档日志所在目录
select * from V$flash_recovery_area_usage;//查询闪回存储空间大小

echo $ORACLE_BASE;//显示oracle安装目录

du 命令

du==disk use
du – sh *
du –sh ./
du –sh filename
du –sh test* 以test开头
du –sh * | sort –hrk 1 查看大小并排序
h humaned 以人类可读的方式显示 
r reverse 逆序
k 表示按第X个字段排序
df –hH


ll –d /common –d directory 只显示/common下的目录

chmod –R 755 /common/


cron / crontab 任务自动调度

cron 
crontab (定时任务计划)执行系统中自动调用的进程或脚本,这个命令的底层其实维护的是一张进程调度表tables,有时间,有路径,有用户,有自动执行的脚本
crond 进程其实在系统中维护者一张table 表


cron d –d 表示daemon 守护进程,运行在后台
几分 几点 哪一天 哪一月 星期几 (时间从小到大倒序安排—分小日月星


command 六个参数来控制脚本的运行)
crontab –l(-l list) 查看系统中的任务调度
crontab –e(-e edit)编辑或者增加修改任务调度计划
crontab –r (-r remove)从crontab目录中删除crontab文件
crontab –i (-i interactive 交互) 删除用户的任务调度室给出提示


root 用户查看自己的任务调度:crontab -u root -l (-u选项来指定用户)
root 用户想删除tom用户的任务调度:crontab -u tom -r (-u选项来指定用户)


raman的使用也是在数据库中使用

1. 登录Oracle用户终端界面
2. rman target /    (rman target sys/pass)
3. delete noprompt archivelog all;删除没有提示的归档日志
4. conn user/pass 
5. shutdown immediate;//关闭数据库
6. startup; //启动数据库
7. lsnrctl start; //启动数据库监听

dmesg | grep –I eth – (device message 设备信息) 查看网卡信息
mkdir {dir1,dir2,dir3}
rm –irf {dir1,dir2,dir3} 递归删除含有子目录的目录
三个参数的意思:-r, -i, -f分别是:
rm == remove
-i interactive 交互的意思,每次删除前会给出提示
-r recursion 递归
-f force 强制删除,不会给出提示


-a ==and 与 相当于&& 两个条件必须同时满足
-o ==or 或 满足其中一个条件

Linux中的test 语句

test –e filename == exist 文件存在
-f file 必须是一个文件
-d directory 必须是一个目录
-c special 必须是一个特殊文件(比如:/dev/null , /dev/zero)
-b block 块文件
-p pipe 必须是一个管道文件
-r read 文件具有读的权限
-w write 文件具有可写的权限
-x eXecute 文件具有可执行的权限


退出状态码:

在Linux系统中命令执行完后有一个状态码(status code)
exit N
exit 0 说明命令或者进程或者脚本正确执行完成并退出
exit 1 说明命令或者进程或者脚本没有正确执行完
lsof (list opened files 查看哪些文件被哪些进程占用着)
fuser (file user (文件使用者其实就是被本文件占用的进程) 

dd (device duplicate) 备份和拷贝文件

if == 指定输入文件路径
of== 指定输出文件路径
dd if=/dev/sda of=/dev/sdb
dd if=/dev/dvd of=/dev.iso
dd if=/dev/zero of=/dev/sda2

/dev/null 一般会将命令执行的错入输出重定向到这个文件中(说是Linux中的黑洞文件)

/dev/null


find命令

find 命令可以按照文件的属性来查找:比如文件类型-type,文件权限-perm,文件访问的时间-atime,修改的时间-mtime,文件的大小-size,

find /tem –type f –filename “*.log” –exec rm –rf –atime +3 {} \;
find 命令总是离不了-exec 这个选项,-exec 参数后面是command 要执行的命令,它是以;作为结束标志的,所以这个命令后面的分号不可少,考虑到各个系统中分号的意义不同,所以前面加上反斜杠来进行转义,{} 代表前面find 查找出来的内容。
-exec rm –rf {} \;
find path –atime +3 –exec rm –f {} \;
find . –type f –mtime +14 –exec rm {} \;
find . –type f –exec ls –l {} \;
find /etc –name “passwd” –exec grep “root” {} \;
find . –name “*.log” –exec mv {} .. \;
find . –name “*.log” –exec cp {} test3 \;
find . –name “*.log” –type f –atime +3 –exec rm –rf {} \;
find . –type f –atime +3 –exec rm –rf {} \; 删除3天前访问的文件


总结:find命令有2部分组成:主要命令find 负责查找
副命令负责对查到的结果执行相应的操作
固定部分:{} \; 
{}==表示找到的结果集或文件名


find pathname –options [-print]
find –name,
-perm
-prune
-depth
-user
-nouser
-group
-nogroup
-mtime
-atime{-n 表示在n天以内,+n表示n天以前}
-type{-b block,-d directory,-p pipe,-f file,-l link}
&& 逻辑与
||  逻辑或
!   逻辑非


command1 && command2 
command1 || command2 
!expression
权限==permission
权限分为普通权限和特殊权限
user 用户 
group 群组
other 其他
简称UGO
普通权限:read,write,execute 分别代表的权位是:4,2,1
r==4
w==2
x==1
特殊权限:setUID,setGID 
setUID和setGID 的作用就是给普通用户授予root权限
chmod u+s /bin/touch
chmod 4755 /bin/touch
去掉setUID
chmod u-s /bin/touch
chmod 755 /bin/touch
查找哪些命令有setUID权限呢?
Find / -perm -4000 –o –perm -2000
useradd ---user add 添加用户
userdel --- user delete 删除用户
groupadd --- group add 添加群组
groupdel --- group delete 删除群组
find /home/test –user test 在/home/test下查找用户为test的用户
groupadd nginx
touch nginx.conf
chown :nginx nginx.conf 将创建的文件的属主放到nginx组中



Linux 内置的变量:

path命令或者env命令(environment)可查看Linux系统的环境变量
$date,$PATH,$HOME,$SHELL,
chmod +x test.sh 赋予test.sh这个文件可执行权限(change modify)
$# 传递给脚本的位置参数
$1
$? 命令执行完后的状态码 0位正常结束,非0则异常结束
$0 shell脚本的命令
$*
$@
编译命令:make 
tr transport 转换命令,将大写转换为小写
tr A-Z a-z
<>是bash中的菱形操作符,用于打开一个可读可写的文件
2> /dev/null 将标准错误重定向到这个文件,而不是输出到终端
tac 
cat
倒序显示文件或链接文件
if fi
case esac 
paste 用于合并两个文件
cat file1 | paste –d


信号:signal,sigup

信号用于两个进程间的通信,
阻止shell向某个进程发送信号
disown 命令会将进程从作业中移除
trap 用于捕获进程
hup == hang up 打电话的时候挂断电话
nohup == no hang up 即不挂断


& 会将进程放到后台去执行,而不占用当前终端(一般如果命令执行过程太长的时候可以这样来做)
nohup和&一般一起来使用
nohup command &
nohup command > filename 2>&1 & 将command命令的标准输出和标准错误
setsid == set session id 重新创建一个新的session
setsid – run a programme in a new session which means to create a new session
 
setsid 将fork 一个subshell(子进程),而不改变父shell
有两种途径可以让长时间占用终端的进程放置后台稳定正常的执行,从而让出当前终端回话耳执行其他操作
(1) 让进程忽略hup 信号(或收不到hup信号)
(2) 让进程在新的session里,从而不属于此终端子进程


nohup ping www.baidu.com &
nohup 会缺省的将标准输出和标准错误重定向到nohup.out文件,如果想自定义改变则>filename 2>&1
subshell小技巧:将多个命令放在()中,就能让这些命令在子shell中去执行,将&也放入()中就在作业(jobs)列表中可以看到


bg background
fg foreground
kill 杀死进程
jobs命令查询作业号
disown vt.否认,脱离关系
disown –h jobspec 使作业忽略hup信号
disown –ah –a==all使所有作业忽略hup信号
disown –rh –r==running使正在运行的作业忽略hup信号
disown –h %1
bg %1 放到后台
fg 放到前台
screen 处理批量或是多个进程
移除捕获:
trap – signal


vi(vim vi improved )

ctrl + u (-u undo)撤销操作
ctrl + R (-R Redo 注意是大写的R 所以是ctrl + shift + r) 回到之前的操作
gg 快速定位到文件行首
G 快速定位到文件末尾 (注意G 是大写的,所以是shift + g )
yy 快速复制当前行
yw yank word
5yy 复制5行
5dd 删除5行
p (paste)粘贴
d$ 删除当前光标到行结尾
d0 删除当前光标到行首
d^ 删除当前光标到行首
y$ (复制从光标所在位置到结尾)
y^ (复制从光标所在位置到行首)
? 从文件末尾查找
/ 从文件开头查找
:s/old/new 只替换查找到的第一个匹配项
:s/old/new/g 替换所有查找到的匹配项
:30 快速定位到第30行
:$ 快速跳到行尾
:^ 快速跳到行首
:set  nu (set number 设置行号)
:set  nonu (set no number取消行号)
:set  paste(设置粘贴模式即:粘贴的文本会按照原来的格式比如html标签,xml标签格式的原有的对齐缩进格式来粘贴)
:set  nopaste (取消粘贴模式)
设置完粘贴模式后:
调整缩进:
v 模式下
shift + > 向右缩进
shift + < 向左缩进
= 对齐方式
:set ignorance 忽略大小写即不区分大小写
:set noignorance 有大小写区分
:syntax on 语法高亮显示打开
:set autoindent 设置自动缩进
:set shiftwidth=4 设置tab缩进为4个字符
dd 快速删除一行 == shift + d (即大写D)
dw (delete word)删除一个单词 而X和x则只会删除当前光标所在的字符 
3dd 删除3行(包括光标所在行)
H J K L (左下右上)
Ctrl w 在多个文本之间快速切换
Ctrl G 列出光标所在行号 注意是大写的G,所以因该是Ctrl + shift + g


Vim中常用的上下翻页

Ctrl F 上滚动整个屏幕 –f forward
B 向下滚动整个屏幕 -b backward
D 向下滚动半个屏幕 -d down
U 向上滚动半个屏幕 -u up  
E 向上滚动一行        
Y 向下滚动一行 
                 
0 (数字零)移动到文本的开头
w 光标跳到下个word开头
e 光标回到上个word开头
b 光标回下个word 开头 –b backup
n 找一个匹配项 n==next
N 往回查找 N==next ( 注意大写的N,所以是shift + n )
p   previsous 上一处匹配项
$ 快速移动到该行末尾
^ 快速移动到该行开头
# 移动到该行的第#个位置
#G 快速定位到最后一行(#代表最后一行)
f,b 快速移动到该行第一个出现b字符的地方(forward 跳到,指向,朝向)
A,I,O 在光标所以下一个字符或是上一行插入 i==insert
a,I,o 正常插入
:w,:wq,:ZZ,:q,:!q,(w==writable,wq==writable and quit,q==quit)
vi filename 打开一个文件
:w filename 保存一个文件
dG 删除光标之后所有的字符(dG==delete Global 注意G是大写的,所以是shift + g)
:!+命令 即在不退出vi编辑模式的情况来调用命令来或是查看某个目录或是某个命令的执行结果,或者查看系统的某个属性,目的就是快速高效的工作。
比如:
:! ifconfig 在vim中调用命令来查看网卡信息而不退出vim编辑器


ADD 2018年3月15日20:27:43 @home
Visual 模式
1. Ctrl+ v  2.上下键选中要加注释的行3.大写I(shift + i), 3.插入# .4 ESC(退出) 即可完成多行注释
2. Ctrl+ v  2.上下方向键选中刚才添加#注释的地方 3.d(delete) 删除注释


替换模式(shift + r)注意就是大写R
在命令模式下按r 则替换当前光标所在的字符
而按shift + r (即大写R)则会替换光标后所有字符(除非按Esc键退出替换模式)


vim高级操作:

vi +/then test.sh 打开test.sh文件并将光标定位到第一个找到的string(then)上
vi +n filename 打开文件并将光标置于第n行
vi +r filename 在上次使用vi编辑文件时发生系统崩溃回复filename
vi + filename1 filename2 ...filenameN同时打开编辑多个文件
vi -c command filename 在打开文件前先执行指定的命令 –c command
vi –M filename 以只读的方式打开文件,不可以强制保存-m not modify 不可修改


在冒号命令模式下:

:r test.txt 把test.txt的文本内容插入到当前行
:r ! ls –la 把ls –la的命令执行结果插入到当前行
:nr filename 把文件filename 插入到第n行
--------------------------------------------------------------------------
): 光标移至句尾
(: 光标移至句首
}: 光标移至段落开头
{: 光标移至段落结尾
---------------------------------------------------------------------------
n+ 光标下移n行
nG 光标移至第n行首
n$ 光标移至第n行尾
r 替换当前字符
R 替换当前字符及其后的字符,直至按ESC键(注意是大写的R,所以是shift + r)
:1,10w >> filename 把1~10行的数据追加到fileanme文件末尾
Vim中大写I 进入行首同时进行插入模式(注意是大写的I ,所以是shift + i)
:r !+command 导入命令的执行结果,一般r 和 ! 结合使用


Vim进阶:

0y$ 从开头复制文本到行尾
ye
y2/foo
可视化操作:v 在v模式下:
gU 变大写 global Upper case 
gu 变小写 global uppercase


fa 在文档中跳到下一个a的字符处 (fa==forward a 朝向,指向)
fs 在文档中跳到下一个s的字符处 (fs==forward s)
t,到逗号的前一个字符 (t=towards ,朝,向)
cw 替换(删除)光标所在处的一个单词
解释下在命令模式下%s 和 s的区别:
%s 表示替换所有行,而s 表示只替换第一处匹配的项
:%s/^/xxx/g
:%s/$/xxx/g
%s 表示全局替换, ^ 行首, $ 行尾, s==substitute(替换)  g==global
substitute A for B 用A替换B  (substitution .n substitute .v) 
:%s/new/old/gi (–gi== global ignorance) 全局忽略大小写替换
总结:
可以按ctrl tab在多个打开的远程连接窗口之前来回自由切换
在命令模式(normal)下按#可以在全文高亮或是搜寻当前光标文本
 


以下操作都是在命令行中:

Ctrl e 快速将光标移动到命令行结尾 (e==end)
Ctrl a 快速将光标移动到命令行开头(a==ahead)
Ctrl w 剪贴命令行中光标所在处之前的所有字符
Ctrl k 剪贴命令行中光标所在处之后的所有字符
Ctrl u 向左删除
Ctrl y 粘贴 (y==yank)
Ctrl c 强制退出
Ctrl l 清屏
Ctrl z 将当前进程挂起(suspend)
ls 命令
grep命令
grep 命令是查找,结果是显示目标匹配项的那一行,以行为单位,一般是结合其他命令来进行二次过滤和查询
grep –v (v==Verbose) 取反,查找目标内容以外(除了目标内容)的匹配项(不包括目标内容)
grep –n filename  (–n显示行号)


cut 命令

cut 是截取某一行中的某一列,2个参数
-d -d == delimiter 指定分割符或者定界符
-f field 指定提取哪些列即哪些字段
Eg:cat /etc/passwd | grep /sbin/bash | grep –v root | cut –d “:” –f 1,3
查找除了roo以外的,以冒号作为分隔符,分别提取第一列和第三列
通常 cut 和grep 命令组合使用
chmod 命令
xargs 
sort 命令
ps
paste 
tee
uniq
rm
rm -rfi
exec
history
top
free
free -m
tail (默认显示文本的后十行)
tail -1 显示最后一行文本
head (默认显示文本的前十行)
cat
nl
mount
unmount (-l==lazy)就是在卸载的时候如果报设备无法卸载则可以不用停止在卸载
passwd
locate
pwd --- print work dircetory 打印当前工作目录
who
whoami
w
last
whereis
whatis
which
id
user
echo
cp
mkdir 创建目录   
rmdir  删除目录
rm 删除
less 可以分页展示和向下和向上翻页
less -M 加参数-M会显示文本的%比以及文本的名称显示比例
more 只可以向下分页展示
su == switch user
sudo == switch user do 切换用户
wc –l lines
-c characters
-w words
export 将用户变量转变为系统变量
set 设置环境变量
env environment 显示环境变量
ehco $PATH
ehco $SHELL
echo $USER
echo passwd | passwd –stdin username 非交互式的修改密码(适用于脚本)
passwd username 为交互式的修改密码(适用于在终端修改)


mkpasswd命令

-l  (-l == length) 密码的长度默认是9
-d 数字个数默认是2
-c (-c ==characters) 小写字符个数默认是2
-C (-C==Characters) 大写字符个数默认是2
-s (-s==special) 特殊字符个数默认是1
-v (-v==verbose) 详细


问题:生成长度是10,数字个数是3,小写字母是3,大写字母1个特殊字符3个的密码


mkpasswd -l 10 -d 3 -c 3 -C 1 -s 3
echo `mkpasswd -l 10` | passwd --stdin fuyilong
tee命令
tee: read from standard input and write to standard output and files
tee命令可以在输出信息的同时将信息记录到指定的文件中
ls | tee ls_tee.txt
-a append 
append to the given files,do not overwrite
echo hello | tee hello.log 在terminal上打印hello的同时将hello输出到文件hello.log中


Tar 命令总结

tar 命令用于归档打包文件
常见的压缩有.gz(.gz是.gzip的缩写)
tar [-cxtzjvfpPN] 文件或目录
tar -c  create 创建
-x  eXtract 解压
-t  tarfile 查看tarfile里面的文件内容
-z  gzip指定压缩的格式为.gz
-v  verbose显示压缩的详细过程
-j  bz2指定压缩的格式为bz2格式的后缀
-f  filename 指定压缩的文件名
-p  property(小写)使用源文件的原来的属性,不会因为使用者的改变而改变
-P  (大写)path 可以使用绝对路径来压缩
-N  (Newer更新的,比较级) 比后面给的的日期新的才会被打包即增量打包
-T  只压缩文件中指定的目录
-X  eXclude 排除文件中指定的目录
注:一般-T和-X 这两个参数结合使用

Eg:将整个/etc 下的文件全部打包成/tmp/etc.tar然后压缩成.gz格式
tar –cvf  /tmp/etc.tar /etc 仅仅打包不压缩
tar –zcvf  /tmp/etc.tar.gz /etc 打包并且压缩为.gz格式的-z表示为.gz
tar –jcvf /tmp/etc.tar.bz2 /etc 打包后以bz2格式压缩-j表示为.bz2
tar –zcvfp codebase_20170824_bak.tar.gz ./* 打包压缩当前目录下的所有文件
tar –zxvpf codebase_20170824_bak.tar.gz 解压缩到当前目录


重点:

tar –jcpPfTX test.tar.bz2 in.txt ex.txt 由这句命令的参数可以看出最后压缩的格式是.bz2格式的,-TX为指定参数,test.tar.bz2为指定压缩的文件名 in.txt包含的文件 ex.txt 排除的文件
Eg2.在/home中比2017/08/24新的文件才打包:
tar –N ‘2017/08/24’ –zcvf /home.tar.gz /home (-N==newer比较级)
Eg3:在/tmp目录下,只将/tmp/etc.tar.gz中的etc/passwd解压缩
cd /tmp
tar –zxvf /tmp/etc.tar.gz /etc/passwd
Eg4:将/etc目录下所有文件备份,并且保存文件原有的权限属性
tar –zvpf /tmp/etc.tar.gz /etc
这个-p 选项很重要,它会保留源文件的所有属性
Eg5:只备份/home,/etc,但不备份/home/dmtsai

tar –exclude /home/dmtsai –zcvf myfile.tar.gz /home/* /etc


Awk 命令
sed 命令

sed 命令的格式如下:
sed [-nefri] [action]
sed –n silent 安静模式
-e edit 编辑模式
-f filename 将多个编辑命令放到一个文件中,然后用-f 引用这个文件即可完成多个操作
-r 
-i insert直接修改源文件内容,而不是输出到终端
动作 [n1[,n2]] function 
function:
a add
c replace
d delete
i insert
p print 显示
s separate 单独,分开
sed –n ‘100,200p’ mysql.log 通常p和sed –n 一起使用
nl /etc/passwd | sed ‘2,5d’ d==delete
nl /etc/passwd | sed ‘3,$d’
nl /etc/passwd | sed ‘2i drink tea’
nl /etc/passwd | sed –n ‘5,7p’ –n 选项仅显示匹配的行内容
nl /etc/passwd | sed ‘/root/p’
nl /etc/passwd | sed ‘root/d’
nl /etc/passwd | sed –e ‘3,$d’ –e ‘s/bash/blueshell’ –e选项支持多个动作多个操作
sed –i ‘$a #This is a test’ test.txt
nl /etc/passwd | sed –n ‘/root/{s/bash/blueshell/;p}’
nl /etc/passwd | sed –n ‘/bash/{s/bash/blueshell/;p;q}’
nl /etc/passwd | sed ‘2,5c No 2-5 number’
nl /etc/passwd | sed ‘1,20s/old/new/g’ 表示1-20行之间进行替换操作
sed –e ‘1,10d’ –e ‘s/my/your/g’ filename –e 选项支持多个编辑任务和操作


总结:sed命令中必须用单引号,-e 选项允许同时进行多个操作,花括号中命令之间用分号分隔,$表示末尾,p表示显示内容

替换两个或多个空格为一个空格
sed –f mycmd.sed test.txt mycmd.sed为命令集,test.txt 为目标文件或待处理的文件
sed ‘2s/old/new/g’ test.txt 只替换第二行
分别替换两个文件中的最后一行内容
sed –s ‘$s/old/new/g’ test1.txt test2.txt –s separate ==单独,分别 –s 选项会将每个文件当做单独的输入流来处理,-s 选项也会是sed 命令同时作用于多个文件


管道 |
重定向 >

改变标准输出的一种方式
编辑或修改文件的另一种方式:重定向
echo “1234” >> 1234.txt
双重重定向>>
输入重定向>
输出重定向<
Shell脚本编程
echo 命令中-n –e 两个参数解释:
echo -n 不换行输出
-e 处理特殊字符
read命令:读取用户从终端输入的内容


FTP

ftp://itocftp.huawei.com --ftp协议
ftp itocftp (itocftp.huawei.com) 登录ftp
ftp>prompt 关闭交互模式(interactive mode off)
ftp>bin 开启二进制传输模式(也可以输入binary 也有ASCII码传输模式,此模式用于传输纯文本文件比较好)
ftp>help 可以显示帮助信息(会显示很多ftp的命令)
ftp>lcd (lcd -->local change directory 切换本地目录)
ftp>get (下载getdown)
ftp>mget (multiply get 多文件下载这时就要关闭交互模式)
ftp>put (上传put on)
ftp>mput (multiply put 多文件上传)
检查传输状态 
传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。本命令在发送和接收文件时都可以使用
ftp中的本地命令 
当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!mkdir new_dir,那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。
ls 列出远程机的当前目录
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为ASCII模式
binary 设置文件传输方式为二进制模式
close 终止当前的ftp会话
hash 每次传输完数据缓冲区中的数据后就显示一个#号
get(mget) 从远程机传送指定文件到本地机
put(mput) 从本地机传送指定文件到远程机
open 连接远程ftp站点
? 显示本地帮助信息
! 转到Shell中
ls 只显示文件
dir 显示目录


prompt 关闭交互模式
prompt on 开启交互模式
注意你连接的是ftp服务器,所以ftp目录是远程目录,你当前所在目录是本地目录,所以get 是下载,put 是上传
!+command 是执行调用本地shell命令
!dir 是只显示本地目录,如果不加!则只显示远程ftp服务器中的目录


在ftp>命令行中如果要知道本地工作路径可以加!ls -lrt 目录来查看本地的文件


Nginx

Linux nginx 启动和重启关闭命令:
nginx -c /usr/local/nginx/conf/nginx.conf
-c 参数指定了要加载的nginx配置文件路径
启动Nginx
/usr/local/nginx/sbin/nginx ->回车即可
ps -ef | grep nginx 来查询nginx的主进程号,master为主进程
从容停止Nginx:
Kill -QUIT 主进程号
快速停止Nginx:
Kill -TERM 主进程号
强制停止Nginx:
Kill -9 主进程号
平滑重启:
如果修改了配置文件就要重启Nginx服务器,而平滑重启就是不用先关闭Nginx,然后再打开,可以向Nginx发送信号,平滑重启:
Kill -HUP 主进程号或进程号文件路径或者使用如下:
/usr/nginx/sbin/nginx -s reload  重启nginx
修改了配置文件后要先检查下修改过的配置文件是否正确,以免重启Nginx出现错误,判断Nginx配置是否正确的命令:
nginx -t -c /usr/nginx/conf/nginx.conf 或者
/usr/nginx/sbin/nginx -t
重载conf文件
/usr/locla/nginx/sbin/nginx -s reload
获取Nginx的帮助命令行
/usr/local/gninx/sbin/nginx -h
-v 检查版本(-V version)
-t (-t test)检查配置是否有错


Nginx.conf

Nginx.conf是nginx的主配置文件
worker_process表示工作进程的数量,一般设置为CPU的核数
worker_connections表示每个工作进程的最大连接数
Server{}块定义了虚拟主机
linstener 监听的端口
server_name监听域名
location{}块是用来为匹配的URI进行配置,URI即语法中的”uri”,location{}匹配任何查询,因为所有请求都是以/开头。
Root 指定对应uri的资源查找路径,这里html为相对路径,完整的路径为/opt/opt/nginx-1.8.1/html/
index指定首页index文件的名称,可以配置多个以空格分开,如有多个按配置顺序查找


--prefix=/data01/nginx(配置nginx的安装路径)
/data01/nginx/sbin/nginx -s reload 改变Nginx相关配置文件后重新加载
/data01/nginx/sbin/nginx -s stop 快速关闭Nginx,可能不保存相关信息并迅速终止web
/data01/nginx/sbin/nginx -s quit 平稳关闭Nginx,保存相关信息有安排的结束web服务
/data01/nginx/sbin/nginx -c filename为nginx指定一个配置文件,来代替缺省的
/data01/nginx/sbin/nginx -t 不运行,仅测试配置文件,nginx将检查配置文件的语法错误
/data01/nginx/sbin/nginx -v
/data01/nginx/sbin/nginx -V
/data01/nginx/sbin/nginx -s reopen 重新打开日志文件
server{}虚拟主机2.location{}3upstream{}4include{}5超时配置
Nginx的反向代理
Nginx的负载均衡
CDN
单点登录
Redis
Docker
Linux shell面试题

ADD 2018年3月16日21:22:23 @home

source 命令

source filename
修改某个配置文件后,如果想立马生效而不用注销后在重启就可以,用source filename 
在normal 模式下,光标所在行 执行guu行小写 gUU 行大写,g = greate是大小写转换命令
在行末模式下(也叫命令模式)想快速插入日期,则!!date
%表示整个文档的所有行
一般是全文替换比如:在行末模式下:%s/xxx/xxx/g全局替换,会替换所有匹配的行,而不是第一处
在normal模式下 10j 下移10行
:%s/fred/joe/igc (i=ignorance g=global c 替换) 表示忽略大小写全局替换
:g/^\s*$/d删除所有空行
:g!/^/dd/d删除所有不包含”dd”字符串的行(v/^/dd/d)
G1 == v (v=verbose取反,不包括某项的操作)
:reg 在命令模式此命令显示所有寄存器
:reg a 显示寄存器a 中的内容


Vim 中配置文件的映射模式:

1.Normal mode   nmap
2.Insert mode   imap
3.Visual mode   vmap
C == Ctrl 表示Ctrl + R
:e  打开一个文件
:saveas  另存为
:bn 回到下一个 在多个打开的编辑文件中来回切换
:bp 回到上一个
:n 下一个


小数点 . 可以重复上次的命令
Command
0y$
块操作:I – [Esc] === Ctrl + v,Ctrl + d ,shift + I,Esc 四个步骤,其中,Ctrl+d 可以代替上下键操作,但是上下键比较灵活可以选中需要添加注释的行,而Ctrl + d 则会把所有行添加
:g/xxx/d 删除所有含有xxx的行
:v/xxx/d 删除所有除了xxx的行(v=verbose取反操作)
alias & unalias 设置和删除别名
setenv & unsetenv 设置和删除环境变量
chmod [-R] mode file
chmod 755 /temp/test/read.txt
-R 表示递归修改目录及目录下所有文件夹权限
Kill -9 pid (pid == process id)

比如:kill -9 333333 kill -9 表示强制杀死进程


你可能感兴趣的:(Linux,快捷键总结)