Linux基础入门

1,dev:(设备)linux的特点,管理任何东西,包括硬件设备,都会每一个设备就是一个文件映射成一个文件,
方便开发者进行读写,(开发应用,监控设备的运行状态)
2,etc:核心的重要文件放在此目录下
3,用户文件的根目录,用于存放用户文件的根目录   --->相当于win7下的C:\Users目录,(在此目录下存放着此计算机中的所有用户)
4,root:admin用户(超级用户,管理员用户)放在此目录下而没有放在home目录下,它的执行文件在sbin目录下,而没在bin目录下
5 ,bin  存放二进制可执行文件(ls,cat,mkdir等)
6,boot  存放用于系统引导时使用的各种文件
7,usr  用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
8,opt  额外安装的可选应用程序包所放置的位置
9,  mnt  系统管理员安装临时文件系统的安装点(挂载,例如硬盘连接到linux上时,远程目录访问也叫挂载:我们把windows的一个目录挂载到linux上,此时linux访问windows上的这个目录就像访问自己的目录一样)


二:文件目录操作命令


进入 home/itcast 目录    ygq@ubuntu:~$   --->ygq:代表用户名   ubuntu:代表机器名   ~:代表用户的路径(home目录所在的目录)  $:代表用户名  
ygq@ubuntu:~$ pwd
/home/ygq

1,pwd:查看当前工作目录(present,work,directory)

2,ls;查看并列出当前目录下的所有文件
 ls 显示文件和目录列表  
  -l 列出文件的详细信息
 -a 列出当前目录所有文件,包含隐藏文件
3,mkdir 创建目录  
 -p 父目录不存在情况下先生成父目录

4,cd 切换目录
5,touch 生成一个空文件
6,echo 生成一个带内容文件--->相当于system.out  输出一段内容
 
ygq@ubuntu:~/family20130810/house/roomB$ echo "hello world"
 hello world  
 
 
ygq@ubuntu:~/family20130810/house/roomB$ echo "you are the best boy">book.txt 将"you are the best boy"写到book.txt文件中  (>重定向符:将要写的数据写到要创建的目录中)
7,cat、tac 显示文本文件内容
 
ygq@ubuntu:~/family20130810/house/roomB$ cat book.txt
 you are the best boy
8,cd ../roomB  -->回到上级目录并进入roomB目录下

9,cp 复制文件或目录
 
q@ubuntu:~/family20130810/house/roomC$ cp doll.txt ../roomB -->需要一个源和一个目的

10,rm 删除文件
 -r 同时删除该目录下的所有文件
 -f 强制删除文件或目录
 
ygq@ubuntu:~/family20130810/house/roomB$ rm doll.txt
11,wc(word,count)wc 统计文本文档的行数,字数,字符数

 ygq@ubuntu:~/family20130810/house/roomB$ wc book.txt
  1  5 21 book.txt -->一行,5个单词,21个字符
12,grep 在指定的文本文件中查找指定的字符串
 
ygq@ubuntu:~/family20130810/house/roomB$ grep "best" book.txt
 you are the best boy
13,mv 移动文件或目录、文件或
   mv  aaa bbb 将aaa改名为bbb

 ygq@ubuntu:~/family20130810/house$ mv sofa.txt roomB -->有源和目的地
 查看:
  
gq@ubuntu:~/family20130810/house/roomB$ ls
  bed.txt  book.txt  sofa.txt
  //移动并修改文件名称
  
ygq@ubuntu:~/family20130810/house/roomB$ mv sofa.txt ../sofa-son.txt

14,find 在文件系统中查找指定的文件
 -name  文件名

 ygq@ubuntu:~/family20130810$ find -name book.txt
 ./house/roomB/book.txt
 ./house/roomC/book.txt

15,rmdir 删除空目录

 ygq@ubuntu:~/family20130810/house/roomA$ touch bed.txt
 
ygq@ubuntu:~/family20130810/house/roomA$ ls
 bed.txt
 
ygq@ubuntu:~/family20130810/house/roomA$ cd ..
 
ygq@ubuntu:~/family20130810/house$ rmdir roomA
 rmdir: failed to remove `roomA': Directory not empty
 
ygq@ubuntu:~/family20130810/house$ rm roomA
 rm: cannot remove `roomA': Is a directory
 
ygq@ubuntu:~/family20130810/house$ rm -r roomA
 
ygq@ubuntu:~/family20130810/house$ ls
 roomB  roomC  sofa-son.txt
16,tree 显示目录目录改名树

17,ln 建立链接文件(相当于windows中的快捷方式)
 
ygq@ubuntu:~/family20130810$ sudo ln -s /home/ygq/family20130810/house/roomB /home/rB
 
ygq@ubuntu:~/family20130810$ cd /home
 
ygq@ubuntu:/home$ ls
 rB  ygq

 ygq@ubuntu:/home$ cd rB
 
ygq@ubuntu:/home/rB$ pwd
 /home/rB
 
ygq@ubuntu:/home/rB$ ls
 bed.txt  book.txt  roomB
 
ygq@ubuntu:/home/rB$ cat book.txt
 you are the best boy
18,more、less 分页显示文本文件内容
 
ygq@ubuntu:/home/rB$ more book.txt
 you are the best boy

19,Head、tail分别显示文件开头和结尾内容

 ygq@ubuntu:/home/rB$ man head
 
ygq@ubuntu:/home/rB$ head -n0 book.txt
 
ygq@ubuntu:/home/rB$ head -n1 book.txt
 you are the best boy
 
ygq@ubuntu:/home/rB$ head -c3 book.txt
 
youygq@ubuntu:/home/rB$ tail book.txt
 you are the best boy
20,man 当不明确命令的使用方式的时候用,格式为:man+所要查询的命令

三;系统管理命令
1,who、w 显示在线登录用户
 
ygq@ubuntu:~$ w
  21:56:44 up  4:16,  3 users,  load average: 0.54, 0.32, 0.34
 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
 ygq      tty7     :0               17:42    4:15m  4:51   1.33s gnome-session
 ygq      pts/0    :0.0             21:25    1:21   0.54s  0.54s bash
 ygq      pts/1    :0.0             21:55    0.00s  0.35s  0.04s w

 ygq@ubuntu:~$ who
 ygq      tty7         2013-08-10 17:42 (:0)
 ygq      pts/0        2013-08-10 21:25 (:0.0)
 ygq      pts/1        2013-08-10 21:55 (:0.0)
2,whoami 显示用户自己的身份
 
ygq@ubuntu:~$ whoami
 ygq

3,uname显示系统信息
 
ygq@ubuntu:~$ uname
 Linux
 
 
ygq@ubuntu:~$ uname -a
 Linux ubuntu 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux
 
ygq@ubuntu:~$
 
 2.6.35-22-generic:linux的版本号,2:主版本号  6:次版本号(偶数时代表稳定的,奇数为不稳定的的版本)  35-22:小版本号
4,hostname 显示主机名称
 
ygq@ubuntu:~$ ^C
 
ygq@ubuntu:~$ hostname
 ubuntu
 
ygq@ubuntu:~$ hostname ubuntu1
 hostname: you must be root to change the host name
 
ygq@ubuntu:~$ sudo hostname ubuntu1
 [sudo] password for ygq:
 
ygq@ubuntu:~$ hostname
 ubuntu1

5,top:显示当前(实时状态)系统中耗费资源最多的进程 (相当于windows中的任务管理器)
 
ygq@ubuntu:~$ top

 top - 22:27:42 up 13 min,  2 users,  load average: 0.59, 0.63, 0.40
 Tasks: 131 total,   1 running, 130 sleeping,   0 stopped,   0 zombie
 Cpu(s): 15.6%us,  3.0%sy,  0.0%ni, 81.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
 Mem:   1025232k total,   635644k used,   389588k free,    39976k buffers
 Swap:   492540k total,        0k used,   492540k free,   454412k cached
 
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
  1528 root      20   0  157m  15m 6636 S 18.5  1.6   0:22.87 Xorg              
  2078 ygq       20   0 89892  13m  10m S  3.3  1.3   0:03.65 gnome-terminal    
  2182 ygq       20   0  2624 1124  844 R  0.7  0.1   0:00.11 top               
  1435 root      20   0 36588 4052 3352 S  0.3  0.4   0:01.83 vmtoolsd          
  1803 ygq       20   0 40420  14m  11m S  0.3  1.4   0:02.33 vmtoolsd          
  1884 root      20   0  5616  728  452 S  0.3  0.1   0:00.24 udisks-daemon     
     1 root      20   0  2892 1688 1224 S  0.0  0.2   0:01.97 init              
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd          
     3 root      20   0     0    0    0 S  0.0  0.0   0:00.09 ksoftirqd/0       
     4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/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.11 events/0          
     7 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cpuset            
     8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper           
     9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns             
    10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr         
    11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm                
 
ygq@ubuntu:~$
6,ps 显示瞬间的进程状态
 
ygq@ubuntu:~$ ps
   PID TTY          TIME CMD
  2082 pts/0    00:00:00 bash
  2214 pts/0    00:00:00 ps

7,du 显示指定的文件(目录)已使用的磁盘空间的总量
 
gq@ubuntu:~$ du /home/ygq/family20130810/
 8 /home/ygq/family20130810/house/roomB
 8 /home/ygq/family20130810/house/roomC
 4 /home/ygq/family20130810/house/roomA
 24 /home/ygq/family20130810/house
 28 /home/ygq/family20130810/

8,df 显示文件系统磁盘空间的使用情况
 
gq@ubuntu:~$ df -h
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda1             9.4G  2.2G  6.8G  25% /
 none                  496M  232K  495M   1% /dev
 none                  501M  252K  501M   1% /dev/shm
 none                  501M  100K  501M   1% /var/run
 none                  501M     0  501M   0% /var/lock
9,ifconfig 显示网络接口信息
 
gq@ubuntu:~$ ifconfig
 eth0      Link encap:Ethernet  HWaddr 00:0c:29:f6:3f:07 
           inet addr:192.168.232.128  Bcast:192.168.232.255  Mask:255.255.255.0
           inet6 addr: fe80::20c:29ff:fef6:3f07/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:209 errors:0 dropped:0 overruns:0 frame:0
           TX packets:207 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:75282 (75.2 KB)  TX bytes:43416 (43.4 KB)
           Interrupt:19 Base address:0x2024

 lo        Link encap:Local Loopback 
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
           TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:720 (720.0 B)  TX bytes:720 (720.0 B)
10,free 显示当前内存和交换空间的使用情况
 
ygq@ubuntu:~$ free
             total       used       free     shared    buffers     cached
 Mem:       1025232     661340     363892          0      40840     478068
 -/+ buffers/cache:     142432     882800
 Swap:       492540          0     492540
11,Alias 设置命令别名
      alias [别名]=[“指令名”]
 
 
ygq@ubuntu:~$ alias showp="ps -ef"
 
ygq@ubuntu:~$ showp ---->此时的showp命令的功能与ps -ef的功能相同

 解除别名:unalias=showp
  
ygq@ubuntu:~$ unalias showp
  
ygq@ubuntu:~$ showp
  No command 'showp' found, did you mean:
   Command 'showg' from package 'nauty' (multiverse)
   Command 'show' from package 'nmh' (universe)
   Command 'show' from package 'astk' (universe)
  showp: command not found
12,Kill 杀死进程
 
ygq@ubuntu:~$ kill -9 2060
13,Clear 清屏
14,tar命令
 命令格式:
 tar [-cxzjvf]   压缩打包文档的名称 欲备份目录
 参数:
 -c :建立一个归档文件的参数指令
 -x :解开一个压缩文件的参数指令!
 -z :是否需要用 gzip 压缩?
 -j :是否需要用 bzip2 压缩?
 -v :压缩的过程中显示文件
 -f :使用档名,在 f 之后要立即接档名
 -tf :查看归档文件里面的文件

将整个/home/itcast/familyA目录下的文件全部打包成为/home/itcast/familyA.tar

仅打包,不压缩

 tar -cvf /home/itcast/familyA.tar /home/itcast/familyA

打包后,以gzip压缩

 tar -zcvf /home/itcast/familyA.tar.gz /home/itcast/familyA

打包后,以bzip2压缩

 tar -jcvf /home/itcast/familyA.tar.bz2 /home/itcast/familyA

 # 特别注意,在参数f之后的文件档名是自己取的,我们习惯上都用.tar来作为辨识
 # 如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar file
 # 如果加j参数,则以.tar.bz2来作为文档名
 
 eg:例子
 //压缩
 
ygq@ubuntu:~$ tar -zcvf family20130810.tar.gz family20130810
 family20130810/
 family20130810/house/
 family20130810/house/roomB/
 family20130810/house/roomB/bed.txt
 family20130810/house/roomB/book.txt
 family20130810/house/roomB/roomB
 family20130810/house/sofa-son.txt
 family20130810/house/roomC/
 family20130810/house/roomC/doll.txt
 family20130810/house/roomC/bed.txt
 family20130810/house/roomC/book.txt
 family20130810/house/roomA/
 family20130810/monther.txt
 family20130810/father.txt
 family20130810/daughter.txt
 family20130810/son.txt
 
ygq@ubuntu:~$ ls
 Desktop    Downloads         family20130810         Music     Public     Videos
 Documents  examples.desktop  family20130810.tar.gz  Pictures  Templates
 
 //解压缩:
 注意:压缩的时候,在原来的目录下还有压缩前的文件,为了在解压缩的时候将原来的文件覆盖,先要将原来的文件备份
 
 
ygq@ubuntu:~$ mv family20130810 family20130810-bak
 
ygq@ubuntu:~$ ls
 Desktop    Downloads         family20130810-bak     Music     Public     Videos
 Documents  examples.desktop  family20130810.tar.gz  Pictures  Templates
 
 //解压
 
ygq@ubuntu:~$ tar -zxvf  family20130810.tar.gz
 family20130810/
 family20130810/house/
 family20130810/house/roomB/
 family20130810/house/roomB/bed.txt
 family20130810/house/roomB/book.txt
 family20130810/house/roomB/roomB
 family20130810/house/sofa-son.txt
 family20130810/house/roomC/
 family20130810/house/roomC/doll.txt
 family20130810/house/roomC/bed.txt
 family20130810/house/roomC/book.txt
 family20130810/house/roomA/
 family20130810/monther.txt
 family20130810/father.txt
 family20130810/daughter.txt
 family20130810/son.txt
14,关机/重启命令
 shutdown系统关机
 r 关机后立即重启
 h 关机后不重新启动
 now 立即关机
 halt 关机后关闭电源
 reboot 重新启动
 
 Shutdown –r 12:30/now
 Shutdown –r now=reboot
 Shutdown –h now=halt
15,Linux 管道
 简单地说,一个通道接受一个工具软件的输出,然后把那个输出输入到其它工具软件。使用UNIX/Linux的词汇,这个通道接受了一个过程的标准输出,
 并把这个标准的输出作为另一个过程的标准输入。如果你没有重新定向这个输出,这个输出就在屏幕上显示出来。使用一个通道,你可以重新定向这个输出,
 这样它就变成了另一个工具软件的标准的输入。
    例如:grep –r “best” /home/*  | more

四:dpkg软件包管理工具 (dpkg(Debian Package)管理工具 ,Ubuntu 相关的软件包文件使用 .deb 后缀,就是因为Ubuntu 与 Debian GNU/Linux 发行版有着紧密的关系)
 1.要安装 .deb 文件可以打开一个终端并输入: sudo dpkg -i package_file.deb   来安装 .deb 文件.
 2.卸载:如需卸载 .deb 文件输入:
  sudo dpkg -r package_name       --->ygq@ubuntu:~$ sudo dpkg -r tree
 注意:在安装的时候,需要进入到.deb文件所在的目录执行安装命令;而在卸载的时候在那个目录下都可以执行

五,APT软件包管理
 APT 使用的一些常用命令:
 安装软件包:
 sudo apt-get install packagename  

 删除软件包:
 sudo apt-get remove packagename  

 获取新的软件包列表:
 sudo apt-get update  

 升级有可用更新的系统:
 sudo apt-get upgrade  

 列出更多命令和选项:
 apt-get help  

六,VIM编辑器的使用
 VIM的运行模式
 编辑模式:等待编辑命令输入
 插入模式:编辑模式下,输入 i 进入插入模式,插入文本信息
 命令模式:在编辑模式下,输入 “:” 进行命令模式
 
 步骤:
 1,ygq@ubuntu:~/family20130810/house$ vi bank.txt  此时进入编辑模式
 2,按"i "进入插入模式,此时可以进行编辑
 3,按"ESC"返回到编辑模式,再按":"进入命令模式

 VIM 使用的命令
 :q 直接退出vi
 :wq 保存后退出vi ,并可以新建文件
 :q! 强制退出
 :w file 将当前内容保存成某个文件
 :set number 在编辑文件显示行号
 :set nonumber 在编辑文件不显示行号


 
七,账户系统文件
 A./etc/passwd 每行定义一个用户账户,此文件对所有用户可读。每行账户包含如下信息:
  用户名:口令:用户标示号:组标示号:注释:宿主目录:命令解释器
     root:x:0:0:RedHat Linux:/root:/bin/bash
  口令是X,说明用户的口令是被/etc/shadow文件保护的
  用户标识号:系统内唯一,root用户的UID为0,普通用户从1000开始,1-999是系统的标准账户
  宿主目录:用户登录系统后所进入的目录
  命令解释器:指定该用户使用的shell ,默认的是/bin/bash
 B./etc/shadow 为了增加系统的安全性,用户口令通常用shadow passwords保护。只有root可读。每行包含如下信息:
     用户名:口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  root:$1$K4gXdkjf$TIKrvWuldq6oQ4HEoFIGQ/:14831:0:99999:7:::
  最后一次修改时间:从1970-1-1起,到用户最后一次更改口令的天数
  最小时间间隔:从1970-1-1起,到用户可以更改口令的天数
  最大时间间隔:从1970-1-1起,必须更改的口令天数
  警告时间:在口令过期之前几天通知
  不活动时间:在用户口令过期后到禁用账户的天数


 C./etc/group
  将用户进行分组时Linux对用户进行管理及控制访问权限的一种手段。一个组中可以有多个用户,一个用户可以同时属于多个组。该文件对所有用户可读。
  组名:组口令:gid:组成员
  root:x:0:root
 D./etc/gshadow
  该文件用户定义用户组口令,组管理员等信息只有root用户可读。
  root:::root

 使用命令行工具管理账户
 useradd 用户名
 useradd –u(UID号)
 useradd –p(口令)
 useradd –g(分组)
 useradd –s(SHELL)
 useradd –d(用户目录)
 usermod –u(新UID)
 usermod –d(用户目录)
 usermod –g(组名)
 usermod –s(SHELL)
 usermod –p(新口令)
 usermod –l(新登录名)
 usermod –L (锁定用户账号密码)
 usermod –U (解锁用户账号)
 userdel 用户名 (删除用户账号)
 userdel –r 删除账号时同时删除目录

 组账户维护命令
 groupadd 组账户名 (创建新组)
 groupadd –g 指定组GID
 groupmod –g 更改组的GID
 groupmod –n 更改组账户名
 groupdel 组账户名 (删除指定组账户)

 口令维护命令
 passwd 用户账户名 (设置用户口令)
 passwd –l 用户账户名 (锁定用户账户)
 passwd –u 用户账户名 (解锁用户账户)
 passwd –d 用户账户名 (删除账户口令)
 gpasswd –a 用户账户名 组账户名 (将指定用户添加到指定组)
 gpasswd –d 用户账户名 组账户名 (将用户从指定组中删除)
 gpasswd –A 用户账户名 组账户名 (将用户指定为组的管理员)

 例子:
  
  
ygq@ubuntu:/etc$ sudo passwd root
  Enter new UNIX password:
  Retype new UNIX password:
  passwd: password updated successfully


  将用户切换到root用户下:
   
ygq@ubuntu:/etc$ su - root
   Password:
   
root@ubuntu:~#
八,用户和组状态命令
 su 用户名  切换用户账户
 su root
 su - root
 id 用户名 显示用户的UID,GID
 whoami 显示当前用户名称
 groups 显示用户所属组
 sudo
 cat /etc/sudoers

九:软件的安装
 1.进入usr目录

 cd /usr

 2.在usr目录下建立java安装目录

 mkdir java

 3.将jdk-6u24-linux-i586.bin拷贝到java目录下

 cp /home/itcast/Desktop/jdk-6u24-linux-i586.bin /usr/java/

 4.安装jdk

 cd /usr/java

 ./jdk-6u24-linux-i586.bin

 
 5.安装完毕为他建立一个链接以节省目录长度

 ln -s /usr/java/jdk1.6.0_24/ /usr/jdk

 6.编辑配置文件

 vim /etc/profile

 添加如下内容:
 JAVA_HOME=/usr/jdk
 CLASSPATH=$JAVA_HOME/lib/
 PATH=$PATH:$JAVA_HOME/bin
 export PATH JAVA_HOME CLASSPATH


 8.重启机器或source /etc/profile

 sudo shutdown -r now

 9.查看安装情况
 java -version

 

 

待续!!!!!!!!!!!!!!!!!!!!!!!!!!!!

你可能感兴趣的:(Linux基础入门)