Linux 常用命令大全

和您一起终身学习,这里是程序员Android

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、cd 命令
二、--help 命令
三、 ls 命令
四、touch 命令
五、mkdir命令
六、pwd 命令
七、echo 命令
八、cat 命令
九、Tab 键
十、vi 或者vim 命令
十一、rm 命令
十二、mv 命令
十三、cp 命令
十四、find 命令
十五、grep 命令
十六、chmod 命令
十七、压缩与解压命令
十八、Top命令
十九、在某一类文件中(比如:*.xml)查找字符串
二十、 字符串替换命令
二十一、Tree 命令
二十二、显示目录下的所有文件
二十三、统计目录下文件个数

一、cd 命令

cd 命令是 Linux常用命令之一,主要用于进入目录(相当于windows的文件夹)
比如我想进入TestLinuxCommond这个目录。
可以使用cd TestLinuxCommond/

programAndroid@ubuntu:~$ cd TestLinuxCommond/
programAndroid@ubuntu:~/TestLinuxCommond$ 

比如我想退出TestLinuxCommond这个目录。
可以使用cd ..

programAndroid@ubuntu:~/TestLinuxCommond$ cd ..
programAndroid@ubuntu:~$ 

如果想退两层目录,可以使用cd ../..

programAndroid@ubuntu:~/TestLinuxCommond/testmv/test$ ls
programAndroid@ubuntu:~/TestLinuxCommond/testmv/test$ cd ../..
programAndroid@ubuntu:~/TestLinuxCommond$ 

二、--help 命令

当我们不知道一个命令如何使用时候,可以使用 --help 查看这个命令是干嘛的。
--help相当于用户命令帮忙的手册。
比如 我想看看 cd命令是如何使用的,可以使用cd ---help

programAndroid@ubuntu:~/TestLinuxCommond$ cd ---help
-bash: cd: --: invalid option
cd: usage: cd [-L|[-P [-e]] [-@]] [dir]
programAndroid@ubuntu:~/TestLinuxCommond$ 

比如 我想看看 ls命令是如何使用的,使用参数如何,可以使用ls ---help

programAndroid@ubuntu:~/TestLinuxCommond$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      scale sizes by SIZE before printing them.  E.g.,
                               '--block-size=M' prints sizes in units of
                               1,048,576 bytes.  See SIZE format below.
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information)
                               with -l: show ctime and sort by name
                               otherwise: sort by ctime, newest first
  -C                         list entries by columns
      --color[=WHEN]         colorize the output.  WHEN defaults to 'always'
                               or can be 'never' or 'auto'.  More info below
  -d, --directory            list directory entries instead of contents,
                               and do not dereference symbolic links
  -D, --dired                generate output designed for Emacs' dired mode
  -f                         do not sort, enable -aU, disable -ls --color
  -F, --classify             append indicator (one of */=>@|) to entries
      --file-type            likewise, except do not append '*'
      --format=WORD          across -x, commas -m, horizontal -x, long -l,
                               single-column -1, verbose -l, vertical -C
      --full-time            like -l --time-style=full-iso
  -g                         like -l, but do not list owner
      --group-directories-first
                             group directories before files.
                               augment with a --sort option, but any
                               use of --sort=none (-U) disables grouping
  -G, --no-group             in a long listing, don't print group names
  -h, --human-readable       with -l, print sizes in human readable format
                               (e.g., 1K 234M 2G)
      --si                   likewise, but use powers of 1000 not 1024
  -H, --dereference-command-line
                             follow symbolic links listed on the command line
      --dereference-command-line-symlink-to-dir
                             follow each command line symbolic link
                             that points to a directory
      --hide=PATTERN         do not list implied entries matching shell PATTERN
                               (overridden by -a or -A)
      --indicator-style=WORD  append indicator with style WORD to entry names:
                               none (default), slash (-p),
                               file-type (--file-type), classify (-F)
  -i, --inode                print the index number of each file
  -I, --ignore=PATTERN       do not list implied entries matching shell PATTERN
  -k, --kibibytes            use 1024-byte blocks
  -l                         use a long listing format
  -L, --dereference          when showing file information for a symbolic
                               link, show information for the file the link
                               references rather than for the link itself
  -m                         fill width with a comma separated list of entries
  -n, --numeric-uid-gid      like -l, but list numeric user and group IDs
  -N, --literal              print raw entry names (don't treat e.g. control
                               characters specially)
  -o                         like -l, but do not list group information
  -p, --indicator-style=slash
                             append / indicator to directories
  -q, --hide-control-chars   print ? instead of non graphic characters
      --show-control-chars   show non graphic characters as-is (default
                             unless program is 'ls' and output is a terminal)
  -Q, --quote-name           enclose entry names in double quotes
      --quoting-style=WORD   use quoting style WORD for entry names:
                               literal, locale, shell, shell-always, c, escape
  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively
  -s, --size                 print the allocated size of each file, in blocks
  -S                         sort by file size
      --sort=WORD            sort by WORD instead of name: none -U,
                             extension -X, size -S, time -t, version -v
      --time=WORD            with -l, show time as WORD instead of modification
                             time: atime -u, access -u, use -u, ctime -c,
                             or status -c; use specified time as sort key
                             if --sort=time
      --time-style=STYLE     with -l, show times using style STYLE:
                             full-iso, long-iso, iso, locale, +FORMAT.
                             FORMAT is interpreted like 'date'; if FORMAT is
                             FORMAT1FORMAT2, FORMAT1 applies to
                             non-recent files and FORMAT2 to recent files;
                             if STYLE is prefixed with 'posix-', STYLE
                             takes effect only outside the POSIX locale
  -t                         sort by modification time, newest first
  -T, --tabsize=COLS         assume tab stops at each COLS instead of 8
  -u                         with -lt: sort by, and show, access time
                               with -l: show access time and sort by name
                               otherwise: sort by access time
  -U                         do not sort; list entries in directory order
  -v                         natural sort of (version) numbers within text
  -w, --width=COLS           assume screen width instead of current value
  -x                         list entries by lines instead of by columns
  -X                         sort alphabetically by entry extension
  -Z, --context              print any SELinux security context of each file
  -1                         list one file per line
      --help     display this help and exit
      --version  output version information and exit

SIZE is an integer and optional unit (example: 10M is 10*1024*1024).  Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).

Using color to distinguish file types is disabled both by default and
with --color=never.  With --color=auto, ls emits color codes only when
standard output is connected to a terminal.  The LS_COLORS environment
variable can change the settings.  Use the dircolors command to set it.

Exit status:
 0  if OK,
 1  if minor problems (e.g., cannot access subdirectory),
 2  if serious trouble (e.g., cannot access command-line argument).

Report ls bugs to [email protected]
GNU coreutils home page: 
General help using GNU software: 
For complete documentation, run: info coreutils 'ls invocation'
programAndroid@ubuntu:~/TestLinuxCommond$ 

三、 ls 命令

ls用来显示当前目录下都有哪些文件、或者目录(Window下叫文件夹)
备注:
使用 ls -l 可以将当前目录下的所有内容以列表形式显示,同时并显示文件的详细信息。
比如我想看看当前目录下有什么文件,可以使用ls

programAndroid@ubuntu:~/TestLinuxCommond$ ls
test.txt
programAndroid@ubuntu:~/TestLinuxCommond$

比如我想看看当前目录下文件的详细信息,可以使用ls -l

programAndroid@ubuntu:~/TestLinuxCommond$ ls -l
total 0
-rw-rw-r-- 1 programAndroid programAndroid 0 Jul 18 16:24 test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ 

四、touch 命令

touch 用来创建文本文件,可以有后缀,也可以没有,完全看个人喜好。
比如 我想创建一个testlinux.txt文件,可以使用touch testlinux.txt

programAndroid@ubuntu:~/TestLinuxCommond$ touch testlinux.txt
programAndroid@ubuntu:~/TestLinuxCommond$ ls
testlinux.txt  test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ 

五、mkdir 命令

mkdir 用来创建目录,linux下的目录相当于Windows下的文件夹。
比如我想创建一个test目录,可以使用mkdir test

programAndroid@ubuntu:~/TestLinuxCommond$ mkdir test
programAndroid@ubuntu:~/TestLinuxCommond$ ls
test  testlinux.txt  test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ 

六、pwd 命令

pwd 用来显示 当前所在目录的路径。
比如我想看看我当前目录所在的路径是什么,可以使用pwd

programAndroid@ubuntu:~/TestLinuxCommond$ pwd
/home/programAndroid/TestLinuxCommond
programAndroid@ubuntu:~/TestLinuxCommond$ 

七、echo 命令

echo命令 主要用来向文本文件中追加内容。
比如我要将hello Linux 写入到testlinux.txt文件中,可以使用echo "hello Linux" > testlinux.txt

programAndroid@ubuntu:~/TestLinuxCommond$ echo "hello Linux" > testlinux.txt 
programAndroid@ubuntu:~/TestLinuxCommond$ cat testlinux.txt 
hello Linux
programAndroid@ubuntu:~/TestLinuxCommond$ 

八、cat 命令

cat命令主要用来显示文本文件中的内容。
比如我要显示 testlinux.txt 文本中的内容,可以使用cat testlinux.txt

programAndroid@ubuntu:~/TestLinuxCommond$ cat testlinux.txt 
hello Linux
programAndroid@ubuntu:~/TestLinuxCommond$ 

九、Tab 键

Tab 键 在Linux 下主要用来辅助输入,快速补全的功能。
比如我们想看当前目录下以test 开头的目录或者文件时,但是我们有忘记文件或者目录的全称,此时可在输入开头后按下Tab键,系统就会列出以test开头的所有文件或者目录。
举例如下:

programAndroid@ubuntu:~/TestLinuxCommond$ ls test
test/          testlinux.txt  test.txt       
programAndroid@ubuntu:~/TestLinuxCommond$ 

十、vi 或者vim 命令

vi或者vim命令,主要是通过vim编辑器对 文本文件进行编辑。
比如我们想编辑 testlinux.txt这个文件,此时可以使用 vim testlinux.txt或者vim testlinux.txt
输入命令后需要 按i 或者 a对文本文件进行输入操作。

1.按i 或者 a对文本文件进程插入操作

2.按 Esc 键,输入:(冒号)保存文件

命令 意义
w 保存
q 退出
! 强制
wq 保存并退出
q! 放弃修改,强制退出

3.set nu 显示行号 set nonu 取消显示行号

使用格式如下:
set nu或者set nonu

set nu

4./查找的字符串 用来查找字符串

使用格式如下:
/查找的字符串
比如查找e,此时 按N键可以全局切换查找上下字符串。

/查找的字符串

十一、rm 命令

rm命令主要用来执行删除文件或者目录的操作,注意两个是有区别的。

删除文件

使用格式如下:rm 文件名
比如我想删除test.txt,可以使用 rm text.txt

programAndroid@ubuntu:~/TestLinuxCommond$ ls
test  testlinux.txt  test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ rm test.txt 
programAndroid@ubuntu:~/TestLinuxCommond$ ls
test  testlinux.txt
programAndroid@ubuntu:~/TestLinuxCommond$ 

删除目录,

使用格式如下:
rm -r 文件名
删除目录时候需要添加参数 -r,这样主要是用来递归删除目录下的所有内容(包含 目录、文件等)。
比如我想删除test目录

programAndroid@ubuntu:~/TestLinuxCommond$ ls
test  testlinux.txt
programAndroid@ubuntu:~/TestLinuxCommond$ rm test
rm: cannot remove ‘test’: Is a directory
programAndroid@ubuntu:~/TestLinuxCommond$ ls
test  testlinux.txt
programAndroid@ubuntu:~/TestLinuxCommond$ rm -r test
programAndroid@ubuntu:~/TestLinuxCommond$ ls
testlinux.txt
programAndroid@ubuntu:~/TestLinuxCommond$ 

十二、mv 命令

mv 主要用来移动、或者重命名文件。

重命名

使用格式如下:
mv 老名字文件 新名字
假如我想将testlinux.txt 重命名为test.txt,可以使用 mv testlinux.txt test.txt
举例如下:

programAndroid@ubuntu:~/TestLinuxCommond$ mkdir testmv
programAndroid@ubuntu:~/TestLinuxCommond$ ls
testlinux.txt  testmv
programAndroid@ubuntu:~/TestLinuxCommond$ mv testlinux.txt  test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ ls
testmv  test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ 

移动

使用格式如下:
mv 要移动的文件 要移动文件的目的地
比如我想将当前目录下的test.txt移动到testmv目录下,可以使用mv test.txt testmv/

programAndroid@ubuntu:~/TestLinuxCommond$ ls
testmv  test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ mv test.txt testmv/
programAndroid@ubuntu:~/TestLinuxCommond$ ls
testmv
programAndroid@ubuntu:~/TestLinuxCommond$ cd testmv/
programAndroid@ubuntu:~/TestLinuxCommond/testmv$ ls
test  test.txt
programAndroid@ubuntu:~/TestLinuxCommond/testmv$ 

十三、cp 命令

使用格式如下:
mv 要复制的文件 要复制文件的目的地
cp 命令用来复制文件。
比如我想复制text.txt 到test 目录下,可以使用 cp test.txt test

programAndroid@ubuntu:~/TestLinuxCommond/testmv$ ls
test  test.txt
programAndroid@ubuntu:~/TestLinuxCommond/testmv$ cp test.txt test
programAndroid@ubuntu:~/TestLinuxCommond/testmv$ cd test/
programAndroid@ubuntu:~/TestLinuxCommond/testmv/test$ ls
test.txt
programAndroid@ubuntu:~/TestLinuxCommond/testmv/test$ 

复制并包含文件详细目录的方法

programAndroid@programAndroid:$  cp --parents -av   tools/releasetools/build_image.py   /programAndroid/log/ 

十四、find 命令

find 用来查找搜索文件。
比如我要查找当前目录下名为test.txt的文件
可以使用find . -name test.txt 命令查找。
举例如下:

programAndroid@ubuntu:~/TestLinuxCommond$ find . -name test.txt
./testmv/test.txt
./testmv/test/test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ 

查找某路径下的包含三级目录的命令

find /home/test -type d -maxdepth 3

十五、grep 命名

grep 命令用来查找文件中的字符串资源。

区分大小写

比如我想查找字符串 Sprocomm,可以使用grep "Sprocomm" -r .
此时的查找是按照大小写严格意思上查找

programAndroid@ubuntu:~/TestLinuxCommond$ grep "Sprocomm" -r .
./testmv/test.txt:Welcome to Sprocomm
./testmv/test/test.txt:Welcome to Sprocomm
programAndroid@ubuntu:~/TestLinuxCommond$ 

不区分大小写

添加 -i ,ingore 忽略大小写。
比如我想查找字符串 Sprocomm,可以使用grep "Sprocomm" -ri .

programAndroid@ubuntu:~/TestLinuxCommond$ grep "sprocomm" -r .
programAndroid@ubuntu:~/TestLinuxCommond$ grep "sprocomm" -ri .
./testmv/test.txt:Welcome to Sprocomm
./testmv/test/test.txt:Welcome to Sprocomm

十六、chmod 命令

chmod命令 主要用来修改目录或文件权限。

programAndroid@ubuntu:~/TestLinuxCommond$ ls -l
total 4
drwxrwxr-x 3 programAndroid programAndroid 4096 Jul 18 17:56 testmv
programAndroid@ubuntu:~/TestLinuxCommond$ 
名称 简称 代表意义 数值
d dir 目录 -
r read 读文件权限 4
w write 写文件权限 2
x - 可执行权限(通常是以下sh脚本,库文件等) 1

加入我想改变 testmv下所有文件的读、写执行权限。
可以使用chmod 777 -R .

programAndroid@ubuntu:~/TestLinuxCommond$ ls -l
total 4
drwxrwxr-x 3 programAndroid programAndroid 4096 Jul 18 17:56 testmv
programAndroid@ubuntu:~/TestLinuxCommond$ chmod 777 -R .
programAndroid@ubuntu:~/TestLinuxCommond$ ls -l
total 4
drwxrwxrwx 3 programAndroid programAndroid 4096 Jul 18 17:56 testmv
programAndroid@ubuntu:~/TestLinuxCommond$ 

十七、压缩与解压命令

tar 压缩解压命令

压缩命令格式 :
tar -cvf *.tar 要压缩的文件
比如我想压缩一个testmv.tar ,可以使用 tar -cvf test.tar testmv/

programAndroid@ubuntu:~/TestLinuxCommond$ tar -cvf test.tar testmv/
testmv/
testmv/test.txt
testmv/test/
testmv/test/test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ ls
testmv  test.tar
programAndroid@ubuntu:~/TestLinuxCommond$ 

解压命令格式
tar -xvf test.tar
比如我想解压缩一个test.tar ,可以使用 tar -xvf test.tar

programAndroid@ubuntu:~/TestLinuxCommond$ rm -rf testmv/
programAndroid@ubuntu:~/TestLinuxCommond$ ls
test.tar
programAndroid@ubuntu:~/TestLinuxCommond$ tar -xvf test.tar  
testmv/
testmv/test.txt
testmv/test/
testmv/test/test.txt
programAndroid@ubuntu:~/TestLinuxCommond$ ls
testmv  test.tar
programAndroid@ubuntu:~/TestLinuxCommond$ 

zip 压缩命令

programAndroid@programAndroid:/programAndroid/log$ zip  -r test.zip test.bat 
  adding: test.bat (stored 0%)
programAndroid@programAndroid:/programAndroid/log$ 

十八、Top 命令

Top 命令使用方法

adb shell top -n 30 -m 10  -k -%CPU > top1.txt

十九、在某一类文件中(比如:*.xml)查找字符串

find . -type f -name "*.xml" | xargs grep "xxx"

二十、字符串替换命令

在某个目录下替换说有的字符串的命令

比如 将 WLAN 替换为WiFi

sed -i 's/WLAN/WiFi/g' `grep WLAN . -rl`

二十一、Tree 命令

E:\AOSP\android_10_0_0_r40\frameworks\av\camera>tree
卷 文档 的文件夹 PATH 列表
卷序列号为 00000233 65F3:3762
E:.
├─aidl
│  └─android
│      └─hardware
│          └─camera2
│              ├─impl
│              ├─params
│              └─utils
├─camera2
├─cameraserver
├─include
│  └─camera
│      ├─android
│      │  └─hardware
│      └─camera2
├─ndk
│  ├─impl
│  ├─include
│  │  └─camera
│  └─ndk_vendor
│      ├─impl
│      └─tests
└─tests

E:\AOSP\android_10_0_0_r40\frameworks\av\camera>

二十二、显示目录下的所有文件

find -type f -print

使用举例:

$ find -type f -print
./Android.bp
./Barrier.h
./BufferLayer.cpp
./BufferLayer.h
./BufferLayerConsumer.cpp
./BufferLayerConsumer.h
./BufferQueueLayer.cpp
./BufferQueueLayer.h
./BufferStateLayer.cpp
./BufferStateLayer.h

二十三、统计目录下文件个数

命令如下
ls -lR |grep '^-' |wc -l
使用举例:

/e/AOSP/android_10_0_0_r40/frameworks/native/services/surfaceflinger (master)
$ ls -lR |grep '^-' |wc -l
294

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

你可能感兴趣的:(Linux 常用命令大全)