linux命令备记(一)

虚拟机安装

windowsXP虚拟机vmware下安装Linux过程

http://bbs.ylmf.net/forum.php?mod=viewthread&tid=1440765

 

鸟哥的linux私房菜

第五章:linux初步命令

 1 $date
 2 
 3 Wed May 30 04:11:52 EDT 2012
 4 
 5 $date +%Y/%m/%d/%H:%M
 6 
 7 2012/05/30/04:14
 8 
 9 $date +%y/%m/%d/%H:%M
10 
11 12/05/30/04:18
1 $cal 
2 $cal 12 2012

man常见操作

下翻一页:空格,Page Down

上翻一页:Page Up

最后一页:End

第一页:Home

向上/向下搜寻字符: /string   ?string

在所搜字符上移动:n,N

离开:q

 

 

sync:数据同步写入磁盘,关机之前将内存中的数据写入硬盘

 

shutdown:关机

1 今天20:25关机
2 $shutdown -h 20:25
3 再过10分钟关机
4 $shutdown -h +10
5 现在重新启动
6 $shutdown -r now

 

reboot:重启

 

 

第六章:档案权限和目录配置

linux储存帐号,密码和群组信息的文件:

/etc/passwd

/etc/shadow

/etc/group

 

档案类型和权限数据

-rwxr-xr--

1 234 567 890

234 拥有者的权限,可读,可写,可执行

567 同群组用户权限,可读,可执行

890 其它用户权限,可读

 

chgrp   改变档案的群组,群组名必须已经在/etc/group中存在,否则报错

-R  递归变更

chgrp groupname dirname/filename

 

chown  改变档案或目录的拥有者,用户名和群组名必须已存在

-R

chown user:groupname filename/dirname

chown user filename/dirname

 

使用情况,cp档案后需要修改档案的owner和group,不然无法使用

 

 

chmod  修改档案权限

chmod [-R] xyz filename/dirname

chmod [ugoa][+-=][rwx] filename/dirname

读r:4

写w:2

执行x:1

因而

-rwxrwx---

owner: 4+2+1 = 7

group: 4+2+1 = 7

other: 0+0+0 = 0

chmod 770 .bashrc

chmod u=rwx,g=r,o=w filename

 

目录介绍

/root  与开机系统有关

/usr  与软件安装和执行有关

/var  与系统运行有关

 

第七章:linux档案与目录管理

.

..

~  

~account   该account的家目录

-   前一个工作目录   cd - 回到前一个工作目录

 

 

cd 切换目录

pwd 显示当前目录  -P 显示完整目录,而不是连接档

mkdir

1 $ mkdir test
2 $ mkdir -p test/test1/test2   ##-p建立多层目录
3 $ mkdir -m 770 test  ##建立档案同时设置权限

rmdir

1 $ rmdir -p test/test1/test2  ##递归删除

 

ls 档案和目录检视

常用参数:-l,-a,-d

-l 

-a  全部档案,连同隐藏档

-d  仅列出目录本身,而不是目录内的档案

 

 

cp 复制档案和目录

常用参数:a,p,d,r

-a  类同于pdr

-r 递归复制

-p 连同档案的属性一起复制过去,而非默认属性

 

rm  移除档案

-r 递归删除

-f 强制删除,没有询问

-i 互动模式,删除前询问

 

 mv 移动档案和目录

-f 强制移动,目标档存在时,不询问直接覆盖

-i 目标档存在时,询问是否覆盖

-u 目标档已存在,且source较新时,才覆盖

 

basename dirname

1  $ basename /etc/bin/locate
2 locate
3 $ dirname /etc/bin/locate
4 /etc/bin

 

档案内容查阅

cat   由第一行开始显示档案

-n  连同行号一起打印

-A  可打印出特殊字符

 

tac 从最后一行开始显示

 

nl  显示档案内容,顺道打印行号

 

可翻页检视

more  一页一页翻动

space 下一页

enter  下一行

b  回翻一页

q 离开

/ 查找

:f 立刻显示文件名和行数

 

less 一页一页翻动 和more类似

增加的操作

page up 上一页

page down 下一页

 

head 攫取档案前几行

head [-n num] filename

1 $ head -n 10 model/po_shirt.py

 

tail 攫取档案的后几行

1 tail -n 10 model/po_shirt.py ##查看档案后10行
2 tail -n +100 model/po_shirt.py ##查看档案100行后的内容  
3 tail -f model/po_shirt.py  ##侦测模式,新写入的内容会显示出来,ctrl+c离开侦测模式    

 

查看执行档(二进制文本)

od [-t  type] filename

c 使用ASCII字符来显示

1 $ od -t c /usr/bin/locate 

 

touch 创建档案或修订档案时间

 

umask 显示档案预设时的权限

1 $ umask
2 0022
3 $ umask -S
4 u=rwx,g=rx,o=rx

注:数字是被拿掉的权限,r 4 w 2 x 1

 

设置档案隐藏属性

chattr 配置档案属性

1 $ touch attrtest
2 $ chattr +i attrtest
3 $ rm attrtest  ##删除操作不被允许

 

lsattr 显示档案隐藏属性

1 $ touch attrtest
2 $ chattr +aij attrtest
3 $ lsattr attrtest  
4 ----ia--j---  attrtest

 

观察文件类型

file

1 $ file model/po_shirt.py
2 model/po_shirt.py: Python script, UTF-8 Unicode text executable

 

搜寻指令的完整文件名

which  搜寻执行档

寻找范围是PATH所规范内的目录

1 $ which ls
2 /bin/ls
3 $ which -a ls
4 /bin/ls
5 $ which -a mkdir
6 /bin/mkdir

 

 

搜寻档案

locate

whereis

 

 

第九章 档案与文件系统的压缩和打包

decompression  解压
zip  压缩

档案的压缩和打包
*.tar   tar打包的程序,并没有压缩过。
*.gz    gzip程序压缩的档案
*.tar.gz   tar打包过的档案,并经过gzip压缩
*.bz2    bzip2压缩的档案



gzip [d#] filename
$ gzip my.conf
产生my.conf.gz这个档案

$ zcat my.conf.gz
读取档案中的内容

$ gzip -d my.conf.gz
$ gunzip my.conf.gz
两种解压文件的方式

$ gzip -9 my.conf
以最大的压缩比压缩文件


$ bzip2 [dz] filename

$ bzip2 -z my.conf
生成压缩文件my.conf.bz2
$ bzip2 -d my.conf.bz2
解压文件my.conf.bz2

$ bzcat my.conf.bz2
读取压缩文档中的内容

将.tar.gz文件解压
$ tar -zxvf *.tar.gz

将.tar文件解包
$ tar -xvf *.tar

生成打包文件filename.tar
$ tar -cvf filename

打包并压缩文件为filename.tar.gz
$ tar -zcvf filename

 

 

 

程序管理

触发任何一个事件时,系统都会将他定义成为一个程序,并且给以这个程序一个id,成为PID,同时依据启发这个程序的用户与相关属性关系,给以这个PID 一组有效的权限设定。

process与program 子进程和父进程

fork and exec:

过程调用的流程系统常驻程序被称为:服务(daemon)

网络联机服务,如apache,网络服务比较有趣的地方,在于这些程序被执行后,他会启动一个可以负责网络监听的端口号(port),一提供外部客服端(clinet)的联机要求。

 

工作管理(job control):

直接将指令丢到背景中执行 & :

tar -zpcf /tmp/etc.tar.gz /etc &

ctrl + z :

将当前工作丢到背景中(stopped)

jobs :观察目前的背景工作状态

fg :将背景工作拿到前景处理

bg :让工作在背景的下的状态变成运行中(running)

管理背景中的工作 : kill

脱机管理:

vim sleep500.sh #!/bin/bash /bin/sleep 500s /bin/echo "I have slept 500 seconds"

chmod a+x sleep500.sh nohup ./sleep500.sh &

 

程序观察:

ps

ps aux

ps -l

ps -lA

ps axjf

通过管道查看开发服的情况

ps aux|grep dev

top

top -d 2

P cpu使用率排序

M 内存使用量排序

 

离开:q

pstree

pstree -A

pstree -Aup

 

nice

nice -n -5 vi &

renice 10 18625

renice [number] PID

free

free -mbt

uname -a

uptime

netstat

 

vmstat

 

 

screen s

creen -D -R

screen

screen -ls

screen -r screenid

<F5><F6>

linux中screen命令的用法

 

bash相关

基本上,在 Linux 预设的情况中,使用{大写的字母}来设定的变量一般为系统内定需要的变量

 

echo

显示变量内容

shell>>echo $PATH

$表示后接的是变量

 

env

shell>>env

显示目前系统中主要的预设变量内容

(环境变量)

 

set

shell>>set

显示目前系统中全部的变量内容

(环境变量+自订变量)

 

bash变量设定规则

  • 变量与变量内容以等号『=』来连结;
  • 等号两边不能直接接空格符;
  • 变量名称只能是英文字母与数字,但是数字不能是开头字符;
  • 若有空格符可以使用双引号『 " 』或单引号『 ' 』来将变量内容结合起来,但须要特别留意,双引号内的特殊字符可以保有变量特性,但是单引号内的特殊字符则仅为一般字符;
  • 必要时需要以跳脱字符『 \ 』来将特殊符号(如Enter, $, \, 空格符, '等)变成一般符号;
  • 在一串指令中,还需要藉由其它的指令提供的信息,可以使用 quote 『 ` command` 』;
  • 若该变量为扩增变量内容时,则需以双引号及 $变量名称如:『 "$PATH":/home』继续累加内容;
  • 若该变量需要在其它子程序执行,则需要以 export 来使变量可以动作,如『export PATH』;
  • 通常大写字符为系统预设变量,自行设定变量可以使用小写字符,方便判断(纯粹依照使用者兴趣与嗜好);
  • 取消变量的方法为:『unset 变量名称』。

 

export 变量

让该变量内容继续的在子程序中使用

unset

直接将该变量的内容拿掉

 

read

变量内容是由使用者由键盘输入的

shell>>read name

intput     --提示输入后的字符

shell>>echo $name

input

 

array

数组

shell>>a[1]=4

shell>>a[2]=8

shell>>echo ${a[1]} ${a[2]}

4 8

 

$RANDOM

shell>>echo $RANDOM

1233       一个随机数

 

eval

用来做为『二次迭代』的功能

shell>>days=365

shell>>year=days

shell>>echo \$$year

$days

shell>>eval echo \$$year

365

 

alias

命令别名

shell>>alias rm='rm -i'

 

hastory

查看历史命令

shell>>alias h='history'

 

设定档案

系统设定值:

所谓的系统设定值,也就是说每个使用者进入到 bash shell 之后,会先读取的设定档案!预设的设定档案有下列几个

/etc/profile:这个档案设定了几个重要的变量,例如:『PATH、USER、MAIL、HOSTNAME、HISTSIZE、umask』等等,也同时规划出 /etc/inputrc 这个针对键盘热建设定的档案的数据内容。

/etc/bashrc:这个档案在规划 umask 的功能,也同时规划出提示字符的内容(就是里头那个 PS1 啦!)。特别留意的是,这个档案在不同的 Linux distribution 里面,摆放的位置可能不太一样呢!所以需要查询一下才行呦

/etc/man.config:这个档案或许跟 bash shell 较没相关性,但是对于系统管理员来说,却也是很重要的一个档案!这的档案的内容『规范了使用 man 的时候, man page 的路径到哪里去寻找!』所以说的简单一点,这个档案规定了下达 man 的时候,该去哪里查看数据的路径设定!

这就是系统在设定的时候常常会使用的档案!需要特别留意的是,通常设定完了这几个档案之后,都需要先 logout 在 login 之后才会将设定整个启动起来!

 

 

个人设定值

~/.bashrc:这个档案对于个人喜好的 bash 设定来说,是最重要的啦!因为我都是在这里设定我的个人化变量!例如命令别名的设定!路径的重新定义等等,都是在这里完成的!

~/.bash_history

~/.bash_profile

~/.bash_logout:这个档案则是在『你注销 shell 的时候, BASH 会为你所做的事情!』

 

source

前面提过了,如果我需要将目前的设定档的内容读入一次,需要重新 logout 再 login 才能够读入,那么有没有办法不注销而直接读入变量设定文件呢?当然可以,就使用 source 即可!

shell>>source ~/.bashrc

 

 

万用字符与特殊符号

*

""

''

``

[]

cp *[A-Z]* /tmp

 

command1;command2

连续指令

代表不论 command1 执行结果为何,command2 都会被执行

 

command1&&command

当 command1 执行结果传回值为 0 的时候,也就是没有错误讯息时,则 command2 才会开始执行

 

command1||command2

当 command1 有错误讯息时, command2 才会执行

 

 命令重导向

将你目前的所得资料转到其它地方去

若以 > 输出到一个既存盘案中,呵呵,那个档案就会被覆盖掉啰

  • 标准输入;代码为 0 ;或称为 stdin ;使用的方式为 <
  • 标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>
  • 错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>
指令
1>
1>>
2>
2>>
<
装置或档案

 

  • <  :由 < 的右边读入参数档案;
  • >  :将原本由屏幕输出的正确数据输出到 > 右边的 file ( 文件名称 ) 或 device ( 装置,如 printer )去;
  • >> :将原本由屏幕输出的正确数据输出到 >> 右边,与 > 不同的是,该档案将不会被覆盖,而新的数据将以『增加的方式』增加到该档案的最后面;
  • 2> :将原本应该由屏幕输出的错误数据输出到 2> 的右边去。
  • /dev/null :可以说成是黑洞装置!

/dev/null 这个垃圾桶就很重要了!/dev/null 是什么呢?基本上,那就有点像是一个『黑洞』的垃圾桶功能!当你输入的任何东西导向到这个虚拟的垃圾桶装置时,『他就会凭空消失不见了~~』,

 

将数据都写到同一个档案中

[test @test test]# find / -name testing 1> list 2> list<==错误写法
[test @test tset]# find / -name testing 1> list 2>&1   <==正确写法

 

 

管线命令(pipe)

这个管线命令『 | 』仅能处理经由前面一个指令传来的正确信息

shell>>last | grep root | wc -l

基本管线命令

cut

将『同一行里面的数据进行分解

[root @test /root ]# cut -d "分隔字符" [-cf] fields
参数说明:
-d  :后面接的是用来分隔的字符,预设是『空格符』
-c  :后面接的是『第几个字符』
-f  :后面接的是第几个区块?

 

sort

常常需要比较一些信息啦

 

wc

[root @test /root ]# wc [-lmw]
参数说明:
-l   :多少行
-m   :多少字符
-w   :多少字?

 

unqi

『重复的行删除掉只显示一个』

 

tee

 [root @test /root]# last | tee last.list | cut -d " " -f1

使用 last 可以查看到这个月份的登入数据,而使用了 tee 之后,会将数据同时传给下一个命令去执行,也会将数据写入 last.list 这个档案 

 

 

tr

split

 

注意:

在变量的设定中,单引号与双引号有什么不同呢?

变量的设定只在目前这个 shell 环境当中存在,在下个或者是在子程序中 ( 子 shell ) 将不会存在

要注意的是,在指令列输入的变量也好、命令别名也罢,都是针对该次登入的设定而已,所以只要您一注销,那么上次的设定值就会不见去!因此,我们需要有几个档案来帮助我们,每次登入的时候,就已经帮我们搞定了环境的设定啰!

 

ctrl + a

ctrl + e

 

 

 

转载于:https://www.cnblogs.com/huhuchen/archive/2012/04/25/2470535.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值