Linux系统基础命令

1.Linus系统

/:根目录:一般指存放目录,不存放文件
/bin:可执行的二进制文件目录,命令存放在这个目录下
/usr:用户目录,存放用户级的文件。
/usr/bin:存放应用程序
/usr/share:存放共享数据
/usr/lib:存放不能直接运行但却是许多程序运行所必须的一下函数库文件
/usr/local:存放软件升级包
/usr/share/doc:系统说明文件存放目录
/local:本地安装软件保存位置
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下( ~:家目录)
/tmp:一般用户或正在执行的程序临时存放文件的目录
/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件
/dev:存放linus系统下的设备文件

2.Mrs Cui

cd .. 
cd ../

cd ~
ls ./.bashrc
ls .bashrc

ls ~/.bashrc
# ./就是当前路径  经常省略

ls ./tmp/
ls tmp
ls tmp/

ls ./project/tmp/rna
ls project/tmp/rna
# /不能省略,因为后续继续接路径

cd ../../../../
cd ../../
# 多次放回上层目录

注意命令与文本/路径 之间的空格

rm -r 就是删除文件夹
rm -f 强制删除 适用于删除文本/文件夹、目录

# 参数就是“-字母”。不管是Linux命令 还是软件命令
# 参数可选,可以不写,看需求

3.复习+新打的命令

1.ls

进入绝对路径:

cd /home/christine/Documents #进入绝对路径,“/”代表绝对路径

而此时若已经在/home/christine 目录下,那么可以用相对路径,更快速:

pwd
/home/christine
cd Documents
pwd
/home/christine/Documents
  • 单点符(.),表示当前目录;
  • 双点符(..),表示当前目录的上级目录。

如果你处在在主目录下的Documents目录中,需要切换到主目录下的Downloads目录,可以这么做:

christine@server01:~/Documents$ pwd 
/home/christine/Documents 
christine@server01:~/Documents$ cd ../Downloads 
christine@server01:~/Downloads$ pwd 
/home/christine/Downloads 
christine@server01:~/Downloads$

假如现在位于主目录中(/home/christine),想切换到/etc目录,可以输入如下命令:

christine@server01:~$ cd ../../etc #/etc和/home均是出于“/”(根目录下)的文件
christine@server01:/etc$ pwd
/etc
christine@server01:/etc

2.过滤输出(文件扩展匹配):

  • 星号(*)代表零个或多个字符。
$ ls -l my*
-rw-rw-r-- 1 christine christine 0 May 21 13:25 my_file 
-rw-rw-r-- 1 christine christine 0 May 21 13:25 my_scrapt 
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script

使用星号找到了三个名字以my开头的文件。和问号一样,*星号可放在过滤器中的任
意位置。

$ ls -l my_s*t
-rw-rw-r-- 1 christine christine 0 May 21 13:25 my_scrapt 
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script 

另外,可以使用感叹号(!)将不需要的内容排除在外

$ ls -l f[!a]ll
-rw-rw-r-- 1 christine christine 0 May 21 13:44 fell 
-rw-rw-r-- 1 christine christine 0 May 21 13:44 fill 
-rw-rw-r-- 1 christine christine 0 May 21 13:44 full 

3.输出/入 文本

cat head tail
cat [参数] 文本 head [参数] 文本 tail [参数] 文本
-n 按行数编号 head -n 3:展示文本前3行 tail -n 2:展示文本后num行
-A等价于-vET
查看小文本全部内容: cat 文本
输入文本:cat > newfile

more :参看文本
回车:逐行往下翻
空格键:直接翻下一页​

4.创建空文件

touch

5.复制文件

cp
cp需要两个对象:当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间

$ cp test_one test_two
$ ls -l test_*
-rw-rw-r-- 1 christine christine 0 May 21 14:35 test_one 
-rw-rw-r-- 1 christine christine 0 May 21 15:15 test_two $

$ cp -i test_one /home/christine/Documents/ $             ###??? total 0
$ ls -l /home/christine/Documents
total 0
-rw-rw-r-- 1 christine christine 0 May 21 15:25 test_one
$

也可以在cp命令中使用通配符*

6.less vim

vim Less
编辑文本 vim[参数] 新文本名 查看文本 less[参数] 目标文件
vim newfile less -S 单行显示 (注:S为大写)
vim old file less -n 行号加入编号
用来编辑文本,不可用来操作目录 最常用来查看文本
不用来查看大文本 查看大文本时必用
文本不存在时保存成新文本 不能编辑/改变原文本,只能重定向

7.删除

rmdir:默认情况下,只能删除空目录(因为rm并没有-i选项来询问是否要删除目录),rm -rf命令-强制删除文件夹。既没有警告信息,也没有声音提示.r:文件夹,F=force。

$ ls -l My_Dir
total 0
-rw-rw-r-- 1 christine christine 0 May 22 10:02 another_file $
$ rm -ri My_Dir
rm: descend into directory 'My_Dir'? y
rm: remove regular empty file 'My_Dir/another_file'? y
rm: remove directory 'My_Dir'? y
$
$ ls -l My_Dir
ls: cannot access My_Dir: No such file or directory

整个非空目录上使用rm命令。使用-r选项使得命令可以向下进入目录,删除其中
的文件,然后再删除目录本身。

8.移动

$ mv /home/christine/Pictures/fzll /home/christine/fall 
$ ls -li /home/christine/fall                               
#将文件fzll从子目录Pictures中移动到了主目录/home/christine,并将名字       ###???-li
 改为fall

9.复制

当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以
destination命名

  • 复制文件如下:
$ cp test_one test_two
$ ls -l test_*                                                  #若不加-i,若目标文件已经
-rw-rw-r-- 1 christine christine 0 May 21 14:35 test_one         存在,将被覆盖
-rw-rw-r-- 1 christine christine 0 May 21 15:15 test_two

上面的例子在目标目录名尾部加上了一个正斜线(/),这表明Documents是目录而非文件。
这有助于明确目的,而且在复制单个文件时非常重要。如果没有使用正斜线,子目录
/home/christine/Documents又不存在,就会有麻烦。在这种情况下,试图将一个文件复制
到Documents子目录反而会创建一个名为Documents的文件,连错误消息都不会显示!!

cp命令的-R参数威力强大。可以用它在一条命令中递归地复制整个目录的内容。
                                                                 
                                                 #-d:列出目录本身的信息,不列出其中的内容。
$ ls -Fd *Scripts            
Scripts/
$ ls -l Scripts/
total 25
-rwxrw-r-- 1 christine christine 929 Apr 2 08:23 file_mod.sh 
-rwxrw-r-- 1 christine christine 254 Jan 2 14:18 SGID_search.sh 
-rwxrw-r-- 1 christine christine 243 Jan 2 13:42 SUID_search.sh $
$ cp -R Scripts/ Mod_Scripts 
$ ls -Fd *Scripts Mod_Scripts/ Scripts/
$ ls -l Mod_Scripts
total 25
-rwxrw-r-- 1 christine christine 929 May 21 16:16 file_mod.sh
-rwxrw-r-- 1 christine christine 254 May 21 16:16 SGID_search.sh
-rwxrw-r-- 1 christine christine 243 May 21 16:16 SUID_search.sh

在执行cp –R命令之前,目录Mod_Scripts并不存在。它是随着cp –R命令被创建的,整个Scripts
目录中的内容都被复制到其中。注意,在新的Mod_Scripts目录中,所有的文件都有对应的新日期。
Mod_Scripts目录现在已经成为了Scripts目录的完整副本。

  • 也可以在cp命令中使用通配符。
$ cp *script Mod_Scripts/
$ ls -l Mod_Scripts
total 26
-rwxrw-r-- 1 christine christine 929 May 21 16:16 file_mod.sh 12 -rwxrw-r-- 1 christine christine 54 May 21 16:27 my_script
-rwxrw-r-- 1 christine christine 254 May 21 16:16 SGID_search.sh
-rwxrw-r-- 1 christine christine 243 May 21 16:16 SUID_search.sh

该命令将所有以script结尾的文件复制到Mod_Scripts目录中。在这里,只需要复制一个文件:
my_script。

10.重命名文件

在Linux中,重命名文件称为移动(moving)。mv命令可以将文件和目录移动到另一个位置

或重新命名。

  • 重新命名如下:
$ ls -li f?ll
296730 -rw-rw-r-- 1 christine christine 0 May 21 13:44 fall 
296717 -rw-rw-r-- 1 christine christine 0 May 21 13:44 fell 
294561 -rw-rw-r-- 1 christine christine 0 May 21 13:44 fill 
296742 -rw-rw-r-- 1 christine christine 0 May 21 13:44 full $
$ mv fall fzll
$
$ ls -li f?ll
296717 -rw-rw-r-- 1 christine christine 0 May 21 13:44 fell     #把fall重新命名为fzll,
294561 -rw-rw-r-- 1 christine christine 0 May 21 13:44 fill      故不见fall,只见fzll
296742 -rw-rw-r-- 1 christine christine 0 May 21 13:44 full 
296730 -rw-rw-r-- 1 christine christine 0 May 21 13:44 fzll $

  • 移动文件如下:
ls -li /home/christine/fzll

/home/christine/fzll

ls -li /home/christine/pictures/

total 0

mv fzll pictures/           ###是相对路径下就移动了么???

ls -li /home/christine/pictures/

tota 0

Fzll

ls-li /home/christine/fzll

ls: cannot access /home/christine/fzll: No such file or directory 
  • 也可以使用mv命令移动文件位置并修改文件名称,这些操作只需一步就能完成,如下:
ls -li Pictures/fzll 5 296730 
-rw-rw-r-- 1 christine christine 0 May 21 13:44
mv /home/christine/Pictures/fzll /home/christine/fall
ls -li /home/christine/fall
/home/christine/fall
ls -li /home/christine/Pictures/fzll
ls: cannot access /home/christine/Pictures/fzll:
No such file or directory

awk 以空格为分割域时,是以单个或多个连续的空格为分隔符的;
cut则是以单个空格作为分隔符。

who | cut -d "" -f 1   #-d:自定义分隔符 ,默认为制表符 -f:分割符分割文本后,指定显示第几列
$ who|cut -f 1
hcguo    pts/0        2018-12-12 14:35 (192.168.0.239)
qmcui    pts/2        2018-12-12 16:35 (192.168.0.230)
vip14    pts/3        2018-12-12 19:41 (192.168.0.247)
vip16    pts/4        2018-12-12 19:45 (192.168.0.103)
vip25    pts/6        2018-12-12 19:51 (192.168.0.237)
vip15    pts/8        2018-12-12 19:55 (192.168.0.236)
vip14    pts/9        2018-12-12 17:26 (192.168.0.230)
hcguo    pts/12       2018-12-12 12:02 (192.168.0.239)
qmcui    pts/14       2018-12-12 12:03 (192.168.0.230)
vip16 21:15:58 /tmp
$ who|awk '{print $!}'
awk: line 1: syntax error at or near }
vip16 21:16:13 /tmp
$ who|awk '{print $1}'
hcguo
qmcui
vip14
vip16
vip25
vip15
vip14
hcguo
qmcui

你可能感兴趣的:(Linux系统基础命令)