Haste makes waste

linux-01-Linux基础命令(1)

Posted on By lijun

Linux起源于Unix,LinuxOS分为两部分,即Kernel与UserLand部分,Kernel指直接与硬件打交道的部分,由Kernel将不同硬件带来的差异进行吸收,UserLand部分指OS所需要的,除了Kernel之外的部分,比如文件系统,文件操作Command以及shell等。

1. 文件操作(ls,cp,mv,rm)

1.1 文件列举-ls

通过该命令,列举出文件名和目录名,语法如下

ls [option] [file]

--[option]
1. -a:将.开始的隐藏文件全部输出

2. -l:长形式输出

3. -t:根据最后更新时间输出

4. -r:降序输出

  • 例1:*与?的差别
$ cd /etc 
$ ls*.conf 

Trolltech.conf nfsmount.conf 
asound.conf  nsswitch.conf 
autofs_ldap_auth.conf ntp.conf 
(略) 
$ cd /etc 
$ ls???.conf 

cas.conf gai.conf 
ntp.conf sos.conf 
yum.conf 
  • 例2:隐藏文件的输出,la长形式输出含隐藏文件的所有文件
ls -la /home/linuxtext 

1.2 文件复制-cp

cp [option] ori-path-copy destination-path-copy

--[option]

1. -i:输出确认用提示,比如原始目录下有同名文件,则会提示,避免覆盖原始文件

2. -r:复制整个文件夹,cp默认只复制文件,添加-r后能将该目录下所有的文件进行复制
※recursive

3. -p:将原文件的作者/属性/更新时间等信息,一起复制到新文件中

  • 例:cp /etc/hosts ~
$ cp /etc/hosts ~ 
$ ls 
hosts  

将hosts文件复制到了当前目录

  • 例:cp /etc/hosts ~/hosts.newname 指定文件名

  • 例:cp -r olddir/ newdir/ 文件夹复制

$ mkdir olddir newdir 
(olddir と newdir を作成) 

$ cp -r olddir/ newdir/ 

$ ls newdir/ olddir 

1.3 文件移动-mv

mv  [option] ori-path destination-path

1. -i:输出确认用提示,比如原始目录下有同名文件,则会提示,避免覆盖原始文件

2. -f:强制执行

  1. ori-path:文件,destination-path:目录 → 移动文件到对应的目录下
  2. ori-path:目录,destination-path:目录 → 移动目录到对应的目录下,成为子目录
  3. ori-path:文件,destination-path:还不存在的文件名 → 重命名
  4. ori-path:文件,destination-path:还不存在的目录名 → 重命名

1.4 文件删除-rm

rm [option] 文件名

--[option]

1. -i:输出确认用提示,比如原始目录下有同名文件,则会提示,避免覆盖原始文件

2. -f:强制执行

3. -r:删除整个文件夹

2. 目录操作(pwd,cd,mkdir,rmdir)

2.1 获取当前目录pwd(Print Working Directory)

$ pwd /home/penguin 

2.2 更改目录cd(Change Directory)

$ pwd 
/home/penguin 
$ cd /usr 

将当前目录修改为/usr

2.3 作成目录mkdir

mkdir [option] directoryname

-- [option] 
1. -p:如果directoryname是多层目录,则将其上层目录也作成

  • 例:不使用-p逐次新建目录
$ mkdir dir1 
$ mkdir dir1/dir2 
$ mkdir dir1/dir2/dir3 
  • 例:使用-p一次新建目录
$ mkdir -p dir1/dir2/dir3 
$ mkdir -p dir4/dir5/dir6 
$ ls -R dir4 
dir4: 
dir5 

dir4/dir5: 
dir6 

dir4/dir5/dir6: 

2.4 目录的删除 rmdir

只能用于删除空目录,如果目录中有文件的话,使用rm -r进行删除

rmdir [option] directoryname

-- [option] 
1. -p:如果directoryname是多层目录,则将所有目录进行删除。

默认情况下,只删除最后一层的目录,但是其前提条件为目录必须为空。

$ mkdir directory1 directory2 
(ディレクトリを作成) 

$ touch directory2/file 
(directory2 ディレクトリ内に file を作成) 

$ ls 
directory1 directory2 

$ rmdir directory1 
$ ls 
directory2 
(directory1 は空なので削除できる) 

$ rmdir directory2 
rmdir: failed to remove `directory2/': ディレクトリは空ではありません 
(directory2 は空ではないため削除できない) 

$ rm -r directory2/ 

$ ls 
(directory2 も削除できた) 

通常:养成使用rmdir删除目录的习惯,这样能减少误删除带来的危害

2.5 几个目录的代表符号 . .. ~ /

  • .:当前目录

  • ..:父目录

  • ~:home目录,根据用户不同而不同

  • /:root目录

2.6 绝对目录和相对目录

  1. /usr/bin/xxx 绝对路径,以/根root目录为起点

  2. ../bin/xxx 相对路径,以..当前目录的父目录为起点

3. 显示文件内容(cat,less)

3.1 使用cat


cat [option] filename

1. -n:显示行号

3.2 使用pager

如果文件有很多行的时候,使用lessmore能进行分页显示。

more filename
less filename
  • space key:下一页
  • b:上一页
  • f:下一页
  • :上一行
  • :下一行
  • /单词:查找
  • q:结束

4. 文件的查找(find)

find filePath -name fileName
  • 例:在etc目录下找名为hosts的文件
$ find /etc/ -name hosts 
find: `/etc/pki/CA/private': 許可がありません 
/etc/sysconfig/networking/profiles/default/hosts 
(略) 
/etc/hosts

/etc下有不少目录是一般user没有权限的

5. command的路径(which)

which command名

显示出该command实际program的所在位置。

  • 例子:
$ echo $PATH 
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/linuxtext/bin 
(ユーザが参照できるパスを確認) 

$ which cat 
/bin/cat 
(cat コマンドは/bin 配下に配置されているのがわかる) 

6. 使用帮助文件(–help,man)

コマンド --help 
  • 例子:
$ ls--help 
使用法: ls [オプション]... [ファイル]... 
man コマンド名 

1. -k 单词:将包含`单词`的一览输出
man ls
man cp