UNIX的特色
1:所有的东西都是以档案的形式存在,包括硬件也是
2:所有的设定要存放在文字档中
3:每个程序都很小,并只负责单一的功能
4:串联很多单一功能的小程序去完成许多复杂的工作
Linux的特色
1:具有与Unix相似的操作方式和程序界面
2:多用户多任务
3:支持很多新的硬件设备
4:从网络上得到新的资源
在文字模式下登录成功后用此命令可以启动至图形界面:
startx
重启系统:
reboot
shutdown -r now
shutdown -r +3(3分钟后重启系统)
关机:
shutdown -h now
shutdown -h +3(3分钟后关机)
创建一个用户
useradd user1
删除一个用户
userdel user1
给某个用户修改密码:
passwd user1
给当前登录的用户修改密码:
passwd
查看某个用户密码的状态:
passwd -S wenjf
passwd --status wenjf
列出档案:
ls(列出当前目录下的非隐藏档案)
ls -l(列出当前目录下的非隐藏档案的详细信息)
ls -a(列出当前目录下的所有档案)
ls -i(列出当前目录下的非隐藏档案以及档案的inode)
ls --version(查看系统的版本信息)
ls -ld(查看这个目录本身的属性)
显示当前日期及时间
date
显示时间和日期
date +%D%T
date +%F%r
更多显示日期和时间的信息可以查看date --help
修改时间
date -s 19:00
显示当前的日历
cal
cal 2009
cal 6 2009
cal 2008 > 2008calender
cat 2008calender
取得指令相关说明的方法:
whatix ls(取得某个指令的简短说明信息)
ls --help(不是所有的指令都有help的功能)
理解使用帮助说明文档的内容
[]表示参数是可选可不选的
<>表示参数是可变的
x|y|z
进入man后查看信息的快捷键
man passwd
1:用上,下,左,右键
2:pgup,pgdn
3:/查询某个关键字
4:n/N,在查询结果中向上,或向下搜索
5:q离开
man -k passwd在所有的manpage中列出所有有passwd关键字的manpage
进入info后查看信息的快捷键
info ls
1:pgup,pgdn
2:TAB键:转移到下一个链接点
3:Enter
4:n/p/u:查看前一个,后一个,上一个接点
5:s[]查找关键字
6:q离开
系统说明文件可以查看
ls /usr/share/doc
linux 目录档案系统
/root 超级用户的家目录
/home/ 一般用户的家目录 并且使用每个使用者的username 当做家目录的名称
/bin 系统命令的执行档
/usr/bin
/usr/local/bin
/sbin 系统管理命令的执行档
/usr/sbin
/usr/local/sbin
/media 用于挂载可移储式的储存媒体
/media/floppy 通常用来挂载软碟
/media/cdrom 通常用来挂载光碟
/mnt
/mnt/floppy 通常用来挂载软碟
/mnt/cdrom 通常用来挂载光碟
/etc 所有系统设定档 例如 账号 密码
/tmp 给一般的使用者存放他们的暂存档 方便他们交互使用
/boot 存放的是这个系统的核心以及这个系统开机所要的档案
/dev 这台电脑里面的所有装置
/usr 类似windows 作业系统里面的 Program Files
/lost+found 在每个独立切割的 partition 中都存在这个目录
由于系统的 错误原因 造成的 错误片段 存放与这个目录
/var 经常会变动的档案 例如 log email
/srv 所有 更 server 有关的服务
/proc 反映 Kernel 的环境 是一个虚拟的目录 不占用系统空间
存放的是记忆体里面的所有资讯
/lib 函式库 许多应用程式 都会呼叫一些共用的函式
/usr/lib
/usr/local/lib
查看当前工作的目录
pwd
查看当前登录的用户
whoami
cd的用法
回到根目录
cd /
回到家目录
cd $HOME
cd ~
回到上一级目录
cd ..
cp的用法
cp file1 file2 file3 destination(把一个或多个文件复制到某个目录下面)
cp -p file1 file2 file3 destination(复制的文件保持原来的时间)
cp -r directory1 directory2 directory3 destination
cp -p -r directory1 directory2 directory3 destination = cp -a directory1 directory2 directory3 destination
rm的用法
rm -r directory1 directory2 directory3
rm -f 强制删除档案不会出现是否删除的提示信息
mv的用法
mv file1 file2(重命名文件)
mv directory1 directory2(重命名文件夹)
mv destination1 destination2(搬移文件)
mv file1 file2 file3 directory(搬移多个文件到某个目录里面)
mv directory1 directory2 directory3 directory(搬移多个目录到某个目录里面)
建立目录
mkdir
删除空目录
rmdir
删除目录
rm -r
查看档案属性/格式
file file1
file directory
cat的用法
cat file1
cat -A file1
cat -s file1
cat -b file1
可以比较以上几个命令的不同输出结果
less的用法
1:pageup,pagedown
1.1:b上移一页
space下移一页
ctrl+d下移半页
ctrl+u上移半页
g到文件新顶端
G到文件新底端
2:/text向下查找关键字
?text向上查找关键字
3:n查找下一个关键字
4:v快速进入编辑模式,i进入INSERT模式,ESC离开INSERT模式,:wq回到命令行
touch的用法(创建一个新的空白的文件)
touch 1.txt 2.txt 3.txt
touch a{a,b,c}.txt
touch {e,f,g}{x,y,z}.txt
万用字源:
* 匹配 0 到 多个字元
? 匹配 1 个字元
[a-z] 匹配 括号 里的字元
[^a-z] 匹配 括号 里 以外 的字元
通过以下方式查看文件,以熟悉万能用字源的用法
ls *.*
ls ?.* ls ?.txt
ls ??.* ls ??.txt
ls e[x-z].* ls e[x-z].txt
ls ?[x-z].* ls ?[x-z].txt
ls ?[^x-z].* ls ?[^x-z].txt
bash shell
` 倒引号
echo "Hostname:`hostname`"
echo "Hostname:$(hostname)" 命令先执行 倒引号 里面的内容 再把值 付给上外面的命令
a=3
echo $a
b=4
echo $b
c=5
echo $c
echo $[$a + $b + $c]
echo $[$a * $b * $c]
echo $[$a / $b / $c]
echo $[$a % $b % $c]
echo $[$a ** $b]
echo your cost is $5.00
echo your cost is $5.00
echo your cost is "$"5.00
echo your cost is '$'5.00
''可以把所有的符号都转移为字符串
""除了$ ` !这四个外,可以把所有的符号都转移为字符串
eg1:
echo $a
echo "$a"
echo '$a'
eg2:
echo $HOME
echo "$HOME"
echo '$HOME'
eg3:
echo today is `date`
echo "today is `date`"
echo 'today is `date`'
eg4:
echo !1083
echo "!1083"
echo '!1083'
set -o vi #切换成 vi 指令编辑模式
set +o vi #关闭 vi 指令编辑模式
set -o #查看当前的指令编辑模式
gnome-terminal的快捷键
ctrl+shift+t:打开一个终端窗口
ctrl+pageup/pagedown:跳转到下一个或上一个终端窗口
alt+"N":跳转到第"N"个终端窗口
ctrl+shift+c/v:复制/粘贴
ctrl+shift+w:关闭一个窗口
档案系统的 7 种形态
- regular file #档案
d directory #目录
l symbolic link #用来标示文件链接
b block special file #用来标示每一个 block 大小的档案 ls -l /dev/sda1
c character special file #硬件设备的档案 例如 键盘 鼠标 ls -l /dev/mice
p named pipe #用来在 程序之间 传输资料 ls -l /dev/initctl
s socket #程序执行的同时 依据socket的特性 在程式当中沟通 ls -l /dev/gpmctl
检视还有多少剩余空间
df
df -h
du
du -h /root |more 检视每个目录以及子目录使用了多少硬盘空间
du -sh /root
016. 资料 导入导出
> #导入 如果没有文件 则 新建 再 导入 有文件 则 (覆盖)
>> #导入 如果没有文件 则 新建 再 导入 有文件 则 (追加)
< #一般是把导入的文件 给命令执行
$ find /etc -name passwd 1> stdout
$ find /etc -name passwd > stdout #预设是 只有 1 被导入到文件里 (同上)
$ find /etc -name passwd 2> stderr
$ find /etc -name passwd 2> errs 1>output
$ find /etc -name passwd 1> alloutput 2>&1 #到所有的讯息到文件里
$ find /etc -name passwd &> alloutput #效果同上 -- 建议不要使用 & 符号 因为 & 包含 (0,1,2,3...)
tr 'A-Z' 'a-z' < /home/wenjf/.bash_profile(把.bash_profile文字里的大写字母转换为小写字母并输入到屏幕上)
017. cut 显示档案里某个特定栏位的资料
-f 显示某个范围 或 某个栏位
-d 指令范围之间的间隔符号 (默认是TAB)
-c 指定某个字元到某个字元
cut -f3 cut.tab
cut -f2 -d. cut.csv
cut -c4-8 cut.csv
cut -f1 -d: /etc/passwd
ll -h A*.AVL |cut -c49-53 |uniq
ll -h A*.AVL |cut -c49-53 | sort -u
sort 对资料排列
-r 做反向排序
-f 不区分大小写
-u disticnt
-t 设定栏位间的间隔符
-n 把排列的字串用作数值来做排列
-k 设定那一栏来做排列
-k 可以设定为 两栏 当第一栏有重复时 以第二栏作排序
sort sort.1
sort -r sort.1
sort -rf sort.1
sort -rfu sort.1
sort -t: -k3 -n /etc/passwd
Pipe(|) 管道符 -- 可以让各种命令工具协同工作
sort -t: -k3 -n /etc/passwd | cut -f1 -d: /etc/passwd
cut -f1 -d: /etc/passwd | sort -r | less
ls -l | mail -s "3rd mail" user2 #利用pipe 发邮件
cat delete_file.txt | xargs rm -f #使用 xargs 可以使得 上一个命令执行的结果 导入到下个命令中继续执行
ls -l | lpr #打印
邮件
#发送邮件1版
mail -s "1st mail" oracle #按回车 就可以输入邮件 正文 "1st mail" 为邮件标题
hello oracle,this is your first mail!
Goodby.
. #单独输入. 则表示正文结束
Cc: #表示是否转发邮件 是 则输入 邮件地址 否则 回车
#发送邮件2版
mail -s "2nd mail" oracle < history.txt
#发送邮件3版 --使用 | 发邮件
ls -l | mail -s "3rd mail" oracle
#收邮件1
cat /var/spool/mail/oracle
#收邮件2
mail
x # 输入x表示退出但是不删除邮件;输入q则读取后删除邮件
阅读过的邮件全部会搬移到 $home/mbox 里面
tee 用于资料分流
cut -f1 -d: /etc/passwd | tee cut.file | sort | tee sort.file | less
# tee 就是把 分流的文件 导入到 别的文件里 然后执行下面的命令
用户
系统中每一个用户都有一个唯一 uid
用户名和uid 都储存在 /etc/passwd 文件列
less /etc/passwd #打开 /etc/passwd 档案
oracle:x:500:500::/home/oracle:/bin/bash
oracle: username:
x: x表示这个user必须用密码登陆 如果是空白的表示这个用户不用密码密码:
500: 这个user的 uid:
500: 这个user的 gid:
: 这个user的 full name 我们可以在这个栏位中记录这个user的通讯资料 或者是这个user 的其他说明:
/home/oracle: 这个user的home目录的路径:
/bin/bash 但这个用户登陆后第一个要执行的程序
less /etc/shadow #打开 /etc/shadow 档案
oracle:$1$sMTWeyij$xQJgZnlkWpmks.PG6t9.x0:14085:0:99999:7:::
oracle: username
$1$sMTWeyij$xQJgZnlkWpmks.PG6t9.x0:
经过md5编码处理过后的密码 如果这个栏位是以 $1$ 开头的话 表示这个user 已经设定好密码了 如果是 !! 开头的话 则 没有设定密码
0:
99999:
7:
:
:
group 用户组
系统中的每一个user 都至少隶属于 一个group 每个user 都至少会加入到一个 跟他同名的 group 里面 也可以加入到其他的group里面
如果一个档案 属于group 的话 那么这个 组里面的所有user 都可以存储这个档案
less /etc/group
dba:x:501:oracle
dba: group name
x: 必须使用密码登陆
501: gid
oracle 这个栏位记录这个group 里面有那些成员
less /etc/gshadow
dba:!::oracle
dba: group name
!: 密码 通常我们不对 group 设定密码
:
oracle
档案安全性
1. 档案权限
r = read 4 ; w = write 2 ; x = execute 1 ; - = no permission
[root@whlt ~]# ll
total 88
-rw-r--r-- 1 root root 1273 Jul 25 15:02 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 Jul 25 15:16 Desktop
-rw-r--r-- 1 root root 54287 Jul 25 15:02 install.log
-rw-r--r-- 1 root root 4970 Jul 25 15:02 install.log.syslog
以 Desktop 说明
d d = 目录 ; - = 档案 ;
rwx 表示 档案所有者的权限 u usr
r-x 表示 档案所有者的所在的 组的 权限 g group
r-x 表示其他用户的权限 o other
档案安全性
设定 档案和目录权限
chmod -R mode file #-R 表示 档案里面全部改成这种权限
chmod ugo+w file1 把写的权限开放给U,G,0(所有人)
chmod 111 file1
chmod 000 subdoc
chmod ugo+rwx subdoc
chmod ugo-rwx subdoc
不过 我喜欢用 chmod -754 结果为 rwx r-x r-- 数字表示法 比较方便
mv `ls ?04003*.AVL` ../sqlload/04003
wc -l D0105120090326000001.AVL
lftp mddms:1@130.71.246.35
du . -sh
cd /home/oracle/test/sub
mv `find ./ -name "a.txt"` z.txt
cd /home/oracle/infa/server/infa_shared/SrcFiles/data_bak/DAY/20090430
ll *.AVL | awk '{if ($5>0)print $NF}' | cut -c1-6 | sort | uniq
ll *.AVL | awk '{if ($5>0)print $9}' | cut -c1-6 | sort | uniq
find /home/oracle/infa/server/infa_shared/SrcFiles/data_bak/ -name "*.AVL" -exec gzip {} ;
mv `find ./ -name "?02001*"` ../../sqlload/02001
mount /dev/cdrom cdrom/
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16313746/viewspace-1029387/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16313746/viewspace-1029387/