崔老师课程笔记(linux部分)

连接到linux服务器
telnet 192.168.5.200

用户名:
cuilue

账号与密码:
luowei luowei

passwd 修改密码的命令


var 存放操作系统日常工作的日志文件

pwd:显示当前的路径

dir:在windows与linux下都可以,在linux下一般用ls

windows下清屏:cls
linux下清屏:clear

传文件
ftp 192.168.5.200

mput *


cd 后直接回车,回到家目录

luowei@boss:/$ cd
luowei@boss:~$

到某个用户的家目录

luowei@boss:~$ cd ~hanhan
luowei@boss:/home/students/students/hanhan$

~表示当前用户的家目录


whoami 显示当前用户的名字  
who am i 显示当前用户详细信息  
who 显示服务器当前登录用户  

date 显示当前的时间  
cal 显示当前的日期  

ls -a 显示当前路径下的所有文件或者文件夹,包括隐藏文件  
ls -l 显示目录下的详细信息  
ls -R 递归显示当前路径下的文件或者文件夹的信息  

touch + file_name 创建文件  

file a 显示a文件的类型  

cat > a 编辑a文件,按delete 键删除字符,ctrl+z退出。同时也覆盖文件中以前的内容。  

cat >> a 向a文件中追加内容  

cp old_file new_file  复制文件  

:cp /home/students/students/cuilue/shadow ./


查看文件的方式
more file_name

按空格,一屏一屏的显示
按回车:一行一行的显示
按b:往回看去


head file_name
显示文件的前10行


tail file_name 显示文件的后10行
tail -f 监视文件内容的最后几行

cal 显示日历


vi 有三种状态模式

编辑模式:按i 或者a进入到编辑模式
命令模式:按esc键进入命令模式
命令行模式:按shift+; 进入此模式,如 set nu 设置行号


i进入编辑模式,并且在光标处插入字符
a进入编辑模式,并且在光标所在位置的下一处插入字符

组合键:dw光标所在位置之后删除一个单词或连续字符
x 删除当前光标所在位置的字符
dd 删除当前光标所在位置的一行
5dd 删除5行 从当前光标所在位置算起
yw 复制一个单词,从光标所在位置算起
yy 复制当前光标所在位置的一行
p 粘贴光标所在位置的下一行


命令模式下
w 保存
q 退出
q! 强制退出
wq! 保存并强制退出


mkdir aaa 建立名为aaa的文件夹
rm dir aaa 删除名为aaa的文件夹
mkdir -p aaa/b/c/d/e/f 创建一系列像管道一样的文件夹

mv old_filename new_filename 相当于剪切,也可以用于修改文件名

rm a? ?是通配符,只能表示一个字符,删除以a字母开头含两个字母的文件
rm * 删除当前目录下的所有文件


-rw-r--r-- 1 luowei root //第一个'-'表示它是个文件  
drwxr-xr-x 2 luowei students //第一个'd'表示它是个文件夹  

- rw- r-- r--
这些参数分别表示:
d u g o a

d 文件夹
u 文件的拥有者
g 和文件拥有处于同一组的同组人
o 其他人
a 所有人


r 表示可读 4
w 表示可写 2
x 表示可执行 1

用数字代表分别为4,2,1 ,二进制分别为100,10,1
这样,三种相加权限可以唯一确定一种权限。

例1:

-rw-r--r--  
分别表示  
- 6 4 4  

例2:

luowei@boss:~$ chmod 766 a
luowei@boss:~$ ls -l
total 20
-rwxrw-rw- 1 luowei students  168 2004-01-01 10:43 a

chmod 修改权限的命令

- 删去某种权限  
+ 增加某种权限  
= 让某一组人拥有哪几个权限  

例:

chmod u-r a
chmod u+r,g-r,file_name
chmod a+r file_name
chmod a=rw file_name
luowei@boss:~$ umask
0022

umask:确定建立的(touch)的文件的默认权限为666-022(umask码),建立的文件夹的权限为777-022(umask码)

下载文件
ftp到服务器
ftp 192.168.5.200

登录上去之后默认是ascii下载方式

Tyep set to A 
Tyep set to I

ascii 设置成ascii码方式

bin 设置成二进制解码方式

get :下载某一个文件
mget :下载多个文件

如果是二进制文件,则需要使用bin方式下载

lcd 切换本地的目录

上传文件
put:上传某一个文件
mput:上传多个文件

oracle 里的函数有哪些类型,有哪些?举例:

sqlplus 进入oracle环境
进入了sqlplus后
!clear 表示清屏

在linux/unix 中输入’!’ 表示切换到linux操作系统环境的进行命令操作
在windows中 ‘$’ 表示切换到本地的操作系统环境的进行命令操作

show user 查看是哪个用户登录的

SQL> select table_name
  2  from user_tables;
查看当前用户下有哪些表

SQL> select sysdate from dual;
是oracle里的'哑表'

哑表 用到了oracle的同意词的概念

查看表结构:desc s_emp;

varchar 与varchar2的区别:varchar不根据所存的字符变化,varchar2会根据所存的字符长度动态分配内存长度

commission_pct:提成率
s_emp 员工表
s_dept 部门表
s_region 地区表

l 显示刚刚执行过的sql语句,缓存每次自动存放刚刚执行的一条sql语句。
/ 执行一次缓存里的sql语句

首先要定位到修改的那一行
a 向缓存里sql语句指定的那一行追加(append)
i 插入新的一行

例:
SQL> l
  1  select salary*3
  2* from s_emp
SQL> 1
  1* select salary*3
SQL> i,last_name
SQL> l
  1  select salary*3
  2  ,last_name
  3* from s_emp
SQL> /

del 对缓存里sql语句删除指定的一行
例:
SQL> l
  1  select salary*3
  2  ,last_name
  3* from s_emp
SQL> 2
  2* ,last_name
SQL> del
SQL> l
  1  select salary*3
  2* from s_emp

重写第一行
例:
SQL> l
  1  select salary*3
  2* from s_emp
SQL> 1 select salary
SQL> l
  1  select salary
  2* from s_emp

c/old/new 替换指定行中的字符串
例:
SQL> select salary*3,lest_name
  2  from s_emp;
select salary*3,lest_name
                *
ERROR at line 1:
ORA-00904: "LEST_NAME": invalid identifier

例:
SQL> 1
  1* select salary*3,lest_name
SQL> c/les/las
  1* select salary*3,last_name
SQL> /

保存sql语句
save file_name 保存缓存里的sql语句到本地
例:
SQL> l
  1  select salary*3,last_name
  2* from s_emp
SQL> save test.sql
Created file test.sql
SQL> !ls
bash_profile  mydocument       shadow  test.sql
java          SDemo??幕录??.zip  test    ??师?纬?录??.exe

start file_name  执行本地的sql文件
例:
SQL> start test.sql

查看:
SQL> !more test.sql
select salary*3,last_name
from s_emp
/

清理缓存:
SQL> l
  1  select salary*3,last_name
  2* from s_emp
SQL> clear buffer;
buffer cleared
SQL> l
SP2-0223: No lines in SQL buffer.

SQL> col last_name for a15 调整列显示的格式
SQL> column last_name 显示某列上面定义的格式
COLUMN   last_name ON 
FORMAT   a15
SQL> column last_name clear 清除某列上面定义的格式

查询s_emp表中所有员工的工资,如果是销售人员则把工资加提成后显示出来,
如果不是销售人员则把工资正常显示。

-- 1.
select nvl(commission_pct,0)
from s_emp

--- 2.
select last_name,salary*(
1+nvl(commission_pct,0)/100) sal
from s_emp;

版权所有,转载请注明出处 luowei.github.io.