1、linux目录结构

/     根目录,最高级别


/bin  系统基本命令存放目录(/usr/bin)


/boot linux的内核及引导系统程序文件存放目录(如:vmlinuz、initrd.img)


      一般情况下,GRUB或LILO系统引导管理也位于这个目录


/dev  设备文件存储目录,如声卡、光驱...


/ect  存放系统设置文件(如用户账号密码、服务器配置文件等)


/home 普通用户家目录,默认存放目录


/lib  库文件存放目录


/lost+found  在ext2或ext3文件系统中,当系统以外崩溃或机器意外关机,而产生一些文件碎片放在这里。


/media 即插即用型存储设备的挂载点自动在这个目录下创建。


       如USB盘系统自动挂在后,会在这个目录下产生一个目录;


/mnt   存放挂载存储设备的挂载目录


/opt   表示可选的意思,有些软件包也会被安装在此,也就是自定义软件包,


/proc  操作系统运行时,进程(正在运行的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在此。 /proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统


/root  linux超级权限用户root的家目录


/sbin  大多是涉及系统管理的命令的存放,只有超级权限用户root才可执行命令存放,普通用户无权限执行此目录下的命令


       与 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目录相似


       (sbin,只有root权限才能执行)


/tmp   临时文件目录,有时用户运行程序的时候,会产生临时文件。


       /var/tmp目录和此目录相似


/usr   系统存放程序的目录,如命令、帮助文件等。这个目录下有很多的文件和目录。


       大部分Linux发行版提供的软件包都安装在此,涉及服务器的配置文件就安装在/ect中。


       /usr/share/fonts 字体目录


       /usr/share/man 或 /usr/share/doc 帮助目录


       /usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin    普通用户可执行文件目录


       /usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超级权限用户root可执行命令存放目录


       /usr/include 程序头文件存放目录


/var   (vary)此目录经常变动


       /var/log 用来存放系统日志


       /var/www 用来定义Apache服务器站点存放


       /var/lib 用来存放一些库文件,如MySQL的,以及MySQL数据库的存放地。

2、基本命令

--查看帮助   *** --help   *** --?


--查看详细帮助  man ***


--登录 login


--退出窗口 exit


--关机 shutdown


--重启 reboot


--进入根目录 cd /


--回上层目录 cd ..


--查当前目录 pwd


--列出当前目录内容 ls


      -l(树详细显示目录内容)


      -m(横列显示目录内容,是屏幕长度显示)


      -a(列出全部文件,包括隐藏文件)


      -S(以文档大小排序)


--创建目录 mkdir dname


--删除目录 rmdir dname


      rm -r *** -(递归删除该目录下所有内容,询问每个准备删除的文件)


      rm -rf ***-(强制删除该目录下所有内容,不询问)


--创建空白文件 touch ***


      (ps:从技术的角度来讲,linux的文件后缀名没有任何意义)


--复制 cp


      cp -r **1 **2 (复制1到2中)


--移动 mv


      mv -t **1 **2 (把2移动到1中)


--查看文本 cat  由第一行开始显示文本內容


           tac  从最后一行显示,可以看出 tac 是 cat 的倒着写


           more 一页一页的显示文档內容


           less 与 more 类似,可以往前翻页


           head 只看头几行


      -N(数字,可根据行数显示)


           tail 只看后几行


      -N(数字,可根据行数显示)


           nl   显示的時候,顺序输出行号


           od   以二进制位的方式读取档案內容


--查找文本 find [路径][查找类型][搜索文件名]


           如查找rc.local  find /etc -name *.local


--查找命令信息及其位置   whereis 命令


           如 whereis ls


--查看环境变量 echo $SHELL


           如 echo $PATH (分大小写:分隔符是:,windows是echo %path%;)


--链接 ln


           如 ln joe.txt a (硬链接,如同复制一个新文件,joe.txt删除后,a还存在)


    a是链接的名称,a和joe.txt同步,然后a的内容和joe.txt一样


    joe.txt改变,a也跟着变


    如 ln -s joe.txt b (软链接,如同创建一个快捷方式,joe.txt删除后,b不存在)


--grep(很常用) 在指定的文本文件中查找指定的字符串


    grep 字符串 文件名

----信息显示命令----

--date     显示和设置日期


--stat     显示指定文件的相关信息


--who、w   显示在线登录用户


--whoami   显示用户自己的身份


--id       显示当前用户的id信息


--hostname 显示主机名称


--uname    显示操作系统信息


--dmesg    显示系统启动信息


--du       显示指定的文件(目录)已使用的磁盘空间


--df       显示文件系统磁盘空间的使用情况


--free     显示当前内存和交换空间的使用情况


--fdisk -l 显示磁盘信息


--locale   显示当前语言环境


3、挂载点(mount 设备目录 挂载目录)

--访问设备 (那设备当成一个文件,和另外一个文件夹进行绑定)


--例如挂载光驱:步骤 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接访问光驱内容


--卸载挂载设备(umount /dev/cdrom)--注意必须先退出挂载目录,否则出现"device is busy"错误.


4、用户设置

--切换用户(switch user) su username


    小技巧:直接exit切换


--添加用户 useradd username [-g] [组名](分配到某个用户组)


  (创建后会自动在/home目录下创建该新用户的文件夹,如/home/username)


--设置密码 passwd username


--cd /etc


--查看用户信息 more password


--添加用户组 groupadd groupname


--查看用户组信息 more group


--删除用户组 groupdel groupname


--修改用户 usermod [-g] [组名] [用户名]


--删除用户 userdel username


5、权限file privilege

--linux把文件的权限分成四种:r:read  w:write  x:execute  -:none


如:-rw-r--r--


    lrwxrwxrwx


    drwxr-xr-x


    drwxr-xr-x


  第一个数字'-'代表文件,其余是文件夹,后9位分为3组,每组有四种权限设置rwx-


  第一位表示文件所有者


  第二位表示和所有者在同一用户组的用户


  第三位表示不在同一用户组的用户权限


--设置权限 (随意应用,灵活组合!)


1、普通用法


  --添加权限  [chmod +x 文件]


    如:-rw-r--r-- ---> -rwxr-xr-x


  --删除权限  [chmod -x 文件]


    如:-rwxr-xr-x ---> -rw-r--r--


  --给自己添加权限  [chmod ?+x 文件]


    如此类推,组--g,其他人--o


    如:chmod u+x   -rw-r--r-- ---> -rwxr--r--


       chmod g+x   -rw-r--r-- ---> -rw-r-xr--


       chmod o+x   -rw-r--r-- ---> -rw-r--r-x


2、专业用法  chmod 755/777


  --原理,八进制转二进制


      如755,111 101 101, rwx r-x r-x


        777,111 111 111, rwx rwx rwx


--修改所有者权限 chown (change owner)


  如:chown 原来文件 file1 的所有者是 root,改成joe的


      chown joe file1


6、管道

    --使用方法:


        命令1|命令2|命令3......|命令n


    --使用举例


      --$ls -Rl /etc | more


        (如 ls -Rl /etc (在控制台模式下,无法返回前面过去的信息),因此需要管道执行该查询,实现分页的工作, ls -Rl /etc | more)


      --$cat /etc/passwd | wc


        (显示文件结果,再数数有多少行)


      --$cat /etc/passwd | grep  lrj


        (显示文件结果,再查找包含lrj的行)


      --#dmesg | grep eth0


        (显示系统启动的信息,再查找包含eth0的行--真正含义,检查网卡执行信息是否正常)


      --$man bash | col -b > bash.txt


          语  法:col [-bfx][-l<缓冲区列数>]


          补充说明:在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符">"和">>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。


          参  数:


            -b   过滤掉所有的控制字符,包括RLF和HRLF。


            -f   滤除RLF字符,但允许将HRLF字符呈现出来。


            -x   以多个空格字符来表示跳格字符。


            -l<缓冲区列数>   预设的内存缓冲区有128列,您可以自行指定缓冲区的大小。


      --$ls -l | grep "^d"


        (用正则表达式筛选出目录列表中 头字母为'd' 的内容--目录)(^是正则表达式开头部分)


      --$ls -l * | grep "^-" | wc -l


        (列出目录列表中 头字符为'-'的内容--文件,并统计显示的行数wc -l)


  --wall(warning all) 通知所有人


  a.命令替换


    如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)


  b.重定向


      重定向输出:


      如 ls > cmd.txt ,把文件写到cmd.txt,不输出在控制台


         ls >> cmd.txt ,把文件追加写到cmd.txt


      重定向输入:


      如 wall > cmd.txt,把文本内容发给所有人


7、修改系统的默认系统级别

  常用3和5


  3 - 多用户状态(有NFS)


      NFS - Network File System 网络文件系统,联网系统


  5 - 图形界面


PS.设置用户权限: sudo chmod 777 目录


   4表示读,2表示写,1表示执行.


   第一位表示文件所有者,第二位表示和所有者在同一用户组的用户,第三位表示不在同一用户组的用户权限.


   755表示文件所有者可读写,执行.


   第二位5表示与所有者在同一用户组的可读,可执行,不可写.


   第三位5表示其它组可读,可执行,不可写.

tar命令

  1. 作用


  tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。


  2. 格式


  tar [主选项+辅选项] 文件或目录


  3. 主要参数


  使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。


  3.1 主选项:


  -c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。


  -r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。


  -t 列出档案文件的内容,查看已经备份了哪些文件。


  -u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。


  -x 从档案文件中释放文件。


  3.2 辅助选项:


  -b 该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512 bytes)。


  -f 使用档案文件或设备,这个选项通常是必选的。


  -k 保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。


  -m 在还原文件时,把所有文件的修改时间设定为现在。


  -M 创建多卷的档案文件,以便在几个磁盘中存放。


  -v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。


  -w 每一步都要求确认。


  -z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。


  例如:


  1.将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz,我们可以使用


  tar czvf this.tar.gz ./*.txt


  2.将当前目录下的this.tar.gz中的文件解压到当前目录我们可以使用


  tar xzvf this.tar.gz ./

 tar – zcvf benet.tar.gz /mnt 把目录打包并压缩
 tar – zxvf benet.tar.gz 压缩包的文件解压恢复
 tar – jxvf benet.tar.bz2 解压缩

sudo nautilus 打开文件(有 root 权限)
su root 切换到“ root ”
cd - 回上一次所在的目录
fdisk fdisk -l 查看系统分区信息
chgrp chgrp root /home 把 /home 的属组改成 root 组
Useradd 创建一个新的用户
Groupadd 组名 创建一个新的组
Passwd 用户名 为用户创建密码
Passwd -d 用户名 删除用户密码也能登陆
Passwd -S 用户名 查询账号密码
Usermod -l 新用户名 老用户名 为用户改名
*Userdel – r 用户名 删除用户一切
uname -a 查看内核版本
cat /etc/issue 查看 ubuntu 版本
lsusb 查看 usb 设备
sudo ethtool eth0 查看网卡状态
cat /proc/cpuinfo 查看 cpu 信息
lshw 查看当前硬件信息
sudo fdisk -l 查看磁盘信息
df -h 查看硬盘剩余空间
free -m 查看当前的内存使用情况
ps -A 查看当前有哪些进程
kill 进程号 ( 就是 ps -A 中的第一列的数字 ) 或者 killall 进程名 ( 杀死一个进程 )
kill -9 进程号 强制杀死一个进程


常用 apt 命令:

apt-cache search package 搜索包


apt-cache show package 获取包的相关信息,如说明、大小、版本等


sudo apt-get install package 安装包


sudo apt-get install package - - reinstall 重新安装包


sudo apt-get -f install 修复安装” -f = – fix-missing ”


sudo apt-get remove package 删除包


sudo apt-get remove package - - purge 删除包,包括删除配置文件等


sudo apt-get update 更新源


sudo apt-get upgrade 更新已安装的包


sudo apt-get dist-upgrade 升级系统


sudo apt-get dselect-upgrade 使用 dselect 升级


apt-cache depends package 了解使用依赖


apt-cache rdepends package 是查看该包被哪些包依赖


sudo apt-get build-dep package 安装相关的编译环境


apt-get source package 下载该包的源代码


sudo apt-get clean && sudo apt-get autoclean 清理无用的包


sudo apt-get check 检查是否有损坏的依赖


清理所有软件缓存(即缓存在 /var/cache/apt/archives 目录里的 deb 包 )


sudo apt-get clean 

系统管理

env #查看环境变量


export NAME=....    #设置环境变量  例如export CC=gcc-4.4 


echo $name  #查看环境变量,例如: echo $CC


ps #查看进程


passwd #修改密码 (要先取得root权限)


date #查看帮助  date -s 19/10/2006 #修改日期  date -s 13:12:00 #修改时间


chkconfig    #Ubuntu 中查看服务命令,要先安装才能使用


ifconfig #查看网络配置



程序安装与编译

gcc  #编译器,例如gcc main.c -o main 详情看help


gdb  #调试


./file #执行,如./cofigure 常用于编译前配置文件,



文件管理: 

file filename    #查看文件类型


mkdir hb #新建目录 加参数-p建立有层次的目录,如:mkdir -p hb/work  


rmdir hb           #删除目录


du  #磁盘占用


shell编程

 #!/bin/bash            


 #文件名为myshell.sh 首句不是注释,标示要使用的shell,


 echo $SHELL


 echo "hello,my shell"   #显示字符串


运行: ./myshell.sh



perl编程语言

 #!/usr/bin/perl           


#文件名为hello.pl,每个perl程序都以此开头 


print 'hello,this is a perl program  '; # 显示一个字符串


输入  ./hello.pl   #运行



qemu虚拟机使用

qemu -hda ./linux-0.2.img #后面为镜像文件路径



自动交叉编译工具cross-ng安装 

aptitude install build-essential     # 安装常用开发包


aptitude install bison flex automake libtool texinfo cvs curl #安装常用软件包


aptitude install  gcj g++ subversion gawk   libncurses5-dev zliblg-dev patch 


wget http://ymorin.is-a-geek.org/download/crosstool-ng/crosstool-ng-1.5.2.tar.bz2


tar jxvf crosstool-ng-1.5.2.tar.bz2  从网上下载与解压


./configure --local


make


make install


./ct-ng menuconfig  出现图形界面


./ct-ng build         编译


ubuntu设置环境变量

在/etc/profile 和 /etc/bash.bashrc文件中末尾增加 export PATH="$PATH:/usr/local/SPTK/bin"(你所添加的路径,注意等号前后不要空格)。

写在网上主要目的是方便自己查阅,希望没有给其他人带来不适,若有,我表示很抱歉。