Linux 基本操作命令
以下为《鸟哥的Linux私房菜》的学习总结
1.    
转换语系
LANG=en
LANGUAGE=en
LC_ALL=en
LC_CTYPE=en
LC_TIME=en
2.    
显示日期命令     date
           [root@sun
~]# date
Tue Aug  2 10:28:08 CST 2011
           date
+%Y/%m/%d
           [root@sun
~]# date +%Y/%m/%d
2011/08/02
显示日历 cal
| 
 [root@sun ~]# cal      August
  2011     Su Mo Tu We Th Fr Sa  1  2 
  3  4  5  6  7  8  9
  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  | 

cal [month] [year]

3.    
Linux 文件属性与目录配置
更改所属用户组
chgrp [-R] dirname/filename …   -R 参数递归修改
更改文件拥有者
chown [-R] 用户名     文件名
           chown [-R] 用户名:用户组名 文件或目录
更改文件属性
chmod [-R] filename  -rwx 对应4 2 1
           eg: chmod
777 filename // 对filename文件赋予
rwxrwxrwx权限

4.    
Linux文件与目录管理
相对路径与绝对路径,不做过多解释;绝对路径是由根目录”/”写起的路径(我的理解)
.         表示当前目录
..        表示上一层目录
-         表示前一个工作目录
~        表示当前用户所在的家目录
~account   表示account用户的家目录
cd 切换目录
(我当前用户使root,计算机名sun)



显示当前所在的目录    pwd
建立新目录       
mkdir [-mp] 目录名
           -m     设置文件的权限
           -p     帮助直接建立所需要的目录递归

删除“空”目录
rmdir [-p] dirname
           -p       与上层“空”目录一起删除

如果想删除非空的目录的话可以用 rm –rf test        -r表递归,-f表force(我认为的,没查)
但是不建议linux下面是用这个命令,一旦操作失误的话就惨了!!!
5.    
管理文件与目录
查看文件和目录       ls
ls
[-aAdfFhilRS] 目录名
ls
[--color={none,auto,always}] 目录名
ls
[--full-time] 目录名
参数
-a       :全部文件,包括隐藏文件一起列出来
-A      :全部文件,但不包括.与..这两个目录
-d       :进列出目录本身,而不是列出目录内的文件数据
-f        :直接列出结果,而不进行排序(默认会按照文件名排序)
-F       :根据文件、目录等信息,附加数据结构,
                     例如:*表示可执行文件,/表示目录,=表示套接字文件;|表示FIFO文件
-h       :列出文件大小
-i        :列出inode位置,而非列出文件属性
-l        :列出长数据串,包含文件的属性
-n       :列出UID与GID而非用户与用户
-r        :将排序结构反向输出
-R       :与子目录内容一起列出来
-S       :按文件大小
-t        :按时间排序
--color=never                           :不要按照文件属性用不同的颜色显示
--color=always                         :显示颜色
--color=auto                             :让系统自行按照设置来判断是否使用颜色
--full-time                       :以完整时间模式输出
--time={atime,ctime}           :输出访问时间或改变权限属性的时间(ctime)而不是改变内容的时间
复制文件或目录       cp
cp [-adfilprsu] source destination
cp [option] source1 source2 … directory
-a:相当于-pdr
-d:若源文件为链接文件属性,则复制链接文件属性,而非文件本身
-f:force,有问题不会询问用户,强制执行
-i:若目标文件已经存在,在覆盖时会先询问
-l:建立硬连接的连接文件,而非复制文件本身
-p:与文件属性一起复制,而不是使用默认属性
-r:递归复制,用于目录的复制操作
-s:复制成符号连接文件,也就是“快捷方式”
-u:若目标文件比源文件就,则更新目标文件
删除文件或目录       rm
rm [-fir] 文件或目录
-f:force,强制删除
-i:交互模式,在删除前会询问用户是否操作
-f:递归删除,用于目录的删除
移动文件、目录或重命名
mv [-fiu] source destination
mv [option] source1 source2 … directory
-f :force
-i :若目标文件已经存在,询问是否覆盖
-u :update
eg:mv mvtest mvtest1                  ç这样就重命名了
查看文件内容
cat    :由第一行开始显示文件内容
tac    :从文件的最后一行开始显示文件内容
nl     :显示的时候输出行号
more  :一页一页地显示文件内容
less   :与more相似,但可以向前翻页
head  :只看前几行
tail    :只看后几行
od    :以二进制方式读取文件
修改文件时间与创建文件:touch
与文件相关的时间
modification time(mtime, 修改时间):文件内容修改时(不是文件属性),便会改变这个时间
status time(ctime, 状态时间):当前文件的“状态”改变时,就会更新这个时间,比如更改权限与属性
access time(atime, 访问时间):当读取这个文件内容时,就会更新这个读取时间
touch [-acdmt] filename
-a :仅修改access time
-c :仅修改时间,而不建立文件
-d :后面可以接日期,也可以使用 --date=”日期或时间”
-m :仅修改mtime
-t :后面可以接时间,格式为[YYMMDDhhmm]

搜索文件
寻找执行文件
which
which [-a] cmd
-a:将所有可找到的命令均列出,而不仅仅列出找到的第一个命令
寻找特定文件
whereis
whereis [-bmsu] 文件或目录名
-b:只找二进制文件
-m:执照有帮助文件manual路径下的文件
-s:只找源文件
-u:没有帮助文件的文件

locate
locate filename,完整路径中含有filename的全部选出来
find
find [PATH] [option] [action]
参数:
与时间有关的参数
-atime n :n为数字,在n天之前的一天内访问过(access)的文件
-ctime n :n为数字,在n天之前的一天内修改过状态(change)的文件
-mtime n :n为数字,在n天之前的一天内访修改的(modification)文件
-newer file:file为一个存在的文件,列出比file新的文件
与用户或用户组名称有关的参数
-uid n  :n为数字,这个数字是用户的帐号ID,即UID,这个UID是记录在/etc/passwd里与帐号对应的数字
-gid n   :用户组
-user name:name为用户帐号名称
-group name:name为用户组名称
-nouser:查找文件的拥有者不再/etc/passwd中的文件
-nogroup:查看文件的拥有用户组不再/etc/group中的文件
与文件权限及名称有关的参数
-name filename:搜索文件名为filename的文件
-type TYPE:搜索文件类型为TYPE,类型主要有:一般正规文件(f),设备文件(b,c),目录文件(d),连接文件(l),套接字(s),及FIFO(p)等属性
-size [+-]SIZE:搜索比SIZE还要大[+]或小[-]的文件。    SIZE规格有c:byte;k
-perm mode:搜索文件属性“刚好等于”mode的文件,这个mode类似于chmod的属性值,比如-rwxr-xr-x的属性值为4755
-perm -mode:搜索文件属性“必须全部包括mode的属性”,比如-rwxr--r--的属性值为0744,使用-perm
-0744
-perm +mode:搜索文件属性“包含任一mode的属性”
附加操作
-exec command:command为其他命令,-exec后面可在接额外的命令来处理搜索到的结果
eg:
find / -mtime 0                                                 #0代表当前时间,所以是从现在起24小时前
6.    
文件系统
磁盘与目录容量
df
df [-ahikHTm] [目录或文件名]
-a:列出所有的文件系统,包括系统特有的/proc等文件系统
-k:以KB为单位列出各文件系统
-m:以MB为单位
-h:以GB、MB、KB等格式显示
-H:以M=1000K取代M=1024K
-T:连同该分区的文件系统名称(例如ext3)一起列出
-i:不用硬盘容量,而以inode的数量显示

du
du [-ahskm] 文件或目录名称
-a:列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已
-h:以人们易读的容量格式(G/M)显示
-s:列出总量,不列出每个目录占用的总量
-k:以KB列出容量显示
-m:以MB列出容量显示
7.    
磁盘的挂在与卸载(看我的linux 挂载外部存储设备 (mount))
8. Linux系统常见的压缩命令
9.    
Linux用户管理
帐号管理
添加删除用户
useradd [-u UID] [-g
initial_group] [-G other_group] -[Mm] [-c 说明栏] [-d home] [-s shell] username
-u:后面接UID
-g:后面接用户组名称为初始用户组,该groupID会放到/etc/passwd的第四个字段内
-G:后面接的用户组称是这个帐号还可以支持的用户组。会修改/etc/group内的相关数据
-M:强制。不要建立用户家目录
-m:强制。要建立用户家目录
-c:/etc/passwd第5栏的说明内容,可以随便设置
-d:制定某个目录为家目录,而不是用默认值
-r:建立一个系统帐号,这个帐号的UID会有限制(/etc/login.defs)
-s:后面接一个shell。默认为/bin/bash
修改密码passwd
passwd [useraccount]
root用户可以直接修改其他用户的密码
用户要修改自己的密码则必须给出原有密码

删除用户  userdel
相关文件 /etc/passwd;/etc/shadow;/home/username
userdel [-r] username #连同用户的家目录一起删除
查询UID/GID的相关信息  id
id [username]
| 
 [root@sun Desktop]# id sun uid=500(sun) gid=500(sun)
  groups=500(sun) [root@sun Desktop]# id                    uid=0(root) gid=0(root)
  groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
  context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023  | 
增加删除用户组
groupadd
groupadd [-g gid] [-r]
-g :后面接某个特定的GID,用来直接给予某个GID
-r :建立系统用户组。与/etc/login.defs内的GID_MIN相关
| 
 [root@sun Desktop]# groupadd
  group1 [root@sun Desktop]# grep group1
  /etc/group /etc/gshadow /etc/group:group1:x:506: /etc/gshadow:group1:!:: [root@sun Desktop]# groupadd -r
  group2 [root@sun Desktop]# grep group2
  /etc/group /etc/gshadow /etc/group:group2:x:487: /etc/gshadow:group2:!::  | 
有没有 –r,结果与/etc/login.defs中的设置有关。而且以groupadd新增的帐号,默认都不能使用密码方式登录,也就是说,默认是私有用户组,无法私用newgrp来的登录。
groupmod
与usermod相似,用于group相关参数的修改
groupmod [-g gid] [-n group_name]
-g :修改已有的GID数字
-n :修改已有的用户组名称
| 
 [root@sun Desktop]# groupmod -g
  103 -n groupname group2 [root@sun Desktop]# grep
  groupname /etc/group /etc/gshadow /etc/group:groupname:x:103: /etc/gshadow:groupname:!::  | 
删除用户组  groupdel 
gpasswd groupname
  
:没有任何参数,表示给groupname一个密码(/etc/gshadow)
-A :将groupname的主控权交给后面的用户管理(改用户组的管理员)
-M :将这些帐号加入这个用户组中
-r :将groupname 的密码删除
-R :让groupname的密码栏失效,所以newgrp就不能使用了
关于用户组管理员做的操作
gpasswd [-ad] user groupname
-a :将某用户加入到groupname用户组中
-d :将某用户从groupname中删除
切换用户身份 
su [-lcm] [username]
- 
:如果执行su
–时,表示该用户想要成为root身份,且使用root环境设置的参数文件
-l :后面可以接用户,使用 -l的好处是可以使变换身份者的所有相关的环境的配置文件
-m :-m与-p是一样的,表示“使用当前环境设置,而不重新读取新用户的设置文件”
-c :仅进行一次命令,所以-c后面可以加上命令
sudo 
10. 作业进程管理
将命令放到后台“执行”,
&
eg :tar –zpcf /tmp/etc.tar.gz
/etc &
将“当前”作业放到后台“暂停”[Ctrl]-z
观察当前后台作业状态jobs
jobs [-lrs]
-l :除了列出作业号之外,同时列出PID
-r :仅列出正在后台运行(run)的作业
-s :仅列出正在后台暂停(stop)的作业
将后台作业拿到前台处理:fg
fg %jobnumber        # %可有可无,jobnumber作业的号码
让作业在后台运行:bg
管理后台作业:kill
kill -signal %jobnumber
kill -l(L的小写)
-l:列出当前kill能够使用的信号
signal:表示给后面的作业什么指示
-1:(数字1)重新读取一次参数的设置文件
-2:表示与由键盘输入[Ctrl]-c同样的动作
-9:立刻强制删除一个作业
-15:以正常的程序方式终止一项作业。
进程管理
ps
ps aux
ps -lA
ps axjf
-A 所有进程均显示
-a 与终端无关的进程
-u 有效用户的相关进程
l 较长
较详细的显示PID的信息
j 作业的输出格式
-f 更完整地输出
PID 进程ID
USER 进程的所属所属用户
PR priority,进程执行顺序,越小越先执行
NI Nice,与Priority有关,越小越先执行
%CPU cpu使用率
%MEM mem使用率
TIME+ CPU使用时间累加
 
| 
 [root@sun Desktop]# ps aux USER       PID %CPU %MEM    VSZ  
  RSS TTY      STAT START   TIME COMMAND root         1 
  0.0  0.2  19244 
  1144 ?        Ss   Aug01  
  0:02 /sbin/init root         2 
  0.0  0.0      0    
  0 ?        S    Aug01  
  0:00 [kthreadd] root         3 
  0.0  0.0      0    
  0 ?        S    Aug01  
  0:00 [migration/0] root         4 
  0.0  0.0      0    
  0 ?        S    Aug01  
  0:00 [ksoftirqd/0] root         5 
  0.0  0.0      0    
  0 ?        S    Aug01  
  0:00 [watchdog/0] root         6 
  0.0  0.0      0    
  0 ?        S    Aug01  
  0:00 [events/0] ……省略N多  | 
| 
 [root@sun Desktop]# ps -lA F S   UID  
  PID  PPID  C PRI 
  NI ADDR SZ WCHAN  TTY          TIME CMD 4 S     0    
  1     0  0 
  80   0 -  4811 poll_s ?        00:00:02 init 1 S     0    
  2     0  0 
  80   0 -     0 kthrea ?        00:00:00 kthreadd 1 S     0    
  3     2  0 -40  
  - -     0 migrat ?        00:00:00 migration/0 1 S     0    
  4     2  0 
  80   0 -     0 ksofti ?        00:00:00 ksoftirqd/0 5 S     0    
  5     2  0 -40  
  - -     0 watchd ?        00:00:00 watchdog/0 1 S     0    
  6     2  0 
  80   0 -     0 worker ?        00:00:00 events/0 1 S     0    
  7     2  0 
  80   0 -     0 worker ?        00:00:00 cpuset 1 S     0    
  8     2  0 
  80   0 -     0 worker ?        00:00:00 khelper …… 省略N多  | 
| 
 [root@sun Desktop]# ps -axjf Warning: bad syntax, perhaps a
  bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ  PPID  
  PID  PGID   SID TTY      TPGID STAT   UID  
  TIME COMMAND     0    
  2     0     0 ?           -1 S        0  
  0:00 [kthreadd]     2    
  3     0     0 ?           -1 S        0  
  0:00  \_ [migration/0]     2    
  4     0     0 ?           -1 S        0  
  0:00  \_ [ksoftirqd/0] ……    1 
  1769  1769  1769 ?           -1 Ssl      0  
  0:00 automount --pid-file /var/run/autofs.pid     1 
  1792  1792  1792 ?           -1 Ss       0  
  0:00 /usr/sbin/sshd  1792 16070 16070 16070 ?           -1 Ss       0  
  0:01  \_ sshd: root@pts/0  16070 16090 16090 16090
  pts/0    29910 Ss       0  
  0:00      \_ -bash 16090 27386 27386 16090
  pts/0    29910 S        0  
  0:00          \_ su sun 27386 27387 27387 16090
  pts/0    29910 S      500  
  0:00              \_ bash 27387 27530 27530 16090
  pts/0    29910 S        0  
  0:00                  \_ su root 27530 27534 27534 16090
  pts/0    29910 S        0 
   0:00                      \_ bash 27534 29910 29910 16090
  pts/0    29910 R+       0  
  0:00                          \_
  ps -axjf  | 
top
top [-d] top [-bnp]
-d :后面接秒数,进程画面更新的描述,默认是5s
-b :以批处理方式执行top,还有更多的参数可用,通常会搭配数据流重定向,将批处理的结果输出为文件
-n :与-b搭配,意义是,需要基尼险那个几次top的输出结果
-p :制定某些个PID来进行观察监测
top执行过程中
      ?:显示在top中可以输入的命令
      P :按CPU的使用资源排序显示
      M:按内存使用资源排序
      N:按PID来排序
      T:按该进程使用的CPU时间积累排序
      k:给某个PID一个信号
      r:给某个PID重新确定一个值
| 
  
  PID USER      PR  NI 
  VIRT  RES  SHR S %CPU %MEM    TIME+ 
  COMMAND                                     29975 root      20  
  0 14940 1196  892 R  1.0 
  0.2   0:00.08 top                                             19 root      20  
  0     0    0   
  0 S  0.5  0.0  
  4:29.16 ata/0                                            1 root      20  
  0 19244 1144  944 S  0.0 
  0.2   0:02.51 init                                             2 root      20  
  0     0    0   
  0 S  0.0  0.0  
  0:00.01 kthreadd                   
                       3 root      RT  
  0     0    0   
  0 S  0.0  0.0  
  0:00.00 migration/0                                      4 root      20  
  0     0    0   
  0 S  0.0  0.0  
  0:00.15 ksoftirqd/0                                      5 root      RT  
  0     0    0   
  0 S  0.0  0.0  
  0:00.00 watchdog/0                                       6 root      20  
  0     0    0   
  0 S  0.0  0.0  
  0:00.76 events/0                                     7 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuset 省略N多  | 
pstree [-Aup]
-A:各进程树之间以ASCII字符来连接。
-p:同时列出每个进程的PID
-u:同时列出每个进程的所属帐号名称
查看系统资源
| 
 [root@sun Desktop]# free              total       used       free     shared   
  buffers     cached Mem:        503312     454164      49148          0      35212      40140 -/+ buffers/cache:     378812     124500 Swap:      2916344      18840   
  2897504  | 
| 
 [root@sun Desktop]# uname -a      # 所有系统信息 Linux sun 2.6.32-71.el6.x86_64
  #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux [root@sun Desktop]# uname -s      # 系统核心名称 Linux [root@sun Desktop]# uname -r      # 核心的版本 2.6.32-71.el6.x86_64 [root@sun Desktop]# uname -m     # 本系统的硬件名称 x86_64 [root@sun Desktop]# uname -p      # CPU的类型 x86_64 [root@sun Desktop]# uname -i      # 硬件的平台 x86_64  | 
netstat
netstat 用于网络监控方面,不过,在进程管理方面也需要了解。netstat
的输出分为两部分,上面是网络接口相关的联机,下方是与unix进程有关的项目
netstat [-atunlp]
-a :将当前系统上所有的联机、监听、套接字数据都列出来
-t :列出tcp网络包的数据
-u :列出udp网络包的数据
-n :不以进程的服务名称,以端口号(port number)来显示
-l :列出当前正在网络监听(listen)的服务
-p :列出网络服务的进程PID
dmesg | more 输出所有内核开机时的信息
| 
 [root@sun Desktop]# dmesg  | grep -i sd           #搜索开机时硬盘的相关信息 ACPI: RSDP 00000000000f6940
  00024 (v02 PTLTD ) ACPI: XSDT 000000001fef0804
  0004C (v01 INTEL  440BX    06040000 VMW  01324272) ACPI: DSDT 000000001fef09bc
  0E4DC (v01 PTLTD  Custom   06040000 MSFT 03000001) ACPI: EC: Look up EC in DSDT sd 0:0:0:0: [sda] 31457280
  512-byte logical blocks: (16.1 GB/15.0 GiB) sd 0:0:0:0: [sda] Write Protect
  is off sd 0:0:0:0: [sda] Mode Sense: 00
  3a 00 00 sd 0:0:0:0: [sda] Write cache:
  disabled, read cache: enabled, doesn't support DPO or FUA  sda: sda1 sda2 sd 0:0:0:0: [sda] Attached SCSI
  disk dracut: Scanning devices
  sda2  for LVM logical volumes
  vg_sun/lv_root vg_sun/lv_swap  sd 0:0:0:0: Attached scsi
  generic sg0 type 0 EXT4-fs (sda1): mounted
  filesystem with ordered data mode SELinux: initialized (dev sda1,
  type ext4), uses xattr  | 
| 
 [root@sun Desktop]# dmesg | grep
  -i eth                # 查看网卡代号是eth的信息 udev: renamed network interface
  eth0 to eth2 eth2: no IPv6 routers present  | 
                    
                
                
            
        
浙公网安备 33010602011771号