Linux基础命令

 

 

 

1、Linux启动等级【 linit  n 】

²  0—系统停机状态

²  1—单用户工作状态

²  2—多用户状态(没有NFS)

²  3—多用户状态(有NFS)

²  4—系统未使用,留给用户

²  5—图形界面

²  6—系统正常关闭并重新启动

 

命令

与文件、目录相关的命令­­

n  ls【列出目录】

ls -L    //d开头目录,-开头文件,竖着列

ls –m   //横着列

ls –R   //树状结构列

//…. 分页

n  cd【绝对路径,和相对路径 】

..      //代表当前路径

n  pwd【当前路径】­

n  whoami【当前用户】

n  mkdir【创建目录】

    -m: 对新建目录设置存取权限,也可以用chmod命令设置;

    -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;若存在,不作任何处理,即不会覆盖现有文件夹。

    mkdir -p ./js/login

n  rmdir【删除目录,只能删除为空的目录】

n  rm【删除目录或文件】

rm  -r  文件名   //递归删除

rm  -rf  目录名  //递推删除,无“询问”

rm  -rf  *.js   //删除所有js文件

n  touch【创建文件】

n  cp【拷贝】

cp  1.txt  2.txt   //将当前目录下1.txt复制一份名为2.txt

cp  -r  d1  d2      //将当前目录下d1目录复制一份命名为d2

n  mv【移动文件】

mv  1.txt  路径     //移动文件

mv  d1   路径   //移动目录

n  vi【编辑文件;有两种模式,编辑模式和命令模式;默认进入命令模式】

命令模式下:

a    append

dd   删除一行

dw   删除一个单词

o    向下插入一行

O    向上插入一行

i    进入插入模式

:w   存盘

:q   退出

:q!  不存盘退出

:wq  存盘退出

编辑模式:

   Esc    进入命令模式

n  显示文件内容

More    3.txt    【分页列出文件】

Cat    3.txt    【正序】

tac    3.txt    【逆序】

head    -n    3.txt    【前n行】

tail    -n    3.txt    【后n行】

n  ln【链接文件;分为软连接和硬链接】

ln   3.txt   3.link.txt  

【二者是两个独立文件,但是同步更新,删除任意一个文件,不影响另一个文件】

ln   -s   3.txt   3.link.txt   【相当于快捷方式,同步更新,其实是一个文件】

linux软连接和硬链接:http://blog.csdn.net/jlds123/article/details/6032146

n  whereis  ls【查询ls命令的相关内容,例如调用文件,帮助文档】

n  echo $PATH【查看环境变量】

n  find  /etc   -name   my*【查找etc目录下的以my开头的文件】

创建挂载点:mount

mount 设备 挂载点

  • 设备指的是一个具体的文件系统,可以用设备名或卷标名表示
  • 挂载点必须是一个存在的目录。如果目录下原来有文件,则在文件系统挂载后,原文件暂时不能访问。直到挂载上的文件系统被卸载。
  • 我们一般采用/mnt目录下的一个空目录为挂载点。
  • 用户可以通过直接键入mount后回车来检查当前挂载中的文件系统
  • 用户也可以通过查看/etc/mtab文件来查看当前挂载中的文件系统
sudo mount /dev/cdrom /mnt/cdr
# Ubuntu的cdrom目录一般为"/dev/cdrom"

卸载挂载点:umount

umount [参数] 设备/挂载点

sudo umount /dev/cdrom
sudo umount /mnt/cdr
# 上述两行代码完成同样的功能

用户和组的概念

n  useradd   kang   【添加kang用户】

没有指定组的情况下,会添加一个和用户名同名的组。

/etc/group文件可查看    /etc/password文件可查看用户信息

n  passwd   kang   【为kang用户添加密码】

n  userdel    kang    【删除kang用户】

n  groupadd   student   【添加student组】

n  groupdel   student   【删除student组,组中如果有用户不能直接删除】

n  usermod   -g  student  kang   【将kang用户移动到student组中】

n  useradd   kang  -g   student  【新建kang用户所在组是student】

n  su   kang   【切换用户登录】   exit【返回】

文件权限

n  -rw-r—r—

rread】   w【write】   -【没有任何权限】   x【执行,运行】

分为三组,三个一组

第一组:文件所有者

第二组:同组其它人

第三组:其它人

n  chmod【修改文件权限】

chmod   +x    4.txt   【给所有用户添加可执行权限,对于4.txt】

chmod   u+x   4.txt   【当拥有者】

chmod   g+x   4.txt   【同组其它人】

chmod   o+x   4.txt   【其它人】

n  学会   chamod   755   4.txt

                111|101|101

n  chown   kang   4.txt   【修改文件所有者】

权限设置:chmod

chmod [-R] 权限 文件名

    chmod    777 *.js       #当前目录下的所有".js"文件的权限被更改为"777"
    chmod    777 ./css/     #当前目录下的"css"文件夹的权限被更改为"777",但其子文件夹和子文件的权限不便
    chmod    777 ./css/*    #当前目录下的"css"文件夹中的所有“一级文件夹和文件”的权限被更改为"777",但css文件夹的权限不变
    chmod -R 777 ./css/     #当前目录下的"css"文件夹、其子文件夹、以及子文件的权限被更为"777"

管道和其他

n  ls –l   /etc   |   more

【分页显示竖状文件目录】

将上一次运行的输出结果交给下一命令执行

n  cat   /etc/passwd   |    grep   student1

n  grep   student   4.txt【在文件4.txt中查找含有student字符的行】

n  wc  【统计文件的行数和字数】

wc  -l 【行数】

n  ls  -l |  grep “^-” |  wc –l【统计目录下文件数】

n  wall  “My Name Is Kang !”

wall   `date`

 

Linux基础命令(2)

 

Fskey servername

保存登陆信息,下次登陆不必再输入密码

Fskey  username@192.168.0.2

scp命令

说明

用于2个 linux 主机间复制文件

格式:

scp  [可选参数]  file_source  file_target

示例

从“本次”复制到“远程”:

复制文件:scp  local_file_path  username@192.168.0.2:remote_folder_path
复制目录:scp  -r  local_file_path  username@192.168.0.2:remote_folder_path

从 “远程” 复制到 “本地”:

复制文件:scp  username@192.168.0.2:remote_folder_path  local_file_path
复制目录:scp  -r  username@192.168.0.2:remote_folder_path  local_file_path

grep 命令

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

示例

在文件4.txt中查找含student的行

grep  student  4.tx

在所有以d开头的文件中查找含test的行

grep 'test'  d*

在aa.js、bb.js、cc.js文件中查找含test的行

grep 'test' aa.js bb.js cc.js

从当前文件夹的所有子文件(包含子目录中的文件)中查找含test的行

grep 'test' . -r

示例:-E(开启正则查找)

查找含“template/”或“static/”的行

grep -E "template/|static/"  test.text

查找含“template/|static/”的行

grep "template/|static/"  test.text

查找含“$”的行

grep "\\$" test.text

find 命令

在指定目录下查找文件,查找的范围包含了“指定目录”的子目录。

格式

find pathname -options
    * -print: find命令将匹配的文件输出到标准输出
    * -type:
        * b - 块设备文件。
        * d - 目录。
        * c - 字符设备文件。
        * p - 管道文件。
        * l - 符号链接文件。
        * f - 普通文件。
    * -name:按照文件名查找文件。

示例

列出当前用户目录(/home/username/)下的所有文件,下面两句命令作用相同

find $HOME -print
find ~ -print

在当前目录下的所有.svn文件夹

find  .  -type  d  -name  '.svn'

在当前目录下查找文件名包含ent的文件

find . -type f -name '*ent*'

echo 命令

向屏幕上打印输出;或将内容输出到某一文件中。

示例:

打印222

echo '222';

将222“输出”到log.txt,会替换到原文件里的内容。

echo '222' >log.txt;

将222“追加”到log.txt

echo '222' >>log.txt;

清空log.txt

echo  >log.txt

逐行读取t.js的文件,追加到Log.txt中

while read line; 
do 
    echo $line >>log.txt;
done <'t.js'

xargs 命令

大多数 Linux 命令都会产生输出:文件列表、字符串列表等。
但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?使用xargs。

示例:

在当前目录下查找“.svn”文件夹,并产出这些文件夹。“find”命令查找,然后将查找出的内容传给后面的“rm”命令

 find . -type d -name ".svn" | xargs rm -rf;

file 命令

辨识文件类型,有些类似windows中的"查看->详细信息列表"

示例

列出当前目录下所有“文件”和“文件夹”的信息

file ./*;

列出当前目录下“docs”文件夹的信息

file ./docs;

cat 命令

输出,类似于echo;但其可以对输出的内容进行加工

参数:

n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
v 或 --show-nonprinting

示例:

textfile的内容为:

aaa

bbb
ccc

把 textfile1 的档案内容加上行号后输入到 textfile2 这个档案里

cat -n textfile1 > textfile2;

textfile2的内容为:
     1  aaa
     2
     3  bbb
     4  ccc

把 textfile1 的档案内容加上行号(空白行不加)之后将内容附加到 textfile2 里。

cat -n textfile1 > textfile2;

textfile2的内容为:
     1  aaa

     2  bbb
     3  ccc

把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

cat -b textfile1 textfile2 >> textfile3

此为清空/etc/test.txt档案内容,使用echo不能完全清空文件内容,文件仍有一个空行符。

cat /dev/null > /etc/test.txt

cat 也可以用来制作 image file。例如要制作软碟的 image file,将软碟放好后打

cat /dev/fd0 > OUTFILE

相反的,如果想把 image file 写到软碟,请打

cat IMG_FILE > /dev/fd0

/dev/null

把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.

示例

禁止标准输出,原本要输出的内容,现被写入到"/dev/null"中,从而不显示任何内容

cat filename >/dev/null;

带有编号的示例

  • 2 # 如果"$filename"不存在,将不会有任何错误信息提示
  • 3 ...
  • 还有其他的编号

禁止标准输出和标准错误的输出

cat filename 2>/dev/null >/dev/null

tar 打包

所谓打包,就是把多个文件(夹)组成一个集合。linux下只能对一个文件进行压缩,所以如果想对多个文件进行压缩的话,就必须先打包。

格式: tar -参数 压缩后的文件名 需要压缩的文件

参数

  • -c :建立一个压缩文件的参数指令(create 的意思);
  • -x :解开一个压缩文件的参数指令!
  • -t :查看 tarfile 里面的文件!
  • 特别注意,c/x/t 仅能存在一个!因为不可能同时压缩与解压缩。
  • -z :是否需要用 gzip 压缩?
  • -j :是否需要用 bzip2 压缩?
  • -v :压缩的过程中显示文件!
  • -f :使用档名,请留意,f后面紧跟归档的文件名

gzip 压缩

对打包后的文件进行压缩

示例:打包和压缩

压缩

将整个 "/etc" 目录下的文件全部打包成为 "/tmp/etc.tar"

tar  -cvf  /tmp/etc.tar  /etc;      # 仅打包,不压缩
tar  -zcvf  /tmp/etc.tar.gz  /etc;  # 打包,并以 gzip 压缩
tar  -jcvf  /tmp/etc.tar.bz2  /etc; # 打包,并以 bzip2 压缩

解压和解包

gzip -d test.tar.gz;    # 将“test.tar.gz”解压为“test.tar”  
tar  -xf  test.tar;     # 将“test.tar”的包解开

上述两步骤可以合称为:

tar -zxvf .tar.gz;    # 解开一个gizp压缩的包
tar -xvf  .tar;       # 解开一个tar包

awk 命令

awk是一种用于处理数据和生成报告的编程语言。一般的使用格式是:

awk '{pattern + action}' {filenames}

文件test.txt的内容如下,相应的分割符号为两个空格

aa2  bb3  cc4
dd  ee  ff
gg  ee  hh

执行命令:awk '{print $2}' test.txt,该命令的“pattern”部分为空,就是匹配所有行,输出结果如下

bb3
ee
ee

执行命令:awk '/e/ {print $2}' test.txt,该命令会匹配含有字符"e"的行,输出结果如下

ee
ee

综合示例

svn st | grep -E 'template/|static/' | grep -E 'M|?' | awk '{print $2}'

上述命令的功能是,筛选出当前版本库内“template”和“static”两个目录下修改的文件,并打印出这些文件,详解:

* 第一部分:显示文件和子目录的状态
* 第二部分:筛选出含template/或static/的行
* 第三部分:筛选出含M或?的行
* 第三部分:只输出文件的地址列

 

posted @ 2016-08-14 10:04  小-波  阅读(340)  评论(0编辑  收藏  举报