linux abc

来源:互联网 发布:淘宝详情页图片宽度 编辑:程序博客网 时间:2024/06/04 00:58

通配符

* 表示任意个
表示一个字符
[abc] 表示abc中的一个
- 表示可选参数
如head -20 file表示输出file的前20行
<>表示重定位,前者后面加文件表示输入重定位,后者加上文件名表示输出重定位
| 管道符

sort <in | head -30

表示对in中的数据进行排序,输出直接输入到head程序中。head输出前三十行。
多个管道符可以连成管线(pipeline)

grep ter *.t |sort|head -20|tail -5>foo

执行过程如下:
以.t结尾的文件中包含ter的行被写入标准输出后排序,这些内容前20行被head选择出来传给tail,他将最后五行(16-20)传给foo
后台运行一个程序是命令后加&

wc -l <a >b &

运行字数统计程序wc,来统计输入文件a中的行数(-l),并将结果输入到b中,不过整个过程都在后台运行。
可以写shell脚本

基础命令

cp 复制
mv 移动
rm 删除
grep 文本搜索(匹配正则)
http://www.cnblogs.com/end/archive/2012/02/21/2360965.html
cat 将多个文件链接到标注输出
chmod change mode 修改文件保护模式
cut 从一个文件中剪切一段文字
head 返回文件前几行
mkdir 创建目录
rmdir 删除目录
tail 提取文件最后几行
ps 李处正在运行的进程
paste 粘贴
pr 打印格式化文件
ls 列出目录
make 编译生成二进制文件
od 八进制显示?有什么用?
tr 字符集间切换

对于 /bin,/sbin,/usr/sbin,/usr/bin 目录

转自http://blog.chinaunix.net/uid-26696487-id-3786330.html
/sbin 下的命令属于基本的系统命令,如shutdown,reboot
/bin下存放一些普通的基本命令,如ls,chmod等
/sbin目录下的命令通常只有管理员才可以运行,/bin下的命令管理员和一般的用户都可以使用。
/bin是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/sbin一般是指超级用户指令。主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
/usr/bin 是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。
/usr/sbin 放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。
如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么
首先就要考虑root 的$PATH里是否已经包含了这些环境变量。
可以查看PATH,如果是:PATH=$PATH:$HOME/bin则需要添加成如下:
PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin

ubuntu目录结构

转自http://www.cnblogs.com/zf2011/archive/2012/05/17/2505847.html
/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中

/bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。

/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可

/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。

/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。

注:/etc/X11存放与x windows有关的设置。

/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据

/lib:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。

/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found

/mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。

/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下

/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等

/root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。

/sbin:/usr/sbin:/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能”查看”而不能设置和使用。

/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下

/srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内

/usr:应用程序存放目录

      /usr/bin存放应用程序      /usr/share存放共享数据      /usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。      /usr/local:存放软件升级包。      /usr/share/doc:系统说明文件存放目录。      /usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间

/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log

      /var/log/message:所有的登录文件存放目录      /var/spool/mail:邮件存放的目录      /var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间

进程相关

ps -e查看所有进程
ps -aux 显示所有进程
ps -af 列出当前用户所有跟terminal关联的进程详细信息

chattr和lsattr

http://www.ha97.com/5172.html

PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。

  • :在原有参数设定基础上,追加参数。
  • :在原有参数设定基础上,移除参数。
    = :更新为指定参数设定。
    A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
    S:硬盘I/O同步选项,功能类似sync。
    a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
    c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
    d:即no dump,设定文件不能成为dump程序的备份目标。
    i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
    j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
    s:保密性地删除文件或目录,即硬盘空间被全部收回。
    u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
    各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

应用举例:

1、用chattr命令防止系统中某个关键文件被修改:
chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

lsattr /etc/resolv.conf
会显示如下属性
—-i——– /etc/resolv.conf

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
chattr +a /var/log/messages

chmod

chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
1)文字设定法:
命令格式:chmod [对象][+|-|=][权限] 文件名
对象:u-目录或者文件的所有者;g-目录或者文件的所有组;o-除了目录或者文件所有者和所有组的用户或者群组;a-所有的用户及组。
文字权限的表示:r-读权限;w-写权限;x-执行权限
用法示例:
给zhidao.txt文件的所有者添加读权限
chmod u+x zhidao.txt
2)数字设定法
命令格式:chmod [权限] 文件名
数字权限的表示:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。数字设定法需要同时设定u、g、o三组用户的权限,依次用3个8进制数表示。
用法示例:
设置zhidao.py的所有者和所有组可读写、可执行,其它用户及可读、可执行不可写
chmod 775 zhidao.py

0 0