Linux 初级命令(oracle DBA 所需)

shutdown -h now 立刻关机 
shutdown -h 23:00 到下一个23点关机
shutdown -h +60 一个小时候关机
在虚拟机中,可能分辨率不够
那么可以安装VMware的工具
VM-->INSTALL VMWARETOOLES
等待几秒钟后,会出现一个文件夹(光盘目录)
在里面进入终端




shutdown -k now '我要关机啦' 把要关机的命令发布到每个用户
shutdown -t 5 5秒后关机

reboot 重启

halt 不理会各种服务是否关闭,而是直接关机


who 查看谁连接了本机

得到进程号后
ps -ef | grep gedit

可以杀这些进程
kill 进程号

如果 ssh没开,那么xshell连不上服务器的
开   /etc/init.d/sshd status  
关   /etc/init.d/sshd stop

把环境改为英文  
LANG=c

时间命令

把日期中的年提取出来;date +%Y

年月日:date +%Y/%m/%d
时分秒:date +%Y%Y/%m/%d' '%H:%M:%S  把空格用引号引起来,这样就不会把空格编译了

日历:cal
cal 2010 显示出2010年的全部日历

cal 5 2008 显示出2008年5月份的日历


基本文件命令
pwd 看当前路径

ls 显示路径下面的所有内容
ls -l 表示文件的详细信息

touch 1.txt
创建 1.txt文档

改名 mv 1.txt 2.txt

copy

把root下的2.txt赋值到当前目录中 cp /root/2.txt .

删除 rm 2.txt
rm 2.txt -f 直接删除,不询问是否删除
rm -r 递归删除

创建文件夹
mkdir test

然后删除的时候rm test -rf 直接删除 文件夹(不再询问)
一般不加-r,太危险

用户操作

看test用户是否存在 id test1

创建用户 useradd test1

passwd test1
然后输入test1的密码

su - test1
切换用户(不需要输入密码)
此时变成了$(这个是普通用户) 
#是超级用户
su - root 此时需要密码

在普通用户下 输入 exit 退出,返回 root用户

ctrl + alt + F1 新开一个终端

普通用户不能设短密码,超级用户可以


常用快捷键
ctrl + c   1、换行不回车 2、结束程序

ctrl + d   可代替 exit (直接离开文字界面)

Tab 命令补齐,文件名补齐

user 按2次 Tab ,可显示出所有以 user开头的命令


sync 同步(把内存中的数据写回到硬盘中)
     等同于hibernate 中的 flush

system-config-network 可在 xshell中呼出网络配置页面

配置各种命令的
/etc/sysconfig/network-scripts/ifcfg-eth0 

!$(上次命令的最后部分)

vim !$


/etc/init.d/network restart 网卡重启
/etc/sysconfig/network-scripts/ifcfg-eth0(网络信息在此文件中)
但是,DNS没有在这个里面
DNS在 /etc/resolv.conf中 的 nameserver对应的键值

手动安装 firefox
插入安装盘 右上角2个要打钩
然后等加载光盘
然后 进入光盘的终端

然后 cd Server
rpm -ivh firefox-*****
不过这个试验下来,系统自带的firefox版本太低,不适合使用
所以重新下载新版本的firefox


插优盘的时候,一定要让虚拟机获取焦点

使用优盘 
fdisk -l

/dev/sda1  sda是指第一个硬盘
sdb1是指另一个硬盘

mkdir u
然后把硬盘挂在u上面
mount /dev/sdb1 /root/u

卸载 硬盘
umount /root/u/(这个时候不能在u的路径下)

如果在新建的u文件夹中创建了文件,再把硬盘挂载到u上面
那么之前创建的文件就会看不见,卸掉后,之前文件夹里的东西又能看到

加载卸载光盘同样的道理
umount /media/RHEL_5.5\ i386\ DVD/


vi/vim
vim有3种模式 一般模式,编辑模式,命令行模式

进入编辑模式 i,o,a
退出编辑模式 Esc

命令行模式
在一般模式下输入 : ? /
保存,退出 查找 替换 显示行号
wq    q

显示行号 :set nu
取消行号 :set nonu

删除当前一行 按2次d
u是撤销刚才的操作

ctrl + z 是指挂起当前操作
如果要恢复挂起的操作
可用jobs查看挂起操作的job号
然后 用 fg %job号 bg %job号

复制一行: 在要复制的行出按两次y,然后把光标移到要复制的一行 按p

复制多行: y6y  即从当前行开始,复制6行

删除一个词 dw 但如果是中文的话,有问题的,比如“你是鱼啊?”按dw后,就剩?了

yw 复制一个词

直接把光标移到最后 按 $
行头 按 ^

翻页  pgdn pgup

光标移到最后一行 G(大写)

光标移到第一行  1G

光标移到第80行  80G

dG 从当前行删除到最后一行
d10d  从当前行删除 10行


替换

: %s/old/new/g    g指全部替换

e! 重新读入当前文件(当然是在未保存的情况下)

查找

/*** (正查询)  n往下查 N往上找

?***(反查询)   n往上查 N往下找 







/user/share/vim/vim70/tutor下的
tutor.zh.euc   是 vim的使用方法

nohup gedit tutor.zh.euc &

&表示放在后台运行   nohup 表示独立于终端运行(终端关闭不会影响到gedit的运行)\


在网vim中粘贴的时候,一定要注意,如果在普通模式下,
粘贴板中的a,i,o会被被当成命令
例:iaaaaaa 粘贴的时候,就会成为aaaaaa,i就没有了


ls -a 显示出所有的文件(包括.swp文件)


文件目录

linux 的目录配置
/ 根目录(root目录)
根目录下还有个root目录,这个是root用户的home目录
/etc/  配置文件目录
/DEV/  接口和设备文件挂载到此文件夹中
/home/ 除了root用户的家目录


回到当前用户的家目录   cd ~ 或者 cd

cd - 回到上一次所在目录

linux 不是通过文件后缀来判断文件类型

而是通过 ls -l 显示的
-rw-r--r--

以-开头,则是普通文件
以d开头,则是目录
以c开头,则是字符流
以s开头,则是socket
以p开头,则是管道文件
以l开头,则是连接文件
以b开头,则是设备文件

创建 a,a.txt,a.ext
除了名字不一样,它的类型是一样的
但也不一定,比如压缩的后缀名就不一样
比如 .html .jsp .php 
比如 .sh 是shell脚本


文件名避免特殊字符开头
如果以.开头,表示是隐藏文件
隐藏文件用 ls -a 显示出来



用户与用户组

-rw-r--r-- 1 root root 108 12-09 00:50 aaaa
-文件类型
然后3位一看
rw-文件所有者的权限
r--用户组的权限
r--其他用户的权限
1 有多少个文件链接到此节点
root 当前文件所有者的名字
root 当前文件所属的用户组
108 文件大小 默认 byte
12-09 00:50 最后修改时间
aaaa 文件名


但权限限制对root不起作用

root下
使aaa有“组写”功能chomd g+w aaaa
使aaa取消“别组读”功能  chomd o-r aaaa
 





文件与目录的管理

删除目录下的全部文件 rm -rf *
创建目录a     mkdir a 
递归创建目录  mkdir b/c/d -p 

删除目录a下的b/c/d   rm b/c/d -p(此文件中必须没有文件)

~ 家目录
cd - 回到上一次所在的目录

别名:lias ll='ls -l' 别名 把'ls -l' 别名成 ll
which ll
alias ll='ls -l --color=tty'
         /bin/ls
取消别名: unalias ll

在系统开机或者新开会话的时候就要加载:
vim ~/.bash_profile

echo "hello mahongmin" (没能成功)
alias ll='ls -l'

复制 删除 移动 创建或修改
cp    mv   rm   touch

如果一个a文件夹下有文件,那么用cp是不能拷贝的
得用 cp a -r ./b(./b表示当前目录的b)
-r表示连文件夹下的文件一起拷贝


cp默认为 cp -i(覆盖则提示)
因为系统做了别名 alias cp='cp -i'
如果不想要cp提示的话
可 /bin/cp a/1.txt b/1.txt

rmdir 是不能删除非空目录的

rm b/ -r 递归删除,可删除所有
-f 删除而不提示

十大危险命令 rm -rf / 把根目录删除而不提示



查阅

cat tac less head tail



cat 文件名 可把找到的文件打印打终端
tac 文件名 和上面一样,不过文本倒叙
more 文件名 可往后翻页查看
less 文件名 可往上,往后翻页
head 文件名 -3 显示前3行,默认10行
tail 文件名 和上面相反
tail -f 文件名 
监测文件,一旦此文件有写入,则显示

第八课 文件与目录权限


rw-   r--   r--
作用到文件
r 可以读
w 可以修改,但不能删除
x 可以被执行

作用到目录
r 可以读 ls查看目录内的文件
w 可以在目录内创建文件,删除文件,以及对目录重命名
x 可以进入这个目录 cd


用户 用户组

创建用户 useradd 用户名
修改用户密码 passwd 用户名
查看用户 id 用户名

id test1
uid=503(test1) gid=503(test1) groups=503(test1)
test1默认在test1用户组
创建aaa用户组 groupadd aaa
改变test1到aaa组  usermod -g aaa test1



直接创建test3到 aaa组
useradd -g aaa test3
passwd test3


使某文件具有“组可写”
chmod g+w 文件名 

使别的组不能读某文件
chmod o-r 文件名

使test目录权限齐全rwxrwxrwx
chmod 777 test

700 只能自己用户rwx
707 自己和别的组能rwx

删除一个文件,是看此文件所在文件夹的最后一个权限是不是x
不过,即使是x,也不一定能删除,比如下面举例
rm -rf TT
先进入 TT,然后把里面的东西删掉,然后退出,然后在删TT
如果进不了TT,那么必然删不掉TT


ls 一个文件夹时,此文件夹对应当前用户权限必须为r--(可读)
当要进入一个文件夹时,此文件夹对应当前用户权限必须为--x(可执行)
当在一个文件夹中创建文件时,此文件夹对应的当前用户必须权限必须为-w-(可写)



第九课

文件属性操作命令
chown   改变用户
chgrp   改变组
chmod   改变权限

chgrp bbb(组名) aaa(文件名)
此命令并不改变aaa里面文件的组
重要参数 -R
加了 -R 后,里面所有的文件的组都改为bbb


chown (重要参数 -R)
用chown也能代替 chgrp
把TT的用户变成a2
chown a2(用户名) TT(文件名)


把TT的用户组变成aaa
chown .aaa(组名) TT(文件名)
也可以
chown :aaa(组名) TT(文件名)

把aaa文件变成 a2用户,且为aaa组
chown a2.aaa(用户.组名) aaa(文件名)
也可以
chown a2:aaa(用户.组名) aaa(文件名)

用户 组 其他
u    g    o
使当前用户对file1有执行权限
chmod u+x file1
取消权限用  u-x

所有的位置都加x  a为 all的意思 
chmod a+x file1
等同于  chmod +x file1(a可以不写)


other位加wx然后再减r
chmod o+wx-r file1

也可以直接设置o的权限
chmod o=rwx file1

要操作多个位置,中间用逗号隔开
chmod g+w,o-wx file1


r:4 w:2 x:1 加起来是7


权限全加:
chmod 777 file1 

写出权限
r-x-w--wx
chmod 523 file1

刚创建的新文件为什么是644?
是因为和系统内的一个值有关系
umask
出来 022 这样创建的文件夹则是 777-022  创建的文件则是666-022
755表示 drwxr-xr-x   644表示 -rw-r--r--

umask -S(大写)
出来 u=rwx,g=rx,0=rx

可改 umask 222
这样创建出来的文件就为 444

给一个公司的3个部门
tech
hr
manager
tech只能访问修改自己,hr只能访问修改自己。manager能访问自己
也能访问tech,hr,但只能访问,不能修改

tech组有t1和t2
hr组有h1和h2
manager组有m1

三个文件夹 tech,hr,manager

把三个文件夹的权限一起改
chmod 770 hr/ manager/ tech/


-rw-r--r-- 1 root root 108 12-09 00:50 aaaa


tech文件夹  
drwxrwx---  root tech

hr文件夹
drwxrwx---  root hr
这个时候只能访问自己组里文件夹

但
1、经理如何访问这两个文件夹?(先不管)

2、t1,t2在tech中创建文件,只能自己删除,同组的人不能删除,只能访问



文件的特殊权限
Suid Sgid sticky

获取权限流程 root --> user --> group -->other

Suid  限制:只能放到二进制的可执行程序上,放到目录上无效
      功能:无论谁执行,Linux都以程序的拥有者身份进入权限获取流程

ls /usr/bin/passwd
-rwsr-xr-x l root root 22960 2006-07-17 passwd
注意这个user权限不同与别的
别的是rwx,它是rws
表示无论谁去执行这个程序,都将获取这个文件拥有者所有的权限

chmod u-s passwd
这样执行后,passwd只有 -rwxr-xr-x了,而不在有-rwsr-xr-x


Sgid
限制:作用到二进制和目录
功能:作用到二进制,与suid类似,
如果作用到目录上,默认用户建立文件文件的所属组是用户的主组
如果在sgid目录下创建文件,则文件的所属组是继承目录的属组,
新建立的目录页集成g+s的权限

!$  表示上一次命令的最后一个位置
chmod g+s 文件夹
sgid 需要再看一遍



sticky(冒前位)
限制:只能作用到目录上
功能:任何人都可以在目录下建立文件,只有root和建立者删除文件 
chmod o+t 文件夹
此文件夹权限为  drwxrwx---
这样执行后,文件夹的other权限最后一位是T
这样同组的人就不能删除此文件夹里的文件了

-rwsr-xr-x
此时的s如果是小写的,那么表示s的位置上是有x的
如果S是大写的,那么表示S的位置上市没有x的
T也一样

chmod 755的权限
如果要加Suid 则为 chmod 4755 file(二进制)
如果要加Sgid 则为 chmod 2755 file/dir
如果要加sticky,则是 chmod 1755 dir

ACL权限设置

access control list(访问控制列表)

setacl
getacl

man setfacl
可仔细看下setfacl的用法

给techacl创建acl列表

testacl 的权限为 -rw-r--r--

u:用户:权限 文件夹
setfacl -m u:t1:rw testacl
执行后
testacl 的权限为 -rw-rw-r--+
多了个“+”表示多了个特殊权限

可用 getfacl testacl来查看加了哪些特殊权限
#file: testacl
#owner: root
#group: root
user::rw-
user:t1:rw-
group::r--
mask::rw-
other::r--

如果给一个文件加上 setfacl -m u:hl:rwx testacl
执行后,mask::rwx
本来是rw-的,现在变成rwx了

再次输入 setfacl -m m:rw testacl
执行后getfacl

就会出现user:tl:rwx  #effective:rw-(表示有效权限为rw)


setfacl -m g:manager:rx hr/ tech/ (manager组对hr/tech有读和进入的权限)



































































































猜你喜欢

转载自hongmin118.iteye.com/blog/897241
DBA