• Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell。在现在的大多数Linux发行版中,默认的Shell一般都是Bourne again shell(bash)。
  • <echo>

  echo $SHELL

  在Linux中,$符号代表一个shell变量。所有的shell都用这种方式使用变量。有一些shell变量在你的系统启动的时候就有了默认值。例如,$SHELL;$LOGNAME是你的登录名,而$PATH变量指明了你的shell命令的搜索范围。

  echo命令的作用就是打印出你的输入。如果你的输入具有shell的特殊意义,例如shell变量,他就输出变量的值。

[d4csqa@sqaauto3 setup]$ echo 

[d4csqa@sqaauto3 setup]$ echo $LOGNAME

d4csqa

[d4csqa@sqaauto3 setup]$ echo $SHELL

/bin/bash

  Linux shell命令中一个重要的地方是,你可以将命令串起来。这是Unix/Linux从第一天开始就有的巧妙的特点。最简单的将命令连起来的办法就是使用“|”,我们称之为“pipe”。第一个命令的输出就是下一个命令的输入。

  • Linux命令有自己的语法规则:

  基本的语法就像这样:
  command -option file

  • ls -la

  这行命令的意义是输出当前目录的所有文件的文件名,l代表“long”,a代表“all”,有了l选项,你会发现,输出的内容比较丰富,不只包括文件名,还有文件的访问权限,所有者,所属组等。

  d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示是一个连接文件(link)

  表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x)。

  范例:
  1. ls /home
  显示/home目录下的文件与目录(不包含隐藏文件)
  2. ls –a /home
  显示/home目录下的所有文件与目录(包含隐藏文件)
  3. ls –l /home
  显示/home目录下的文件与目录的详细信息
  4. ls –c /home
  显示/home目录下的文件与目录,按修改时间排序

  ls -l
a* (相当于 ls –l | grep a*,但grep只能抓取有效目标数为1的情况)
  这个命令会列出在当前工作目录下所有的以小写a开头的文件,比如说abc.txt,alpha.jpg等等。

  ls
a?cd
  这条命令会列出所有以小写a开头隔一个未知字符以小写cd结尾的所有文件。例如adcd,axcd,但是不会列出adfdcd,也不会列出axcd.txt。

  ls –l session* *info*

  这条命令会列出所有含有info字符串和以session字符串开头的文件,但仅仅是简单的加总,即对于两个条件同时满足的情况,不会识别出来只列举一次,而是列举两次。其过程是依次遍历ls列出的文件,对于每个文件先判别是否满足*info*,是则输出;然后判别是否满足session*,是则输出。等所有条件判别问,则跳到下一个文件,依此类推。

但ls –l | grep session | grep info却实现了条件的交集,即输出为同时满足含有session字符串的条件和含有info字符串的条件。

  小结:

  对单一filter,ls –l *str*等价于ls –l | grep str。

  对多个filter,ls –l *str1* *str2*为简单叠加(比并集更简单),ls –l |grep str1 | grep str2为交集。

  • <man>

  man:如果你想了解每一个命令代表什么含义以及他的用法,你就可以使用man(意义为manual)命令,例如:man ls。man输出的内容是为系统管理员和开发者编写的,如果你想了解更多命令的用法,你可以去找网络上的Linux命令文档,有一个非常方便的就是丹尼尔·巴雷特的Linux的袖珍指南。

  • <su><sudo>

  su和sudo:su命令的作用是切换用户,这也被称为超级用户,因为在有些系统中su命令可以使你以系统的所有权限用户root登录。除非你是系统管理员,否则我绝不推荐你使用su切换到root,因为这可能给你带来很多麻烦。一个相对安全的多的办法是使用sudo命令,这个命令可以上你以root权限运行一个命令。

  su 在不退出登陆的情况下,切换到另外一个人的身份

  用法: su -l 用户名(如果用户名缺省,则切换到root状态)

  eg:su -l netseek (切换到netseek这个用户,将提示输入密码)

  • <grep>

  grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。例如:
  grep foo /etc/passwd
  返回在password文件中所有的含有foo的行
  grep -i “foo” /etc/passwd
  -i选项是忽略大小写,这就意味着若某一行含有FOO或FOo也会被搜索到。

  grep还支持递归搜索:
  grep -r “foo” /home/sjvn
  这条命令将会搜索/home/sjvn目录及其子目录下所有的包含“foo”的行。

  grep也通常与其他命令串连起来使用,例如:
  ls -la | grep foo

  与find命令的区别:

  grep:文本内容搜索;find:文件或者目录名以及权限属主等匹配搜索

  • <find> 查找文件

  格式:find 路径 -name ‘文件名’
  范例:
  1. find ./ -name ‘co*’
  在当前目录及其子目录中寻找名为co开头的文件
  2. find ./ -name ‘test’
  在当前目录及其子目录中寻找名为test的文件

[dannchen@sqaauto3 D4C]$ pwd
/home/dannchen/D4C
[dannchen@sqaauto3 D4C]$ ls
.c ALI_GDS_session bugs experiment test_plan
[dannchen@sqaauto3 D4C]$ find ./ -name
./experiment/process/
./
  • <ps>

  报告进程的状态。此命令将显示哪些程序正在运行。

  • <cp>

  cp file1 file2

  把file1中的内容复制到当前文件夹中file2。如果file2不存在,新建。如果file2存在,覆写。

  • <rm>

  rm –i fileName

  会有确认提示信息。

  • <cat>

  可以显示你的Linux电脑中的文本信息。与vi或vim的区别是前者只读,后者可编辑。

  cat
/proc/cpuinfo

  展示你的CPU的重要的统计。

  cat /proc/version

  展示你的当前运行的Linux发行版的详细信息。

  cat /etc/printcap

  展示你当前安装的打印机。

  与more命令所不同的是:cat把文件内容一直打印出来,而
more则分屏显示

  eg; cat>1.c //就可以把代码粘帖到1.c文件里,按ctrl+d 保存代码。

  gcc -o 1 1.c //将1.c编译成.exe文件,我们可以用此命令编译出代码。

  • <more>

  内容多时,分页显示,space键切换页面。

  -num 指示单页行数。Space键一次滚动num行。

  • <cd> 改变当前目录

  eg:cd netseek //进入netseek这个目录

  cd //退出当前目录,相当于cd ~

  cd .. //切换到上一层目录

  cd - //切换到上一次目录

  • <chmod> 权限修改

  用法:chmod 三位8进制数 filename。

  eg: chmod 567 filename //用户r-x,组rw-,其他rwx

  chmod 7 //------rwx

  eg: chmod u+x filenmame //只想给自己运行,别人只能读

  //u表示文件主人user,
g 表示文件所在组group。 o 表示其他人others ;r 表可读,w 表可写,x 表可以运行

  chmod g+x filename //同组的人来执行

  格式:chmod [who] [+ | - | =] [mode] 文件名
  参数:
  who:
  u 表示文件的所有者。
  g 表示与文件所有者同组的用户。
  o 表示“其他用户”。
  a 表示“所有用户”。它是系统默认值。
  mode:
  + 添加某个权限
  - 取消某个权限
  = 赋予给定权限
  例:chmod g+w hello.c
  chmod o=--- 1 //其他用户的权限为不可读不可写不可执行
  mode所表示的权限可使用下述字母(数字)的任意组合:
  r 可读 (4)
  w 可写 (2)
  x 可执行 (1)
  例:chmod 761 hello.c

  • <clear>,<date>命令

  clear:清屏,相当与DOS下的cls;date:显示当前时间。

  用法:date [选项] 显示时间格式(以+开头,后面接格式)
  举例:
  (1) 以固定格式显示时间:date + “%Y%m%d%H”
  (2) 显示明天的日期:date -d “tomorrow” +”%Y-%m-%d”
  (3) 显示前天的日志:date -d “1 days ago” +”%Y-%m-%d”

[dannchen@sqaauto3 ~]$ date -d "tomorrow"
Tue Feb :: PST
[dannchen@sqaauto3 ~]$ date
Mon Feb :: PST
[dannchen@sqaauto3 ~]$ date -d "yesterday"
Sun Jan :: PST
[dannchen@sqaauto3 ~]$ date -d "3 days ago"
Fri Jan :: PST
  • whoami,whereis,which,id

  //whoami:确认自己身份

  //who am i:更详细的信息,包括IP地址

  //whereis:查询命令所在目录以及帮助文档所在目录

  //which:查询该命令所在目录(类似whereis)

  //id:打印出自己的UID以及GID。(UID:用户身份唯一标识。GID:用户组身份唯一标识。每一个用户只能有一个唯一的UID和 GID)

  eg: whoami //显示你自已登陆的用户名

  whereis bin 显示bin所在的目录,将显示为:/usr/local/bin

  which bin

  • kill 可以杀死某个正在运行或者已经是dest状态的进程
  • passwd 可以设置口令
  • history 用户用过的命令
  • tar 解压命令

  eg: tar -zxvf nmap-3.45.tgz //将这个解压到nmap-3.45这个目录里

  格式:tar [选项] 目录或文件
  范例:
  1.tar cvf tmp.tar /home/tmp
  将/home/tmp目录下的所有文件和目录打包成一个tmp.tar文件
  2.tar xvf tmp.tar
  将打包文件tmp.tar在当前目录下解开
  3.tar cvzf tmp.tar.gz /home/tmp
  将/home/tmp目录下的所有文件和目录打包并压缩成一个tmp.tar.gz文件
  4.tar xvzf tmp.tar.gz
  将打包压缩文件tmp.tar.gz在当前目录下解开

  

  • <unzip>

  格式:unzip [选项] 压缩文件名.zip
  范例:
  unzip tmp.zip
  解压tmp.zip文件

  • finger 可以让使用者查询一些其他使用者的资料

  eg: finger //查看所用用户的使用资料

  finger root //查看root的资料

  • <shutdown>、<halt>、<reboot> 关机或重启命令

  eg: shutdown -h now //立即关机

  • <fdisk> 查看磁盘分区情况

  eg: fdisk -l //查看磁盘分区情况

  • <df> 查看磁盘使用情况

  格式:df [选项]
  范例:
  df –k
  以KB为单位显示磁盘使用情况

[dannchen@sqaauto3 D4C]$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg1-root % /
tmpfs % /dev/shm
/dev/sda1 % /boot
/dev/sda3 % /tmp
filer3b:/vol/shome/devenv/T2/perforce
% /p4
172.18.212.16:/h/flex/slow
% /nfs/slow
172.18.212.16:/i/benchmarks
% /nfs/benchmarks
172.18.212.16:/h/lsf.tflex
% /nfs/lsf
/mnt/m3dlibs_files/m3dlibs.20140925.6.sqfs
% /mnt/m3dlibs
/dev/flex_gpfs % /gpfs
/dev/flex_gpfs2 % /gpfs2
cat3:/h/work/export1 % /mnt/cat2_ro
cat3:/h/work/export1 % /mnt/cat2_rw
cat3:/h/work/export2 % /mnt/cat2-rw-export/ro_mount
cat3:/h/work/export2 % /mnt/cat2-rw-export/rw_mount
  • <du> 查看目录大小

  格式:du [选项] 目录
  范例:
  du –b ipc
  以字节为单位显示ipc这个目录的大小

[dannchen@sqaauto3 D4C]$ ls
.c ALI_GDS_session bugs experiment test_plan
[dannchen@sqaauto3 D4C]$ du -b [dannchen@sqaauto3 D4C]$ du -b bugs
bugs/DOM-/process1/visualization
bugs/DOM-/process1/product_pattern/preproc
bugs/DOM-/process1/product_pattern
bugs/DOM-/process1/default
bugs/DOM-/process1/target1
bugs/DOM-/process1/__al__/default
bugs/DOM-/process1/__al__/Mark_1
bugs/DOM-/process1/__al__
bugs/DOM-/process1
bugs/DOM-/process2/visualization
bugs/DOM-/process2/product_pattern/preproc
bugs/DOM-/process2/product_pattern
bugs/DOM-/process2/default
bugs/DOM-/process2/target1
bugs/DOM-/process2/__al__/default
bugs/DOM-/process2/__al__/Mark_1
bugs/DOM-/process2/__al__
bugs/DOM-/process2
bugs/DOM-/process3/visualization
bugs/DOM-/process3/product_pattern/preproc
bugs/DOM-/process3/product_pattern
bugs/DOM-/process3/default
bugs/DOM-/process3/target1
bugs/DOM-/process3/__al__/default
bugs/DOM-/process3/__al__/Mark_1
bugs/DOM-/process3/__al__
bugs/DOM-/process3
bugs/DOM-
bugs
  • <ping> 查看网络是否连通
  • <netstat> 查看网络状态

  格式:netstat [选项]
  范例:
  1. netstat -a
  查看系统中所有的网络监听端口。

[dannchen@sqaauto3 D4C]$ netstat -a | grep
unix [ ] STREAM CONNECTED @/tmp/dbus-eRaMqafIL0
unix [ ] STREAM CONNECTED
  • <ifconfig> 网络配置

  格式:ifconfig [选项] [网络接口]
  范例:
  1. ifconfig eth0 192.168.0.1
  配置eth0这一网卡的ip地址为192.168.0.1
  2. ifconfig eth0 down
  暂停eth0这一网卡的工作
  3. ifconfig eth0 up
  恢复eth0这一网卡的工作

  eg: ifconfig eth0 192.168.2.20 //设置IP地址

  • <rpm> 软件安装

  格式:rpm [选项] [安装文件]
  范例:
  1. rpm -ivh tftp.rpm
  安装名字为tftp的文件
  2. rpm –qa
  列出所有已安装rpm包
  3. rpm –e name
  卸载名字为name的rpm包

[dannchen@sqaauto3 D4C]$ rpm -qa | grep python
rpm-python-4.8.-.el6.x86_64
python-2.6.-.el6.x86_64
python-iniparse-0.3.-2.1.el6.noarch
libproxy-python-0.3.-.el6_3.x86_64
python-iwlib-0.1-1.2.el6.x86_64
ganglia-gmond-modules-python-3.6.-.x86_64
libxml2-python-2.7.-.el6_3..x86_64
python-urlgrabber-3.9.-.el6.noarch
newt-python-0.52.-.el6.x86_64
dbus-python-0.83.-6.1.el6.x86_64
python-pycurl-7.19.-.el6.x86_64
libreport-python-2.0.-.el6.centos.x86_64
python-ethtool-0.6-.el6.x86_64
abrt-addon-python-2.0.-.el6.centos.x86_64
python-libs-2.6.-.el6.x86_64
  • <mount> 挂载

  格式:mount [选项] 设备源 目标目录
  范例:
  1. mount /dev/cdrom /mnt
  将光驱挂载到/mnt目录下
  <umount> 卸载设备
  格式:umount 目标目录
  范例:
  1. umount /mnt (对应mount例)
  取消光驱在/mnt下的挂载

  • <top> 动态查看CPU使用

  格式:top
  范例:
  1.top
  查看系统中的进程对cpu、内存等的占用情况。

[dannchen@sqaauto3 D4C]$ top | grep dannchen
dannchen R 7.4 0.0 :00.07 top
dannchen 1366m 23m 16m S 1.8 0.0 :24.16 knotify4
dannchen - 354m S 1.8 0.0 :27.92 pulseaudio
dannchen 1366m 23m 16m S 1.6 0.0 :24.21 knotify4
dannchen R 1.0 0.0 :00.10 top
dannchen 1366m 23m 16m S 2.0 0.0 :24.27 knotify4
dannchen R 1.6 0.0 :00.15 top
dannchen 6053m 563m 36m S 0.7 1.2 :41.01 java

  

  • <uname> 显示当前操作系统的信息
[dannchen@sqaauto3 ~]$ uname
Linux

参考:

http://www.jb51.net/LINUXjishu/45329.html

http://www.2cto.com/os/201406/307266.html

http://blog.csdn.net/yinjiabin/article/details/7953887

Linux shell command学习笔记(一)的更多相关文章

  1. Linux shell command学习笔记(二)

    <cut> 作用:从输入文件或者命令的输出中析取出各种域 用法:cut –c{字符串范围} –d{字段间分割符} –f{字段索引编号} 举例: (1)查看在线用户:who | cut –c ...

  2. Linux shell 菜鸟学习笔记....

    20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的 ...

  3. Linux Shell编程学习笔记——目录(附笔记资源下载)

    LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习She ...

  4. Linux shell 重定向学习笔记

    在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读 ...

  5. Linux Shell 编程学习笔记

    1:Shell Script中if语句的条件部分要以分号来分隔 2:要注意条件测试部分中的空格.在方括号的两侧都有空格 3:echo "Hi, ${a}s" 单引号中的变量不会进行 ...

  6. linux shell脚本学习笔记一

    一.文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tm ...

  7. linux shell编程学习笔记(二) --- grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  8. linux shell编程学习笔记(一)---通配符,元字符

    linux通配符: 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不 ...

  9. Linux Shell编程学习笔记

    打算在学习过程中将每个写过的程序一个个的往上贴; 2015-07-03 1. 鸟叔第三版13.2.1节“利用日期进行文件的创建” 源代码 #!/bin/bashPATH=/bin:/sbin:/usr ...

随机推荐

  1. [Poi] Setup PostCSS and Tailwind with Poi

    This lesson walks through setting up a Poi project using PostCSS and the popular Tailwind library fo ...

  2. Java Exception和Error的差别

    Java中异常的抽象类是Throwable,在此基础上.派生出两大类:Error和Exception. Error是程序中的严重错误,不应该用try-catch包括.Javadoc的说明例如以下: A ...

  3. Linux Sendfile 的优势

    Sendfile 函数在两个文件描写叙述符之间直接传递数据(全然在内核中操作,传送),从而避免了内核缓冲区数据和用户缓冲区数据之间的拷贝,操作效率非常高,被称之为零拷贝. Sendfile 函数的定义 ...

  4. hdoj2066一个人的旅行

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  5. js插件---图片裁剪cropImgBox(适合练习编写插件之用)

    js插件---图片裁剪cropImgBox(适合练习编写插件之用) 一.总结 一句话总结:无论是灰度还是高对比度的图片,都是先处理canvas的像素,使其变成灰度或者高对比度,然后再用canvas.t ...

  6. java静态类、静态方法、静态代码块,静态变量及实例方法,实例变量初始化顺序及内存管理,机制

    1.当一个类被第一次使用时,它需要被类加载器加载,而加载过程涉及以下两点: (1)在加载一个类时,如果它的父类还未被加载,那么其父类必须先被加载: (2)当类加载到内存之后,按照在代码中的出现顺序执行 ...

  7. POJ 3265 DP

    思路: f[i][j]表示前i天能做j道题 (是做 不是做完) if(f[i-1][k]) if(suma[j]-suma[k]+g[i-1][k]<=n) f[i][j]=1,g[i][j]= ...

  8. 学习TF:《TensorFlow实战》中文版PDF+源代码

    深度学习乃至人工智能正逐渐在FinTech领域发挥巨大的作用,其应用包括自动报告生成.金融智能搜索.量化交易和智能投顾.而TensorFlow为金融业方便地使用深度学习提供了可能.<Tensor ...

  9. 【MySQL主从复制原理及搭建全过程】

    目录 准备工作 主从复制原理 开始搭建主从复制 本文将使用mariaDB数据库实现主从复制,其步骤与MySQL数据库无差异. MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护, ...

  10. python关于sorted里面key,reverse以及lamdba,operator这几个鸟人

     关于sorted:   help里给的解释 >>> help(sorted) Help on built-in function sorted in module __builti ...