linux初学之琐碎知识点整理一

 linux文件系统分配策略:

块分配( block allocation ):磁盘上的文件块根据需要分配给文件,避免了存储空间的浪费。但当文件扩充时,会造成文件中文件块的不连续,从而导致过多的磁盘寻道时间。每一次文件扩展时,块分配算法就需要写入文件块的结构信息,也就是 meta-dada meta-data总是与文件一起写入存储设备,改变文件的操作要等到所有meta-data的操作都完成后才能进行,
扩展分配  ( extent allocation ):文件

创建时,一次性分配一连串连续的块,当文件扩展时,也一次分配很多块。meta-data在文件创建时写入,当文件大小没有超过所有已分配文件块大小时,就不用写入meta-data,直到需要再分配文件块的时候。

注: meta-data 元信息:和文件有关的信息,比如权限、所有者以及创建、访问或更改时间等。

文件的记录形式:

linux文家系统使用索引节点(inode)来记录文件信息。索引节点是一种数据结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。

索引节点号:一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一的元素对应。每个索引节点在数组中的索引号

连接:linux文件系统将文件索引节点号和文件名同时保存在目录中,所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接

硬连接: 原文件名和连接文件名都指向相同的物理地址。目录不能有硬连接;硬连接不能跨文件系统(不能跨越不同的分区),文件在磁盘中只有一个拷贝。 由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此硬连接可以防止不必要的误删除。
软连接: ln -s 命令建立文件的符号连接。符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。没有防止误删除的功能。

虚拟文件系统VFS:位于文件系统的最上层,管理各种逻辑文件系统,并可以屏蔽各种逻辑文件系统之间的差异,提供统一文件和设备的访问接口

文件类型
   
普通文件 通常是流式文件
   
目录文件 用于表示和管理系统中的全部文件
   
连接文件 用于不同目录下文件的共享
   
设备文件 包括块设备文件和字符设备文件,块设备文件表示磁盘文件、光盘等,字符设备文件按照字符操作终端、键盘等设备。
   
管道(FIFO)文件 :  提供进程建通信的一种方式
   
套接字(socket) 文件: 该文件类型与网络通信有关

 

linux常用命令

# 表示权限用户(:root),$ 表示普通用户
  
开机提示login:输入用户名
  password:
输入口令   用户是系统注册用户成功登陆后,可以进入相应的用户环境.
  
退出当前shell,输入:exit
2.useradd netseek
添加一个netseek用户
  passwd netseek  
netseek这个用户设置密码.
  (/etc/passwd /etc/group)
  userdel netseek
删除账号
  userdel -r netseek
删除账号连同自家目录.
  

useradd命令的参数较多 常用的组合为 
useradd  用户名 -g 组名 –G 组名 -d Home目录名 -p 密码
其中   -g指定该用户的首要组
    -G指定该用户的次要组
    -d 指定该用户的 Home目录
    -p 指定该用户的密码
如输入以下命令 
useradd oracle –g oinstall –G dba –d /home/oracle –p ora123
系统将创建一个用户 oracle oracle用户的首要组为 oinstall 次要组为 dba
Home 目录为/home/oracle 密码为 ora123

查看命令
  ls -l               
显示文件列表
  ls -al        -a
显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
  ls -al |grep '^d'   
显示目录
  ls -al |grep '^[^d]'
在一个目录中查询不包含目录的所有文件
  ls -sh        (man ls
查看man帮助.)
  
  linux
几种文件类型:
  d   
表示此文件是一个目录
  -   
表示此文件是一个普通文件
  b   
表示此文件是一个特殊的块设备I/O文件
  c   
表示此文件是一个特殊的字符设备I/O文件


  l   
表示此文件是一个连接文件。在其文件名称后紧跟与它连接的文件路径及名称
  file
命令通过探测文件内容判断文件类型
4.
建立文件和目录
  touch 1.txt
  cat > 2.txt (
用定向符创建文件,填写内容后,按ctrl+d保存内容)
  mkdir mywork
建立mywork这个目录
5.
拷贝文件或目录
  cp filename1 filename2
  cp -r dir1 dir2
复制目录
  cp -rf
参数f是删除已经存在的目标文件而不提示
  cp -i  
参数if相反,在覆盖目标文件之前将给出提示要求用户确认,回答y时目标文件将被覆盖,是交互式拷贝.
6.
删除文件和目录(删除文件或目录都可以用rm搞定)
  rm 1.c //
1.c这个文件删除
  rm -rf (
强制删除文件或目录,删除时不提示.)
7.
移走目录或者改文件名
  mv [opitons]
源文件或目录   目标文件或目录
  [options]
主要参数
  -i:
交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”“n”
     
这样可以避免误覆盖文件.
  -f:
禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
  mv hello ../
hello目录或者文件移动上一级.
  
8.alias
别名
  alias dir='ls -l'   
输入dir,其实就相当于执行了ls -l
9.
权限的控制(rwx 421)
  chmod +x hello.sh
赋于可执行权限.
  (
详细介绍一下权限的控制)
  chmod
命令 权限修改 用法:chmod 一位8进制数 filename (rwx 421)
 eg: chmod u+x filenmame      只想给自己运行,别人只能读
  chown netseek.netseek mydir  
改变用户属组
    u
:表示文件所有者
    g
:表示同组用户
    o
:表示其它用户
    a
:表示所有用户
    opt
则是代表操作,可以为:
    +
:添加某个权限
    -
:取消某个权限
    =
:赋予给定的权限,并取消原有的权限
   
mode则代表权限:
    r
:可读 4
    w
:可写 2
    x
:可执行 1
10.pwd
显示当前目录完整路径和改变目录
  cd netseek
进入netseek这个目录
  cd
退出当前目录
  cd ../
进入上一级目录.
  cd -
返回上一次目录
  cd ~
返回主目录
11. cat,more,less
命令
  
将某个文件的内容显示出来,两个命令不同的是:cat 把文件内容一直打印出来,而more则分展显示.
  less
可以上下翻滚查看内容.


  cat > 1.txt
可以填写或者复制内容,ctrl+d保存
  cat 1.c
  more 1.c
  head -n filename
显示第N行的内容
  tail -n filename
显示后N行的内容
  tail -n 20 /var/log/message
显示最新的20行日志
12.
设置linux时间和日期
  date
命令("date MMDDhhmmYYYY.ss")
  2006
72412:37 ,30
  date 072412372006.30
  date -s 20:30:30 #
设置系统时间为20: 30:30
  date -s 2006-7-24 #
设置系统时期为2006-7-24
  clock -r #
对系统Bios中读取时间参数
  clock -w #
将系统时间(如由date设置的时间)写入Bios
13.
查看找文件(find,grep,awk更多的请参照man pageshell编程专题讲解)
  
几种介绍:
  find
路径  -name 文件名
  find /etc -name named.conf
  locate
通过文件名搜索文件的工具(要先通过updatedb建立索引数据库)
  localte named.conf
  whereis
是寻找二进制文件,同时也会找到其帮助文件
  which
where 相似,只是我们所设置的环境变量中设置好的路径中寻找;比如;
14.
查杀进程
  ps aux
  ps -ef |grep
  kill -9
  
看看哪个进程占用的内存最大
  ps -aux|sort +5n
  
将程序放在前后台执行


  cp file1 file2 &
  &
ctrl+z 你可以使用&ctrl+z来将命令放在后台执行.
  fg
是将放在后台执行的程序再放回前台.
  jobs
15.dd
命令备份
  dd if="input_file" of="out_file" bs="block_size" count="number"
  
参数:
  if:
就是input file可以是设备
  of:
就是output file也可以是设备
  bs:
规划的一个block的大小,如果没有设定时,预设是512bytes
  count:
多少个bs的意思.
  dd if=/etc/password of=/tmp/passwd.bak
备份
16.mount
加载一个硬件设备
  用法:mount [参数] 要加载的设备 载入点
  eg: mount /dev/cdrom
  cd /mnt/cdrom //进入光盘目录
   u
:
   mkdir /mnt/usb
;(注:创建挂载目录)
   mount /mnt/sda1 /mnt/usb
(注:挂载U)
   
现在就可以使用U盘了,在/mnt/usb目录下的内容就是U盘里的内容了;
   
使用完后,用以下命令卸载U盘即可。
   umount /mnt/usb
   mount     
列出系统所有的分区
   mount -t iso9660 /dev/cdrom /mnt/cdrom   
挂载光盘
   mount -t vfat /dev/fd0 /mnt/floppy      
挂载软盘
   mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/hda2   
挂载fat32分区
   mount -t ntfs -o nls=utf8,umask=000 /dev/hda3 /mnt/hda3         
挂载ntfs分区
   Linux-NTFS Project:
http://linux-ntfs.sourceforge.net/
   umount /mnt/hda3
缷载


   
:挂载设备前,请先fdisk -l 看一下.
17.su
在不退出登陆的情况下,切换到另一个身份
   
用法: su -l 用户名(如果用户名缺省,则切换到root状态)
  eg:su -l netseek (切换到netseek这个用户,将提示输入密码),加上-表示切换到用户的环境变量.
   
    sudo
利用他可以执行root执行的权限
18.whoami,id,w,lastlog,users,groups
   w      
查看用户登陆信息
   who     
查看当前登陆用户
   last   
最近一个月用户登陆情况
   lastlog
检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容
   whoami  
确认自己身份.
   id      
打印出自己的UID以及GID.(UID:用户身份唯一标识.GID:用户组身份唯一标识.每一个用户只能有一个唯一的UIDGID.)
   users
   groups  
用户所归属的用户组查询;
   finger -l netseek root
   finger -s
或者直接finger
   
可以让使用者查询一些其他使用者的资料
  eg: finger //查看所用用户的使用资料
  finger root //查看root的资料
19.
用户用过的命令和执行历史执行的命令
   history
显示用户过去命用的命令
   !!
执行最近一次的命令
20.uname
查看linux系统信息
   
参数:-a 所有信息 -r 版本号 -n 主机名


21.
建立软连接
   ln [-sf] source target
   ln souce-file hard-link
   ln -sf source-file soft-link
   s
表示软连接,f表示,若有同名文件在,则将它覆盖过去.
   
注:硬链接不能为目录创建,只有文件才能创建硬链接。
22.
查看目录
   du -sh   
目录或者文件
   du -m    du
系统默认输出是以KB,以参数-m表示以MB显示.
   cat /etc/fstab   
查看分区列表
   fdisk -l  
   df -h
   df -ah
23.
查看linux系统占用的资源(top,free,uptime)
   top   
查看后台程序,监控系统性能
   top -d 2
每两秒列新一次
   top -d -2 -p3690
查看某个PID
   top -b -n 2 >/tmp/top.txt
top的信息进行2次,然后将结果输出到/tmp/top.txt
   
   free -m
查看系统内存使用情况
   uptime  
显示目前系统开机时间(查看开机多久,多少人登陆,过去1,5,15分钟系统的负载)
24.
文件比软件:
   cmp  cmp
“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户
   diff diff
命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户


25.
远程操作与文件传输
   ssh
user@remote.machine
   scp
user@remote.machine
:/remote/path /local/path
   scp /local/path
user@remote.machine
:/remote/path
26.
编译c/c++文件
   gcc
   gcc -v
查看GCC版本
   gcc -o test test.c 2>errfile
编译test.c时若有错误信息,则将错误信息重定向到errfile
27.chattr +i filename
禁止删除,chattr -i filename 取消禁止
   lsattr
查看隐藏档属性
28.
自动化执行
   at
执行一次
   crontab
定时循环执行程序
   crontab
介绍
   1
root登录
   2 # crontab -e
   3
加入一行
   1 */12 * * * /usr/sbin/ntpdate pool.ntp.org
   
分钟 (0-59
   
小時 (0-23
   
期 (1-31
   
月份 (1-12
   
星期 (0-6//0代表星期天
29.
关机和重启:
   shutwond [-t
秒数] [-rkhncff] 时间 [警告信息]
   -t
秒数:设置在切换至不同的runlevel之前,警告和删除两信号之彰间的延迟时间()


   -k
发出警告信息,但不是真的要shutdown
   -r shutdown
这后重新开机
   -h shutdown
这后开机
   -n
不经过init,shutdown命令本身来做开机工作(不建议你使用)
   -f
重新开机时,跳过fsck指令,不检查文件系统.
   -F
重新开机时,强迫做fsck检查.
   -c
将已经正在shutdown的动作取消
   shutdown -h now
立刻关机,其中now相当于时间为0,halt,poweroff也可以关机,或者直接init 0
   shutdown -h 20:30  
系统将在今晚的8:30关机
   shutdown -h +10   
系统再过十分钟后自动关机.
   shutdown -t3 -r now  
立刻重新开机,但在警告和删除processes这间,
   shutdown -k now  'Hey! Go away! now...'
发出警告信息,但没有真的关机.
   
   
   reboot:
   shutdown -r now
几乎与reboot相同,不关建议用reboot执行如下:
   shutdown -r +30 'The system wiil reboot'
   shutdown -r +10 'Hey!Go away!'  10
分钟后系统重启.
   #sync; sync; sync; reboot   
注:sync将数据同步写入硬盘
   halt
命令相当于shutdown -h now ,表示立刻关机。
   reboot
命令相当于shutown -r now ,表示立刻重起。
30.
如何改变启动模式运行级别
   vi /etc/inittab
   
5改成3,启动后就可以变成字符模式。
   startx
或者 init 5 就可以进入图形化界面.
   runlevel
显示当前运行级别
  
如何切换至单用户模式
  
利用telinitinit(其实telinit只是一个synbol link to init)
  telinit 1
或者 init S 即可,当然telinit S也是可以的.


  
如何使ctrl+alt+del 三键失效的方法
  #vi /etc/inittab
  
ca::ctrlaltdel:/sbin/shutdonw -t3 -r now之前加上注释#
  
然后执行#telinit q ,参数q是要telinit重新检查一次/etc/inittab
31.TAB  
巧用tab键,当你不知道文件或命令的全名是请连续按两下tab.
32.clear
清屏
33.dmesg |more
显示开机信息(查看系统启动时硬件信息)
  
34.
改变程序执行的优秀级
   nice   
设置优先权 nice -n -5 vi & root给一个nice值为-5,用于执行vi
   renice  
调整已存在优先权
35.
模块相关的命令
   lsmod
显示已经载入系统的模块
   depmod
分析可载入系统的相依性
   modinfo
显示kernel模块的信息
   insmod  
载入模块
   modprobe
自动处理可载入模块
   rmmod   
删除模块
  
36.chkconfig --list
显示各种服务的状态,利用chkconfig可以轻松管理init脚本.
37.linux
的几种解压缩命令
   compress aaa  
aaa文件压缩成为aaa.Z
   compress -d aaa.z
aaa.z文件压缩成aaa
   
   gzip aaa
压缩命令
   gzip -d aaa.gz  
解压命令
   
   bzip2 -z filename
压缩,同上加-d参数解压


   bzcat filename.bz
查看压缩文件内容
   
   tar czvf aaa.tar.gz aaa
将目录aaa压缩成aaa.tar.gz
   tar -N '2007/03/01' -zcvf home.tar.gz /home
/home当中,2007/03/01新的文件才备份.
   tar --exclude /home/cao -zxvf myfile.tar.gz /home/* /etc
要备份/home,/etc,但不要/home/cao
   cd /tmp; tar -cvf -/etc | tar -xvf -
/etc/打包后直接解开/tmp底下,而不产生文件.
   tar zxvf aaa.tar.gz
解压缩命令.
   tar jxvf aaa.tar.bz2
解压命令
   tar zxvf aaa.tar.gz -C /var/www
aaa.tar.gz解压到/var/www目录下
   cpio -covB > [file|device]
备份
   cpio -icduv
还原
38.
网络命令
   ifconfig
显示或设置网络设备,可以查看当前ip,类似于windows里的ipconfig
   service network restart(/etc/rc.d/init.d/network restart)
重启网卡
   ifdown eth0
关闭网卡
   ifup eth0
开启网卡
   route -n
查看路由表
   route add -net 192.168.20.1 netmask 255.255.255.0 dev eth0
   
   netstat
查看网络连接情况
   netstat -i
显示网卡运行情况
   netstat -r
查看主机的路由列表
   
   traceroute
   
   hostname
显示主机名
   hostname -i
显示当前主机名的IP.
39.
系统集成管理菜单.


   setup   
系统服务管理命令
   ntsysv  
设置系统服务
40.fdisk /mbr
删除GRUB
41.
数据库启动
启动mysql
service mysqld start(/etc/rc.d/init.d/mysqld start)
mysql -uroot -p
输入密码即可操作mysql数据库.
启动Oracle
su - oracle
$lsnrctl stop
$lsnrctl start
sqlplus /nolog
conn /as sysdba(connected)
startup
42.
安装软件包
rpm
包安装:
rpm -ivh xxx.rpm         
安装rpm
rpm -qa --last | less   
根据安装日期显示已经安装的包
rpm -qa |grep mysql -i   
查询系统是否安装mysql(-i,忽略大小写)
rpm -e                  
删除安装的软件包
rpm -e mysql* --nodpes   
强制删除相关的软件包
rpm --test               
测试安装
rpm -qi                  
查询mysql套件的说明资料
rpm -qpl xxx.rpm         
查看rpm包内含的内容.
rpm -qc[d]               
设定档与说明档
rpm -Uvh                 
升级安装


rpmbuild --bb SPECS/xxx.spec
重新装将xxx.spec编译成rpm.
rpmbuild --rebuild packagename.src.rpm
重新把.src.rpm编译成rpm.
源码编译安装(经典)
./configure              
检查系统信息(./configure --help | more 帮助信息,可以看到相关的参数设定)
make clean               
清除之前留下的文件
make                     
编译
make install            
安装

 

 userdel
userdel命令用于删除一个已存在的帐号 其用法为 
userdel     用户名
groupadd
groupadd命令可以创建一个新的用户组 其最基本用法为
groupadd   组名
如输入以下命令 
groupadd newgroup
系统将创建一个新的用户组 newgroup 
4. groupdel
groupdel命令用于删除一个已存在的用户组 其用法为
groupdel    组名


3.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值