Linux常用命令

来自小能手俱乐部
Gaozehao讨论 | 贡献2021年10月18日 (一) 00:29的版本 (linux命令)
跳到导航 跳到搜索

ls ——List

ls 介绍

List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. 列出有关文件的信息(默认为当前目录)。如果没有指定-cftuvSUX或——Sort,则按字母顺序排序。

官方的说的很清楚,默认列出当前目录,所以可以列出其他目录或者路径下的文件信息或者目录信息。 比如:

$ls /etc/hosts
/etc/hosts

ls 参数格式

ls [OPTION]... [FILE]...

ls命令参数

-a  列出指定目录下的所有文件,包括隐藏文件
-c 使用最后一次更改文件状态以进行排序(-t)或长时间打印(-l)的时间
-h 与-l选项一起使用时,请使用单位后缀:Byte、Kilobyte、mete、gb、tb和Petabyte,以便使用以2为基数的大小将数字减少到3或更少
-l 长格式列表。(见下文)。如果输出到终端,则所有文件大小的总和将输出到长清单前面的一行中
-n 以数字形式显示用户和组id,而不是在长(-l)输出中转换为用户或组名。这个选项默认打开-l选项
-o 以长格式列出,但省略组id
-s 显示每个文件实际使用的文件系统块的数量,以512字节为单位,其中部分单元四舍五入为下一个整数值
-t 在按照字典顺序对操作数排序之前,先按修改的时间排序(最近修改的是first)
-u 使用最后一次访问的时间,而不是最后一次修改文件进行排序

ls 用法示例

[root@bogon ~]# ls
anaconda-ks.cfg  test.txt
[root@bogon ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc  test.txt
[root@bogon ~]# ls -l
总用量 8
-rw-------. 1 root root 1269 9月   3 20:01 anaconda-ks.cfg
-rw-r--r--. 1 root root    5 9月  10 10:46 test.txt
[root@bogon ~]# ls -lh
总用量 8.0K
-rw-------. 1 root root 1.3K 9月   3 20:01 anaconda-ks.cfg
-rw-r--r--. 1 root root    5 9月  10 10:46 test.txt
[root@bogon ~]# ls -ll
总用量 8
-rw-------. 1 root root 1269 9月   3 20:01 anaconda-ks.cfg
-rw-r--r--. 1 root root    5 9月  10 10:46 test.txt
[root@bogon ~]# ls -alh
总用量 28K
dr-xr-x---.  2 root root  130 9月  10 14:15 .
dr-xr-xr-x. 19 root root  253 9月   3 12:18 ..
-rw-------.  1 root root 1.3K 9月   3 20:01 anaconda-ks.cfg
-rw-r--r--.  1 root root   18 12月 29 2013 .bash_logout
-rw-r--r--.  1 root root  176 12月 29 2013 .bash_profile
-rw-r--r--.  1 root root  176 12月 29 2013 .bashrc
-rw-r--r--.  1 root root  100 12月 29 2013 .cshrc
-rw-r--r--.  1 root root  129 12月 29 2013 .tcshrc
-rw-r--r--.  1 root root    5 9月  10 10:46 test.txt
[root@bogon ~]# ls -o
总用量 8
-rw-------. 1 root 1269 9月   3 20:01 anaconda-ks.cfg
-rw-r--r--. 1 root    5 9月  10 10:46 test.txt
[root@bogon ~]# ls -oh
总用量 8.0K
-rw-------. 1 root 1.3K 9月   3 20:01 anaconda-ks.cfg
-rw-r--r--. 1 root    5 9月  10 10:46 test.txt

pwd —— Print Working Directory

pwd介绍

打印当前工作目录的完整路径名。

参数格式

pwd [OPTION]...

pwd 用法示例

[root@bogon home]# pwd
/home
[root@bogon home]#

touch

touch介绍

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

touch参数格式

touch [OPTION]... FILE...

touch命令参数

-a:或--time=atime或--time=access或--time=use  只更改存取时间;
-c:或--no-create  不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify  只更该变动时间;
-r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间>  使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。

touch用法示例

#创建三个文件
[root@bogon home]# touch test1 test2 test3
#不创建文件
[root@bogon home]# touch -c test5
[root@bogon home]# ls
test1  test2  test3
#可以看到只创建了test1、test2、test3 , -c不建立任何文件
[root@bogon home]# touch -t 202111110000 test1
[root@bogon home]# stat test*
#stat命令可以查看文件的详细变更时间,可以test1文件的最后修改时间为202111110000,说明touch -t可以修改文件最后访问时间。
  文件:"test1"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:33592597    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:home_root_t:s0
最近访问:2021-11-11 00:00:00.000000000 +0800
最近更改:2021-11-11 00:00:00.000000000 +0800
最近改动:2021-09-10 17:36:40.127043057 +0800
创建时间:-
  文件:"test2"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:33592598    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:home_root_t:s0
最近访问:2021-09-10 17:33:26.950488167 +0800
最近更改:2021-09-10 17:33:26.950488167 +0800
最近改动:2021-09-10 17:33:26.950488167 +0800
创建时间:-
  文件:"test3"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:33592599    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:home_root_t:s0
最近访问:2021-09-10 17:33:26.950488167 +0800
最近更改:2021-09-10 17:33:26.950488167 +0800
最近改动:2021-09-10 17:33:26.950488167 +0800
创建时间:-

cat

cat介绍

cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。

注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

cat 参数格式

cat [OPTION]... [FILE]...

cat命令参数

-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

cat常用参数示例

mkdir

mkdir介绍

如果目录不存在,则创建目录。

mkdir参数格式

mkdir [OPTION]... DIRECTORY...

mkdir命令参数

-Z:设置安全上下文,当使用SELinux时有效;
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
--version 显示版本信息。

mkdir常用参数示例

cd —— Change Directory

cd介绍

切换当前目录至指定目录。

cd常用参数示例

#打印当前目录到标准输出
$ pwd
/Users
#切换到目录/
$cd /

rm

rm介绍

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

rm参数格式

rm [-dfiPRrvW] file ...

rm命令参数

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

rm常用参数示例

# 创建三个文件
$ touch tmp.cc tmp.java tmp.py tmp.go
#创建目录文件
$ mkdir -p linux/test
#查看文件是否创建成功
$ ls
linux  tmp.cc  tmp.go  tmp.java tmp.py
#删除文件,并进行提示
$ rm -i tmp.cc
remove tmp.cc? y
#强制删除
$ rm -f tmp.go
#删除目录
$ rm -f linux #删除目录失败
rm: linux: is a directory
#循环删除目录下所有文件
$ rm -rf linux #删除目录成功,
$ ls
tmp.java tmp.py

mv

mv介绍

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

  1. 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
  2. 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

mv参数格式

mv [-f | -i | -n] [-v] source target mv [-f | -i | -n] [-v] source ... directory

mv命令参数

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

mv常用参数示例

##修改文件名
$ touch tmp.cc
$ ls
tmp.cc
$ mv tmp.cc tmp.java
$ ls
tmp.java
#移动文件或者目录
$ pwd
/Users/localhost/test
#移动文件并重命名
$ mv /Users/localhost/logs/tmp.txt ./tmp.log 
$ ls /Users/localhost/logs/
discover-client metabase    tesla
$ ls ./
tmp.java tmp.log
#移动目录并重命名
$ mv /Users/localhost/logs/tesla ./tesla.ba 
$ ls
tesla.ba tmp.java tmp.log

cp —— Copy

cp介绍

cp参数格式

cp命令参数

cp常用参数示例

echo

echo介绍

echo常用参数示例

head&tail

head介绍

head参数格式

head命令参数

head常用参数示例

more&less

more介绍

more参数格式

more命令参数

wc

wc介绍

wc参数格式

wc命令参数

wc常用参数示例

which

which介绍

which参数格式

which常用参数示例

whereis

whereis介绍

whereis参数格式

whereis命令参数

whereis常用参数示例

nl

nl介绍

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

nl参数格式

nl (选项) (参数)

nl命令参数

-b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);

-n :列出行号表示的方法,主要有三种:
    -n ln :行号在萤幕的最左方显示;
    -n rn :行号在自己栏位的最右方显示,且不加 0 ;
    -n rz :行号在自己栏位的最右方显示,且加 0 ;

-w :行号栏位的占用的位数。
-p :在逻辑定界符处不重新开始计算。

nl常用参数示例

ps

ps介绍

ps参数格式

ps命令参数

ps常用参数示例

kill

kill介绍

kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。

kill参数格式

kill(选项)(参数)

kill命令参数

-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:指定要送出的信息;
-u:指定用户。

kill常用参数示例

列出所有信号名称:

 kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略,下面是常用的信号:

HUP     1    终端断线
INT     2    中断(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    终止
KILL    9    强制终止
CONT   18    继续(与STOP相反, fg/bg命令)
STOP   19    暂停(同 Ctrl + Z)

find

sed

grep

free

sort

who

ifconfig

top

vi