Linux常用基本命令

Linux常用基本命令,第1张

Linux常用基本命令

Linux常用基本命令

一、常用快捷键二、文件目录

1.pwd2.ls和ll3.cd4.mkdir5.rmdir6.touch7.cp8.rm9.mv10.cat11.more12.less13.head14.tail15.> 覆盖 和 >> 追加16.history 三、时间日期类

1.date2.cal 四、文件权限类

1.文件属性2.chmod(change mode) 五、搜素查找类

1.find2.grep 过滤查找及“|”管道符3.which 六、压缩和解压类

1.gzip/gunzip压缩2.zip/unzip压缩3.tar

一、常用快捷键

ctrl+c: 停止进程ctrl+l: 清屏(之前的内容可以向上查看);彻底清屏是:resettab: 提示上下键: 查找执行过的命令 二、文件目录类 1.pwd

显示当前工作目录的绝对路径

2.ls和ll

ll 命令列出的信息更加详细,有时间,是否可读写等信息;ll不是命令,是ls -l的别名
ll会列出该文件下的所有文件信息,包括隐藏的文件;ls 只列出文件名或目录名

(base) [qi@ip--185 q_mdisk_process]$ ll
总用量 38328
-rw-rw-r-- 1 qi qi 12711452 1月  18 02:07 ceshi.gz
drwxrwxr-x 3 qi qi     4096 1月  13 06:43 conf
-rw-rw-r-- 1 qi qi     154 1月  13 06:43 __init__.py

ll -t 是降序, ll -t | tac 是升序

(base) [qi@ip-17-185 q_mdisk_process]$ ls
ceshi.gz     process_api_link.py     run_process_log.sh

ls 命令

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。-c 输出文件的 i 节点的修改时间,并以此排序。-d 将目录象文件一样显示,而不是显示其下的文件。-i 输出文件的 i 节点的索引信息。-l 列出文件的详细信息。-m 横向输出文件名,并以“,”作分格符。-n 用数字的 UID,GID 代替名称。-o 显示文件的除组信息外的详细信息。-q 用?代替不可输出的字符。-r 对目录反向排序。-s 在每个文件名后输出该文件的大小。-t 以时间排序(以最近修改的日期进行排序)-u 以文件上次被访问的时间排序。-A 显示除 “.”和“…”外的所有文件。-B 不输出以 “~”结尾的备份文件。-L 列出链接文件名而不是链接到的文件。-N 不限制文件长度。-Q 把输出的文件名用双引号括起来。-R 列出所有子目录下的文件。-S 以文件大小排序。-X 以文件的扩展名(最后一个 . 后的字符)排序。-1 一行只输出一个文件。–color=no 不显示彩色文件名–help 在标准输出上显示帮助信息。–version 在标准输出上输出版本信息并退出。

显示彩色目录列表
打开/etc/bashrc, 加入如下一行:

 alias ls="ls --color"

下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:

蓝色–>目录绿色–>可执行文件红色–>压缩文件浅蓝色–>链接文件灰色–>其他文件 3.cd

语法 cd [dirName]
用于切换当前工作目录;其中 dirName 表示法可为绝对路径或相对路径。
若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, … 则表示目前目录位置的上一层目录,-回到上一次所在目录。

跳到目前目录的上上两层 :
cd ../..
4.mkdir

创建目录,语法:mkdir [-p] dirName
参数说明:

-p 确保目录名称存在,不存在的就建一个。

实例
在工作目录下,建立一个名为 runoob 的子目录 :

mkdir runoob

在工作目录下的 runoob2 目录中,建立一个名为 test 的子目录。
若 runoob2 目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 runoob2 目录不存在,则产生错误。)

mkdir -p runoob2/test
5.rmdir

语法 rmdir [-p] dirName
删除空的目录。
参数:

-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

实例
将工作目录下,名为 AAA 的子目录删除 :

rmdir AAA

在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。

rmdir -p BBB/Test
6.touch

创建新文件

7.cp

语法 cp [options] source dest
主要用于复制文件或目录。
参数说明:

-f:覆盖已经存在的目标文件而不给出提示。-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

实例
使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:

$ cp –r test/ newtest        

注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R 。

8.rm

用于删除一个文件或者目录。

9.mv

用来为文件或目录改名、或将文件或目录移入其它位置。
语法

mv [options] source dest

mv 参数设置与运行结果

mv source_file(文件) dest_file(文件)	将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录)	将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录)	目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory

实例
将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。

mv info/ logs 

再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为:

$ mv /usr/runoob/*  . 
10.cat

用于连接文件并打印到标准输出设备上。
语法格式 cat [-AbeEnstTuv] [--help] [--version] fileName
参数说明:

-n :由 1 开始对所有输出的行数编号。-b :和 -n 相似,只不过对于空白行不编号。-s :当遇到有连续两行以上的空白行,就代换为一行的空白行。

实例:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt
11.more

以一页一页的形式显示
按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示 。
语法 more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
参数:

-num 一次显示的行数-d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)-s 当遇到有连续两行以上的空白行,就代换为一行的空白行+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示+num 从第 num 行开始显示fileNames 欲显示内容的文档,可为复数个数

常用 *** 作命令

Enter 向下1行Ctrl+F 向下滚动一屏空格键 向下滚动一屏Ctrl+B 返回上一屏= 输出当前行的行号:f 输出文件名和当前行的行号q 退出more 12.less

less 支持翻页和搜索,支持向上翻页和向下翻页。
语法:less [参数] 文件
参数说明:

-e 当文件显示结束后,自动离开-N 显示每行的行号-o <文件名> 将less 输出的内容在指定文件中保存起来-Q 不使用警告音-s 显示连续空行为一行/字符串:向下搜索"字符串"的功能;n:向下查找;N:向上查找? 字符串:向上搜索"字符串"的功能 ;n:向下查找;N:向上查找b 向上翻一页d 向后翻半页h 显示帮助界面Q 退出less 命令u 向前滚动半页y 向前滚动一行空格键 滚动一页回车键 滚动一行[pagedown]: 向下翻动一页[pageup]: 向上翻动一页

实例
1、ps查看进程信息并通过less分页显示

ps -ef |less

2、查看命令历史使用记录并通过less分页显示

[root@localhost test]# history | less
22  scp -r tomcat6.0.32 [email protected]:/opt/soft
23  cd ..
24  scp -r web [email protected]:/opt/
25  cd soft
26  ls
……省略……

3、浏览多个文件

less log2013.log log2014.log

说明:
输入 :n后,切换到log2014.log
输入 :p后,切换到log2013.log

附加备注
1.全屏导航

ctrl + F - 向前移动一屏ctrl + B - 向后移动一屏ctrl + D - 向前移动半屏ctrl + U - 向后移动半屏
2.单行导航j - 下一行k - 上一行
3.其它导航G - 移动到最后一行g - 移动到第一行q / ZZ - 退出 less 命令
4.其它有用的命令v - 使用配置的编辑器编辑当前文件h - 显示 less 的帮助文档&pattern - 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:ma - 使用 a 标记文本的当前位置'a - 导航到标记 a 处 13.head

用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。
命令格式:

head [参数] [文件]  

参数:

-q 隐藏文件名-v 显示文件名-c<数目> 显示的字节数-n<行数> 显示的行数


显示文件前 20 个字节:

head -c 20 runoob_notes.log
14.tail
tail -F /MXMachineLearning/log/log.spark.cluster.event_pv.20211230

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

命令格式:

tail [参数] [文件]  

参数:

-f 循环读取-q 不显示处理信息-v 显示详细的处理信息-c<数目> 显示的字节数-n<行数> 显示文件的尾部 n 行内容

例:要显示 notes.log 文件的最后 10 行,请输入以下命令:
tail notes.log # 默认显示最后 10 行
要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:

tail -f notes.log

此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。
显示文件 notes.log 的内容,从第 20 行至文件末尾:

tail -n +20 notes.log

显示文件 notes.log 的最后 10 个字符:

tail -c 10 notes.log
15.> 覆盖 和 >> 追加

echo “内容” >> 文件
1 将history命令执行的结果保存到history.log文件中

# history > history.log

2 使用 >> 向 hosts.log中追加 当前日期

# echo "当前日期是 `date`" >> hosts.log
16.history

查看已经执行过的命令

三、时间日期类 1.date
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

date 可以用来显示或设定系统的日期与时间。
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下: %
%H : 小时(00…23)
%M : 分钟(00…59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00…61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
%a : 星期几 (Sun…Sat)
%A : 星期几 (Sunday…Saturday)
%b : 月份 (Jan…Dec)
%B : 月份 (January…December)
%c : 直接显示日期与时间
%d : 日 (01…31)
%D : 直接显示日期 (mm/dd/yy)
%j : 一年中的第几天 (001…366)
%m : 月份 (01…12)
%U : 一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0…6)
%W : 一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000…9999)
2.加减
date +%Y%m%d //显示现在天年月日
date +%Y%m%d --date="+1 day" //显示后一天的日期
date +%Y%m%d --date="-1 day" //显示前一天的日期
date +%Y%m%d --date="-1 month" //显示上一月的日期
date +%Y%m%d --date="+1 year" //显示下一年的日期

或者更简单点的 date=date -d -${t}day '+%Y%m%d' //为t为前几天

YMD=$(date -d"-1 days" +%Y%m%d -u) #前一天

转换成时间戳:$ date +%s -d 20211220
1639958400
转换成日期:$ date -d @1639958400
2021年 12月 20日 星期一 00:00:00 UTC

2.cal

查看日历

四、文件权限类 1.文件属性

在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。

(base) q@qdeMacBook-Pro PycharmProjects % ls -l
total 0
drwxr-xr-x   7 q  staff  224  1 25 17:40 pythonProject
drwxr-xr-x   6 q  staff  192  1 27 15:55 qinzhengkai
drwxr-xr-x@ 24 q  staff  768  1 25 17:40 人工智能

如果没有权限,就会出现减号[ - ]。
在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等

-代表文件d 代表目录l 链接文档(link file)

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

rxw 作用文件和目录的不同解释
(1)作用到文件:

[ r ]代表可读(read): 可以读取,查看[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.[ x ]代表可执行(execute):可以被系统执行

(2)作用到目录:

[ r ]代表可读(read): 可以读取,ls 查看目录内容[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录[ x ]代表可执行(execute):可以进入该目录


其中链接数:

如果查看到是文件:链接数指的是硬链接个数。如果查看的是文件夹:链接数指的是子文件夹个数(包括隐藏文件夹,使用 ll -a 查 看)。 2.chmod(change mode)

控制用户对文件的权限的命令;
语法 chmod [-cfvR] [--help] [--version] mode file...
参数说明
mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。+表示增加权限、- 表示取消权限、= 表示唯一设定权限。r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明:

-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

r=4 w=2 x=1 rwx=4+2+1=7
实例
将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *
五、搜素查找类 1.find

将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-ctime n : 在过去n天内被修改过的文件
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 默认单位是b,而它代表的是512字节,所以2表示1k,1M则是2048,如果不想自己转换,可以使用其他单位,如c(bytes)、k(Kilobytes)等,+n大于 -n小于 n等于
-type c : 文件类型是 c 的文件。
 - d: 目录
 - f: 一般文件

实例

将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
# find . -name "*.c"

将当前目录及其子目录中的所有文件列出:
# find . -type f

将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
# find . -ctime -20

查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
# find /var/log -type f -mtime +7 -ok rm {} ;

查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
# find . -type f -perm 644 -exec ls -l {} ;

查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
# find / -type f -size 0 -exec ls -l {} ;
2.grep 过滤查找及“|”管道符
grep run_spark_cluster.sh *sh

输出:

run_event_pv.sh:bash run_spark_cluster.sh "${JOB_PREFIX}" 
run_video_statistic_daily.sh:bash run_spark_cluster.sh "${JOB_PREFIX}" 

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

语法

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

参数:

-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-i 或 --ignore-case : 忽略字符大小写的差别。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-v 或 --invert-match : 显示不包含匹配文本的所有行。

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理.
例:

(base) q@qdeMacBook-Pro ~ % ls
Applications	Downloads	Music		PycharmProjects
Desktop		Library		Pictures	Sunlogin Files
documents	Movies		Public		opt
(base) q@qdeMacBook-Pro ~ % ls | grep D
Desktop
documents
Downloads
(base) q@qdeMacBook-Pro ~ % ls | grep -n D
2:Desktop
3:documents
4:Downloads

1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

grep test *file 

结果如下所示:

$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件  
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行 

2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi 

输出结果如下:

$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi”  
#下包含“update”的文件  
/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)  
Rather than  
/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of  
IO.) Rather than  
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update 

3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。
查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

grep -v test *test*

结果如下所示:

$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行  
testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux is a free unix-type opterating system.  
3.which

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
语法:which [文件...]
例:使用指令"which"查看指令"bash"的绝对路径,输入如下命令:

$ which bash

上面的指令执行后,输出信息如下所示:

/bin/bash  #bash可执行程序的绝对路径 
六、压缩和解压类 1.gzip/gunzip压缩

gzip 文件 :压缩文件,只能将文件压缩为*.gz文件(只能压缩文件不能压缩目录)
gunzip 文件.gz :解压缩文件命令
不保留原来的文件(无论压缩还是解压)

2.zip/unzip压缩

zip [选项] xxx.zip:将要压缩的内容 :压缩文件和目录的命令

-r :压缩目录-d 从压缩文件内删除指定的文件

unzip [选项] xxx.zip :解压缩文件

-d <目录> :指定解压后文件的存放目录-l :显示压缩文件内所包含的文件-v :执行是时显示详细的信息

解压xxx.zip到指定目录
unzip xxx.zip -d /home/test/

zip压缩命令可以压缩目录且保留源文件

查看压缩文件中包含的文件:

# unzip -l abc.zip 
Archive: abc.zip
 Length   Date  Time  Name
--------  ----  ----  ----
  94618 05-21-10 20:44  a11.jpg
  202001 05-21-10 20:44  a22.jpg
    16 05-22-10 15:01  11.txt
  46468 05-23-10 10:30  w456.JPG
  140085 03-14-10 21:49  my.asp
--------          -------
  483188          5 files

-v 参数用于查看压缩文件目录信息,但是不解压该文件。

# unzip -v abc.zip 
Archive: abc.zip
Length  Method  Size Ratio  Date  Time  CRC-32  Name
-------- ------ ------- -----  ----  ----  ------  ----
  94618 Defl:N  93353  1% 05-21-10 20:44 9e661437 a11.jpg
 202001 Defl:N  201833  0% 05-21-10 20:44 1da462eb a22.jpg
   16 Stored    16  0% 05-22-10 15:01 ae8a9910 ? +-|¥+-? (11).txt
  46468 Defl:N  39997 14% 05-23-10 10:30 962861f2 w456.JPG
 140085 Defl:N  36765 74% 03-14-10 21:49 836fcc3f my.asp
--------     ------- ---              -------
 483188      371964 23%              5 files
3.tar

tar [选项] xxx.tar.gz 将要打包进去的内容
打包目录,压缩后的文件格式.tar.gz
选项说明

-z:打包同时压缩-c:产生.tar打包文件-v:显示详细信息-f:指定压缩后的文件名-x:解包.tar文件

压缩多个文件
tar -zcvf xxx.tar.gz 1.txt 2.txt
解压到指定目录
tar -zxvf xxx.tar.gz -C d0

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5714699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存