补充:linux下开发时还会经常用到的命令

Ubuntu还是倾向于个人用户,所以增加了一些比较方便的操作,比如home,end也可以移动光标,可以用insert来切换覆盖,插入,命令状态等,但是在unix里没有这些操作。有时候会出现一些莫名其妙的东西,这说明unix的要求更加严格些。没有功能键的支持,只能用命令了。

 

使用find命令来搜索文件或者目录,在指定目录(包括子目录)范围内进行搜索,搜索完毕之后如果进行命令处理,则可以加上命令,也可以不加。(默认的命令是print,打印查找的文件或者目录的路径出来)

 

查找当前目录下f开头的文件,选项条件可以按照名字,用户id,创建日期等来找

dashuai@ubuntu:~$ find . -name"f*"
./family
./family/father.txt
./.cache/compizconfig-1/fade.pb
./.cache/thumbnails/normal/f6062734ce6e1d7f1b51a6aecac07933.png
./.cache/thumbnails/normal/ff81dc7ba459b356425ee10e1d33f37f.png
./.cache/thumbnails/normal/fa2fa0d2bb6a619d1a68508ac37dd388.png
./.cache/thumbnails/normal/f743605d178ec7b2341b3d2a67595d2e.png
./.cache/thumbnails/normal/f723aaf01a64a01ee02d2f9162bae8be.png
./.cache/thumbnails/normal/ffa066564d0791b0a2bb8826ca81073a.png
./.cache/thumbnails/normal/f105c778fc7db48d3fc87604fa362ee1.png
./.cache/thumbnails/normal/f9f5b98cf2444fe78f2b3f4bdf258049.png
./.cache/thumbnails/normal/fde64fe9c2337ea23c6dd1c25123eddf.png
./.cache/thumbnails/normal/ffd86be2387b8028059b1807082430dc.png
./.cache/software-center/software-center-agent.db.tmp/flintlock
./.local/share/ubuntuone/syncdaemon/fsm
./.local/share/Trash/files
./.local/share/Trash/files/c++/family
./.local/share/zeitgeist/fts.index
./.local/share/zeitgeist/fts.index/flintlock
./.mozilla/firefox
./.mozilla/firefox/mwsx7xxr.default/formhistory.sqlite
 

查找当前目录下.cpp文件

dashuai@ubuntu:~$ find . -name".cpp"
dashuai@ubuntu:~$
没有找到,就是空了。

 

全盘搜索需要使用根目录符号就行了

dashuai@ubuntu:~$ find / -name".cpp"
 

还可以找到的文件,再用过exec来执行一下其他的命令。


现在把找到文件都备份一下,即把找到的文件复制到family目录下

dashuai@ubuntu:~$ find . -name ffff.cpp-exec cp {} family \;
dashuai@ubuntu:~$ cd family
dashuai@ubuntu:~/family$ ls
daughter.txt  dd father.txt  ffff.cpp  house mother.txt  son.txt
-exec必须有,exec表示切换,如 execsh切换到sh  shell

{}表示前者找到的文件

\;表示就用这个字符本身,也就是转义了,我们不想使用这个字符的特殊含义,也相当于平时的分号。因为分号;本来是命令隔开的意思。当然也可以使用引号。

 

注意:

为什么要用分号?

因为分号是命令结束的标记。

 

通配符使用,为什么需要用双或者单引号包起来呢?

因为包起来的话,所有的f打头的文件都找出了,不然的话不行,因为通配符只代表任意的一个字符!!!这样的话通配符在shell里是这样表示的:

 

当前目录下ls看看

dashuai@ubuntu:~$ ls
111 c          Downloads         f3        hello.txt  Pictures  time
a   dd         examples.desktop  f4        me         Public     Ubuntu One
aaa Desktop    f1                family    Music     pwd.txt    Videos
b   Documents  f2                haha.txt  new.txt   Templates
 

再使用echo命令查看,发现是这样的。

dashuai@ubuntu:~$ echo find . -name f*
find . -name f1 f2 f3 f4 family
 

因为-name只能是一个名字,而这里确实一串名字组成的字符串了,显然是非法的使用!!!这样就是错误的了。所以使用通配符的话,必须保持它是一个*或者?号不变,应该加上引号,单双都可以。 

 

找完文件之后,我们继续找人,使用who命令!使用命令who 来查看当前谁在线,即哪些用户在使用本台主机,因为unix/linux是多用户操作系统,准许多个用户多个终端同时使用这一个主机。

dashuai@ubuntu:~$ who
dashuai tty7         2014-05-24 22:48 (:0)
dashuai pts/0        2014-05-25 05:51 (:0)

如果很多的用户,怎么知道自己是哪个呢?用who am i 查看自己到底是哪个用户

dashuai@ubuntu:~$ who am i
dashuai pts/0        2014-05-25 05:51 (:0)
 

还可以使用id来查看用户id

dashuai@ubuntu:~$ id
uid=1000(dashuai) gid=1000(dashuai) groups=1000(dashuai),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),107(lpadmin),124(sambashare)
 

或者使用紧凑的whoami,只显示自己的名字!

dashuai@ubuntu:~$ whoami
dashuai

也可以使用users来查看,当前那些用户在使用主机,只显示所有使用的用户名字!

dashuai@ubuntu:~$ users
dashuai dashuai
 

找出某id的用户,可以使用管道

dashuai@ubuntu:~$ who | grep 192.168.1.2
 

其实还有一个更详细的命令,w,w命令相当于who where when what。即谁在哪个主机什么时间做什么。

dashuai@ubuntu:~$ w
 07:02:34 up 8:17,  2 users,  load average: 0.11, 0.44, 0.79
USER    TTY      FROM             LOGIN@   IDLE  JCPU   PCPU WHAT
dashuai tty7     :0               22:48    8:16m 19:38   1.53s gnome-session -
dashuai pts/0    :0               05:51    0.00s 0.49s  0.15s w
 

history显示你用过的命令,有号码,依次列出来所有使用过的命令(本次),然后使用!加上上述的编号即可,重新使用以前那个命令,不用再次敲击了。当然可以直接在bash里使用光标键来翻看近期用过的命令。

 

注意:

其实这些东西是存在一个文件里的。.bash_history就是存放以前用过的命令的文件

 

和windows操作系统一样,linux也会有磁盘空间不够用的情况,可以使用du命令查看下各个盘符的使用情况,最后有一个总和。如果想指明单位,则这样用:du –k。出来的数字就是以k为单位的。或者使用-h,这样的话,就是和我们平时见的一样了,够1g用g,够1t用t……

du –h   节选

4.0K ./dashuai/.mozilla/firefox/mwsx7xxr.default/thumbnails
4.0K ./dashuai/.mozilla/firefox/mwsx7xxr.default/minidumps
19M ./dashuai/.mozilla/firefox/mwsx7xxr.default
8.0K ./dashuai/.mozilla/firefox/CrashReports
19M ./dashuai/.mozilla/firefox
19M ./dashuai/.mozilla
8.0K ./dashuai/.gconf/apps/nm-applet
8.0K ./dashuai/.gconf/apps/gnome-terminal/profiles/Default
12K  ./dashuai/.gconf/apps/gnome-terminal/profiles
16K  ./dashuai/.gconf/apps/gnome-terminal
28K  ./dashuai/.gconf/apps
32K  ./dashuai/.gconf
4.0K ./dashuai/dd/d
8.0K ./dashuai/dd
4.0K ./dashuai/Templates
22M ./dashuai
22M .

如果不想要详细列表,嫌弃麻烦,我们可以用du –s,直接查看使用空间总和

dashuai@ubuntu:/home$ du -s
22188       .
 

如果想直接知道还有多少空间可以有?使用df命令,df 剩余多少空间  (free)

dashuai@ubuntu:/home$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1        9288056 2614052   6202196 30% /
udev              505580       4   505576   1% /dev
tmpfs             205324     772   204552   1% /run
none                5120       0     5120   0% /run/lock
none              513308     148   513160   1% /run/shm
none              102400      28    102372  1% /run/user

当然也可以使用-h,用单位大小表示

dashuai@ubuntu:/home$ df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda1       8.9G 2.5G  6.0G  30% /
udev            494M  4.0K 494M   1% /dev
tmpfs           201M 772K  200M   1% /run
none           5.0M     0 5.0M   0% /run/lock
none            502M  148K 502M   1% /run/shm
none            100M   28K 100M   1% /run/user

最后的挂载有些复杂,先不看呢。

 

注意:

d是disk磁盘的意思,u是used的意思,du

在我们保存或者使用主机时,发现保存不了,或者有问题,可以看看是不是空间满了,看看那个目录下有垃圾空间,是不是很大了等等。就用这个命令。

 

再看些零碎的命令吧!


linux操作系统里当然也有网络相关的命令,比如查看和哪个主机连同了!使用ping,ping 某个地址  看看本机与某个地址的主机是否联通

dashuai@ubuntu:/home$ ping 172.0.0.1
connect: Network is unreachable
 

或者查看本机的ip地址,使用ifconfig –a(不用a选项是只列出第一个网卡,否则用a是所有的all)

dashuai@ubuntu:/home$ ifconfig -a
eth0     Link encap:Ethernet  HWaddr00:0c:29:a7:22:7e 
         inet6 addr: fe80::20c:29ff:fea7:227e/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
         RX packets:2631 errors:0 dropped:0 overruns:0 frame:0
         TX packets:8444 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:253908 (253.9 KB)  TXbytes:1850844 (1.8 MB)
         Interrupt:19 Base address:0x2000
 
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:16528 errors:0 dropped:0 overruns:0 frame:0
         TX packets:16528 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
         RX bytes:1355168 (1.3 MB)  TXbytes:1355168 (1.3 MB)
 

注意:

这里不是ipconfig,别混了!!!!!!

 

还有个ftp命令,当然用起来不是很方便,了解下即可。

dashuai@ubuntu:/$ ftp
ftp>

我们可以使用help来进行帮助

dashuai@ubuntu:/$ ftp
ftp> help
Commands may be abbreviated.  Commands are:
 
!                 dir              mdelete            qc              site
$                disconnect        mdir          sendport  size
account             exit            mget                  put            status
append              form                   mkdir                 pwd           struct
ascii          get            mls            quit           system
bell            glob           mode                 quote                 sunique
binary                hash                   modtime           recv           tenex
bye            help           mput                  reget                  tick
case          idle            newer                rstatus              trace
cd              image                nmap                 rhelp                  type
cdup                   ipany                  nlist           rename             user
chmod               ipv4           ntrans                reset                  umask
close                  ipv6           open                   restart               verbose
cr               lcd             prompt              rmdir                  ?
delete                ls                passive              runique
debug                macdef              proxy                  send
 

比如使用put是上传后面跟上一个文件名,注意这里,如果连接到了外部ftp服务器,那么我们想看本地的文件,直接用ls是不行的,看的是服务器的文件,我们需要在前面加上一个!即叹号,!ls查看的是本地的文件。

 

使用get是下载,如果想同时上传多个文件,则需要用mput命令,同理同时下载多个文件,使用mget命令。m是multilpe的缩写。

 

而退出ftp用bye

ftp> bye
dashuai@ubuntu:/$
 

当然还有很多网络命令,比如write命令,可以进行聊天,如果我们不想聊天,则使用mesg n命令,还有等等很多命令,但是和开发相关的我们再考虑。

 

还有,双引号或者单引号括起来的命令,会把命令结果输出来,但是有时候双引号不会非常的严格!这时候,我们一般用单引号把命令括起来!十分严格的可以对被包括的东东保持原样!!

dashuai@ubuntu:~$ echo today is 'date'
today is date

另外,还有一种特殊的引号,叫反引号,` `,用途是执行里面的命令,并且取的命令执行的输出结果。

dashuai@ubuntu:~$ echo today is `date`
today is Sun May 25 19:42:08 PDT 2014

env显示环境变量(environment的缩写),可以显示出当前的系统环境变量。比如LANG就是语言,HOME是主目录,等等。显示出环境变量的值,用$符号打头。

看看用户id

dashuai@ubuntu:~$ echo $UID
1000
 

path这个目录很重要,shell通过这些目录找可执行文件,先去path里依次的找可执行文件,直到找到为止,如果找不到就显示command not found

dashuai@ubuntu:~$ echo $path 

PS1用来指示命令提示符

dashuai@ubuntu:~$ echo $PS1
\[\e]0;\u@\h:\w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
 

如果我们想修改环境变量的值,那就用=等于号,想改成什么,就改成什么。

dashuai@ubuntu:~$ PS1=DASHUAI
DASHUAI

发现,前面的变为了DASHUAI了,那我们再改回去

因为\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$这里面有空格,我们需要引号!

DASHUAIPS1='\[\e]0;\u@\h:\w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$'
dashuai@ubuntu:~$

这样就改回来了。其实反斜杠u表示用户名,反斜杠h是主机名字,反斜杠w是主目录

 

还有,我们的命令还能起别名。比较长的命令起个简单的别名,代替。alias就是别名花名的意思,就是给命令起别名

alias c=clear        

alias pl=’ps -l’

 

注意:

对于修改配置文件或者环境变量,基本原则是只增加,不减少!这样可以避免出错。

=========================================================================================================== 

关于shell编程,shell脚本,以后再另开帖总结

=========================================================================================================== 

初探脚本文件,脚本文件示例

dashuai@ubuntu:~$ cat myshell.sh
echo hello world!
sleep 10
echo this is my first shell script
sleep 5
echo $USER
date

执行这个脚本文件

dashuai@ubuntu:~$ vi myshell.sh
dashuai@ubuntu:~$ source myshell.sh
hello world!
this is my first shell script
dashuai
Sun May 25 22:08:36 PDT 2014

注意:

Shell脚本里#是注释

============================================================================================================

小结;

Linux系统繁杂,有深度,有广度,这些东西仅仅是冰山一角,但对于开发也差不多够了,不过还是还有待进一步学习!比如shell脚本编程,linux的管理,linux的内核代码等等,后续在研究吧。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值