Linux---shell基本指令

时间:2022-05-13 21:51:14

1. 显示当前目录 pwd

wangzhengchao@ubuntu:~$ cd /home/wangzhengchao/Desktop/
wangzhengchao@ubuntu:~/Desktop$ pwd
/home/wangzhengchao/Desktop

 2. 改变目录 cd

wangzhengchao@ubuntu:~$ pwd
/home/wangzhengchao
wangzhengchao@ubuntu:~$ cd Downloads/usr
wangzhengchao@ubuntu:~/Downloads/usr$ pwd
/home/wangzhengchao/Downloads/usr
wangzhengchao@ubuntu:~/Downloads/usr$ cd ..
wangzhengchao@ubuntu:~/Downloads$ pwd
/home/wangzhengchao/Downloads
wangzhengchao@ubuntu:~/Downloads$ cd
wangzhengchao@ubuntu:~$ pwd
/home/wangzhengchao

注意:

  • 当登录系统后,总是处于当前用户主目录中 /home/wangzhengchao
  • ..代表当前目录到上一级目录
  • . 代表当前目录
  • ~代表用户主目录
  • 可以使用命令cd ../..直接进入根目录

3. 列出目录内容 ls

ls基本语法 ls [option] [file]

-a 显示所有文件,包括隐藏文件
-l 显示文件到各种属性
wangzhengchao@ubuntu:~$ pwd
/home/wangzhengchao
wangzhengchao@ubuntu:~$ ls
Desktop    Downloads         Music     Public     Videos
Documents  examples.desktop  Pictures  Templates
wangzhengchao@ubuntu:~$ ls -l
总用量 44
drwxr-xr-x 2 wangzhengchao wangzhengchao 4096 9月  25 14:29 Desktop
drwxr-xr-x 5 wangzhengchao wangzhengchao 4096 9月  26 21:14 Documents
drwxr-xr-x 6 wangzhengchao wangzhengchao 4096 9月  26 21:40 Downloads
-rw-r--r-- 1 wangzhengchao wangzhengchao 8980 9月  23 02:55 examples.desktop
drwxr-xr-x 2 wangzhengchao wangzhengchao 4096 9月  23 09:32 Music
drwxr-xr-x 2 wangzhengchao wangzhengchao 4096 9月  23 09:32 Pictures
drwxr-xr-x 2 wangzhengchao wangzhengchao 4096 9月  23 09:32 Public
drwxr-xr-x 2 wangzhengchao wangzhengchao 4096 9月  23 09:32 Templates
drwxr-xr-x 2 wangzhengchao wangzhengchao 4096 9月  23 09:32 Videos

ls-l 显示的属性包括:

  • 文件权限标志
  • 文件的链接个数
  • 文件所有者的用户名
  • 该用户所在到用户组名
  • 文件大小
  • 最后一次修改到日期
  • 最后一次修改到时间
  • 文件名

 4. 列出目录内容 dir / vdir

wangzhengchao@ubuntu:~$ pwd
/home/wangzhengchao
wangzhengchao@ubuntu:~$ dir Downloads/
employees_db                navicat121_mysql_en_x64.tar.gz
employees_db-full-1.0.6.tar.bz2        navicat.desktop
flash_player_npapi_linux.x86_64.tar.gz    navicat.png
LGPL                    readme.txt
libflashplayer.so            sogoupinyin_2.2.0.0108_amd64.deb
license.pdf                sublime_text_3_build_3176_x64.tar.bz2
navicat121_mysql_en_x64            usr
wangzhengchao@ubuntu:~$ vdir Downloads/
总用量 173856
drwxrwxr-x 2 wangzhengchao wangzhengchao     4096 9月  25 15:03 employees_db
-rw-rw-r-- 1 wangzhengchao wangzhengchao 26715056 3月  30  2009 employees_db-full-1.0.6.tar.bz2
-rw-rw-r-- 1 wangzhengchao wangzhengchao  9047129 9月  26 21:35 flash_player_npapi_linux.x86_64.tar.gz
drwxrwxr-x 2 wangzhengchao wangzhengchao     4096 8月  28 03:59 LGPL
-rw-rw-r-- 1 wangzhengchao wangzhengchao 16603112 8月  28 03:59 libflashplayer.so
-rw-rw-r-- 1 wangzhengchao wangzhengchao  2792147 8月  28 03:59 license.pdf
drwxr-xr-x 4 root          root              4096 9月  23 22:47 navicat121_mysql_en_x64
-rw-rw-r-- 1 wangzhengchao wangzhengchao 89593252 9月  23 22:19 navicat121_mysql_en_x64.tar.gz
-rwxrwxr-x 1 wangzhengchao wangzhengchao      320 9月  25 14:14 navicat.desktop
-rw-rw-r-- 1 wangzhengchao wangzhengchao     5399 9月  25 14:06 navicat.png
-rw-rw-r-- 1 wangzhengchao wangzhengchao     3617 8月  28 03:59 readme.txt
-rw-rw-r-- 1 wangzhengchao wangzhengchao 22915896 9月  26 21:32 sogoupinyin_2.2.0.0108_amd64.deb
-rw-rw-r-- 1 wangzhengchao wangzhengchao 10314226 9月  25 21:03 sublime_text_3_build_3176_x64.tar.bz2
drwxrwxr-x 6 wangzhengchao wangzhengchao     4096 8月  28 03:59 usr

dir 用于列出目录内容,vdir用于列出目录内容的详细信息 相当于ls -l

5. 查看文本文件  cat / more

wangzhengchao@ubuntu:~/Downloads$ cat test
A
B
C
D
E
F
G
wangzhengchao@ubuntu:~/Downloads$ cat -n test
     1    A
     2    B
     3    C
     4    D
     5    E
     6    F
     7    G

 -n 显示行号,如果文本内容很长,使用cat指令会全部打印常出来,linu提供more指令一页一页地显示出来,空格向下翻一页,enter向下一行,Q退出

 6. 阅读文件的开头和结尾 head / tail

wangzhengchao@ubuntu:~/Downloads$ head -n 2 test
A
B
wangzhengchao@ubuntu:~/Downloads$ tail -n 2 test
F
G

 7. 查找文件内容 grep

一般格式: grep [option] pattern [file...] ,返回所有含有指定pattern的行,同时可以使用-n 命令选项显示所在行号。

wangzhengchao@ubuntu:~/Downloads$ grep Sort sort1026.cpp
void QSort(vector<int> &array, int low, int high){
        QSort(array, low, pivot-1);
        QSort(array, pivot+1, high);
void QuickSort(vector<int> &array){
    QSort(array, 0, array.size()-1);
void HeapSort(std::vector<int> &array){
    // QuickSort(array);
    HeapSort(array);
    // BubbleSort(array);

对于查找含有空格的字符,需要使用‘’包含进去,如下:

wangzhengchao@ubuntu:~/Downloads$ grep 'vector<int> &array' sort1026.cpp
int Partition(vector<int> &array, int low, int high){
void QSort(vector<int> &array, int low, int high){
void QuickSort(vector<int> &array){
void HeapAdjust(std::vector<int> &array, int start, int end){
void HeapSort(std::vector<int> &array){

8. 查找文件 find

基本语法: find [option] [path...] [expression] 

find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。

wangzhengchao@ubuntu:~$ find Downloads/ -name *.cpp
Downloads/sort1026.cpp

上述指令表示在Downloads目录下查找文件名含有.cpp的文件。根据其他属性查找文件的方法与上述指令类似。

9. 定位文件 locate

wangzhengchao@ubuntu:~$ locate *正则化.pdf
/home/wangzhengchao/Documents/机器学习集锦/机器学习算法/机器学习算法系列(28):L1、L2正则化.pdf

 10. 用户及版本信息查看

wangzhengchao@ubuntu:~$ who
wangzhengchao tty7         2018-11-04 14:09 (:0)
wangzhengchao@ubuntu:~$ whoami
wangzhengchao
wangzhengchao@ubuntu:~$ uname
Linux
wangzhengchao@ubuntu:~$ uname -a
Linux ubuntu 4.15.0-29-generic #31~16.04.1-Ubuntu SMP Wed Jul 18 08:54:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
wangzhengchao@ubuntu:~$ uname -r
4.15.0-29-generic
  • who 显示当前系统有哪些人登录,以及对应的工作台
  • whoami 显示当前用户名称
  • uname 显示当前系统的版本信息  -a 显示详细信息  -r显示内核信息

 

11. 寻求帮助 man

$ man grep
GREP(1)                                                       General Commands Manual                                                       GREP(1)

NAME
       grep, egrep, fgrep, rgrep - print lines matching a pattern

SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN]...  [-f FILE]...  [FILE...]

DESCRIPTION
       grep  searches  the  named  input FILEs for lines containing a match to the given PATTERN.  If no files are specified, or if the file “-” is
       given, grep searches standard input.  By default, grep prints the matching lines.

       In addition, the variant programs egrep, fgrep and rgrep are the same as grep -E, grep -F, and grep -r, respectively.   These  variants  are
       deprecated, but are provided for backward compatibility.

OPTIONS
...

 

12. 获取命令简介 whatis

man到内容显得有些罗嗦,whatis指令帮助用户了解指令的大致用途

wangzhengchao@ubuntu:~$ whatis grep
grep (1)             - print lines matching a pattern