집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >일반적으로 사용되는 Linux 명령에 대한 자세한 설명(수집할 가치가 있음)
이 기사에서는 일반적으로 사용되는 Linux 명령, 데모 및 일부 기본 지식을 자세히 소개합니다.
구문: ls [옵션] [디렉토리]
ls [选项] [目录]
功能:ls有多个选项,对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
ls不带选项默认显示当前目录下的文件
选项:
-l
-l
: 파일 세부정보를 목록 형식으로 나열🎜리눅스 시스템에서는 파일 접미사로 파일 형식을 구분하지 않지만, 파일 접미사가 .c
还是.txt
인지 다른 접미사인지 -로 시작하면 파일 형식을 식별합니다. , 일반 파일입니다
오늘은 처음 두 가지 유형의 파일에 중점을 둡니다
일반 파일은 여러 유형으로 나눌 수 있습니다. Windows와 호환되고 대부분의 Linux 사용자가 서로 다른 파일을 쉽게 구별할 수 있도록 하기 위해 우리는 여전히 접미사를 사용하여 다양한 파일 유형을 표시하는 데 익숙합니다. 하지만
.c
C 언어로 작성된 파일과 같은 일부 파일은 접미사를 추가해야 하며, 이는 특수 처리가 필요하고 유형을 구별하기 위해 접미사를 사용합니다
아래로 내려가서 보여주지 않은 다른 옵션도 있습니다
기능: 파일 형식 보기
구문: file [文件]
[king@VM-12-11-centos ~]$ file cat.txt cat.txt: UTF-8 Unicode text #类型是文本文件 [king@VM-12-11-centos ~]$ file ret #类型是目录文件 ret: directory
구문:pwd
기능: 현재 경로 표시
기능: 현재 사용자 표시
두 가지 쓰기 방법
기능: 경로 전환
사용법: cd [전환하려는 경로]
cd [想要切换的路径]
Linux是以多叉树的结构管理文件的,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。根目录:/
当我们需要找一个文件时,就必须知道文件所在路径和文件名,例如寻找text.c
文件,因为每一个节点只有一个父亲节点,从根目录出发到text.c
/
🎜text.c
파일(각 노드에는 루트 디렉터리부터 시작하여 text.c
파일 경로는 고유합니다. 파일 위치를 완전히 설명하는 경로는 절대 경로입니다. 위의 pwd 명령은 절대 경로를 표시합니다.상대 경로는 대상 위치에 상대적인 자체 경로이며 고유하지 않습니다. 우리는 다른 위치에서 파일을 찾을 수 있습니다
절대 경로: 다음 디렉터리에서 시작하여 지정된 파일의 경로는 파일을 고유하게 식별할 수 있습니다
상대 경로: 특정 파일에서 지정된 파일까지의 경로는 파일을 고유하게 식별할 수 없습니다
cd 명령은 상대 경로와 절대 경로를 사용할 수 있습니다. 경로 전환
절대 경로를 통해 지정된 디렉터리로 전환할 수 있습니다
也可以通过相对路径切换,点点表示上一级路径,cd ..
切换到上一级目录,cd ../../
切换到上上级路径
[king@VM-12-11-centos Linuxclass]$ pwd /home/king/Linuxclass [king@VM-12-11-centos Linuxclass]$ cd classcode [king@VM-12-11-centos classcode]$ ls a.out ret.txt test test.c [king@VM-12-11-centos classcode]$ cd test [king@VM-12-11-centos test]$ cd ../../p1 #切换到上上级目录的p1路径下 [king@VM-12-11-centos p1]$ pwd /home/king/Linuxclass/p1
有的小伙伴可能就有疑问了,cd ..
可以切换到上一级路径,那么cd .
有什么用呢?我们本来就在当前目录下,不需要切换啊。
这里我们用vim编写一个
hello Linux
的代码,通过gcc编译,生成a.out的可执行程序,而我们要运行可执行程序就需要路径和文件名,用点就可以表示它的路径了,相比于下面用绝对路径方便很多
cd还有两个选项
[king@VM-12-11-centos Linuxclass]$ pwd /home/king/Linuxclass [king@VM-12-11-centos Linuxclass]$ cd ~ #cd ~进入工作目录,就是用户的路径下 [king@VM-12-11-centos ~]$ pwd /home/king [king@VM-12-11-centos ~]$ cd - #cd -返回最近一次访问的路径 /home/king/Linuxclass
语法:which [指令]
功能:查看指令的系统路径和相关信息
[king@VM-12-11-centos Linuxclass]$ which ls alias ls='ls --color=auto' #alias:给指令取别名 /usr/bin/ls #我们的指令都是系统简化过的 [king@VM-12-11-centos Linuxclass]$ which ll alias ll='ls -l --color=auto' #ll可以代替ls -l /usr/bin/ls [king@VM-12-11-centos Linuxclass]$ which cd #同时我们发现指令都是在bin目录下的 /usr/bin/cd
指令本质上就是程序,Linux中,指令、命令、工具都是可执行程序 ,都存放在普通文件中,linux下一切皆文件,我们的指令都在bin目录下
功能:新建文件,更改文档或目录的日期,包括存取时间和更改时间,我们先了解新建文件,关于更改目录日期我们在文章的最后介绍
需要注意的是touch创建的是普通文件,不是目录文件,所以不能cd进入
[king@VM-12-11-centos test]$ touch file1 file2 file3 #touch可以连续创建多个文件 [king@VM-12-11-centos test]$ touch file4 #创建单个文件 [king@VM-12-11-centos test]$ ls file1 file2 file3 file4
功能:新建目录文件
mkdir也可以同时创建多个目录文件,cd可以进入,但是不能在一个目录文件下再创建多个子目录,这里就显示无法创建
选项-p:递归建立多个子目录
这里的tree指令是以树状显示文件,需要用yum下载
yum intsall -y tree
如果我们是普通用户,需要在前面加sudo, sudo可以短暂提升权限,以root的身份执行相应指令
单独su表示切换为root用户,需要输入root用户的密码
[ret@VM-12-11-centos ~]$ su Password: #输入root用户密码 [root@VM-12-11-centos ret]# whoami #切换为root用户 root [root@VM-12-11-centos ret]# su ret #root用户可以直接切换成指定用户,不需要输入用户密码 [ret@VM-12-11-centos ~]$ whoami #现在我们就切换到用户ret了 ret
如果我们sudo yum install -y tree
显示类似如下的指令,表示当前用户没有添加信任关系
需要以root的身份帮用户添加信任关系,我们将身份切换为root用户,执行如下指令即可添加信任关系,之后我们就可以sudo 了
echo 'xxx ALL=(ALL) ALL' >> /etc/sudoers (其中xxx代表用户名)
功能:删除空目录 ,也就是不存放其他文件的目录
这里p1不为空,所以无法删除,如要借助rm指令
我们删除文件一般都用rm指令,rmdir有点鸡肋
功能:删除目录或文件
选项:
删除目录要带r选项,此时我们的p1/p2/p3就删除了
如果我们想删除目录中的所以文件而不想删除目录,直接加通配符*
切记别把根目录给删除
rm -rf / #切记不要使用,递归强制删除根目录,可能会把系统干崩
linux中有很多的指令,如果我们不记得某个指令的使用,可以man一下,问问那个男人
选项:
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
9 内核例程
同样man需要我们下载 ,普通用户加sudo
yum install -y man-pages
man不加选项,默认解释指令
[king@VM-12-11-centos file11]$ man ls
q退出当前界面
[king@VM-12-11-centos file11]$ man 3 printf #我们可以查看printf库函数
语法:cp [选项] [源文件] [目标文件] [指定目录]
功能:复制文件或目录
常用选项:
-f 强行复制文件或目录, 不论目的文件或目录是否已经存在
-r 递归处理,将指定目录下的文件与子目录一并处理。
file11 파일을 복사하고 이름을 file
기본적으로 현재 디렉터리에 복사합니다. 마지막에 디렉터리를 지정할 수도 있습니다.
기능: 이동 file 또는 파일 이름 바꾸기
사용법: mv [选项] [源文件] [目标文件]
옵션:
-f: force는 대상 파일이 이미 존재하는 경우 묻지 않고 직접 덮어쓰게 됨을 의미합니다
-i: 대상 파일(destination)이 이미 존재하는 경우 덮어쓸지 묻습니다!
여기서 file11 파일을 파일 디렉터리
mv 뒤에 파일이 없고 파일 이름이 오면 파일 이름이 변경됩니다. 또한, 공개 계정을 검색할 때 리눅스는 백그라운드에서 "원숭이"라고 답하는 방법을 학습하고 깜짝 선물 패키지를 받아야 합니다.
예를 들어 파일 file11의 이름을 변경하여
기능: 파일 내용 보기
구문: cat [옵션] [파일]
옵션:
输-B: 비어 있지 않은 출력 행 번호그럼 문자열을 파일에 쓸 수 있을까요?
답은 '예'입니다. 문자열 뒤에 > 기호와 파일 이름을 추가하여 표준 출력에 표시해야 할 문자열을 파일에 쓸 수 있습니다. , 이것이 출력 리디렉션입니다
화면에 표시해야 할 문자열을 대상 파일에 쓰는 동시에 출력 리디렉션은 파일의 원래 내용을 지운 다음 다시 씁니다
여기에 작성하면 이전 hello Linux가 지워집니다
이전 내용을 유지하고 작성하려면 리디렉션 > 기호를 추가하여 >> 기호를 추가해야 합니다. 파일은 cat 명령 뒤에 추가되며 기본값은 키보드의 내용을 읽어 모니터, 즉 화면에 에코하는 것입니다
之前cat显示文件内容就是通过输入重定向显示的
[king@VM-12-11-centos ~]$ cat < file #这个 < 符号可以省略 AAAAAAA BBBBBBB CCCCCCC
功能:和cat类似,一般用于查看日志,内容比较长的文件
选项:
-n :对行编号
q :退出more
比如这里我写一个内容从0-1000行的文件
关注公众号:【Linux就该这样学】,在公众号中回复:Linux
count=0; while [ $count -le 1000 ]; do echo "hello ${count}"; let count++; done > cat.txt
more会先显示一部分内容,按回车就可以继续读取内容,按q退出,但more有一个弊端,只能往下翻,不能往上翻,所以我们一般不用more指令
功能:查看文件内容,less用法比more更具有弹性,可以使用 [pageup][pagedown]
(前后按键)等按键的功能来往前往后翻看文件,而且less在查看之前不会加载整个文件。
选项:
-i :忽略大小写
-N: 행 번호 표시
/String: 위쪽으로 문자열 내용 검색
?String: 아래쪽으로 문자열 내용 검색
엔 : 이전 검색 반복(/ 또는 ? 관련)
N: 이전 검색 반복(/ 또는 ? 관련)
q: Exit less
[king@VM-12-11-centos ~]$ less cat.txt
我们输入 /3向上搜索字符3,less就会帮我们标记字符3的内容
还有其它选项大家可以直接尝试,这里就不在演示了,我们q退出less界面
牛逼啊!接私活必备的 N 个开源项目!赶快收藏吧
功能:显示文件内容的开头到标准输出,也就是屏幕上,head不加参数默认显示前10行
选项:
-n1dcc53fc8cc7b2478796660caa67152b
[king@VM-12-11-centos ~]$ head cat.txt #默认输出前10行 hello 0 hello 1 hello 2 hello 3 hello 4 hello 5 hello 6 hello 7 hello 8 hello 9 [king@VM-12-11-centos ~]$ head -n5 cat.txt #指定输出前5行 hello 0 hello 1 hello 2 hello 3 hello 4 [king@VM-12-11-centos ~]$ head -5 cat.txt # n可以省略 hello 0 hello 1 hello 2 hello 3 hello 4
功能:用于显示指定文件末尾内容,我们一般查看日志时肯定是查看最新的内容,也就是从尾部开始查看,tail就能很好的帮助我们查看最近的内容
选项:
-f :循环读取
-nbdaa72d45a486872e32cf8bb600e37b8
:显示行数
tail - f filename
会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容,非常适合查看日志
[king@VM-12-11-centos ~]$ tail cat.txt #tail不加行号默认显示尾10行 hello 991 hello 992 hello 993 hello 994 hello 995 hello 996 hello 997 hello 998 hello 999 hello 1000 [king@VM-12-11-centos ~]$ tail -n5 cat.txt #指定显示尾5行 hello 996 hello 997 hello 998 hello 999 hello 1000 [king@VM-12-11-centos ~]$ tail -5 cat.txt #n可以省略 hello 996 hello 997 hello 998 hello 999 hello 1000
那我们可以显示文件的头和尾,如果要显示文件中间的内容怎么办呢?
比如我们要显示第100行到110行,有两种方法:
通过重定向将前110行写入一个tmp临时文件,然后在读取尾10行,不过这种方法需要重新创建文件,不进浪费空间效率也低
答案是有的,第二种方法借助管道操作
使用管道时,默认隐式发生了重定向
# 符号 | 表示管道,通过管道将执行的结果传给下一条指令 [king@VM-12-11-centos ~]$ head -110 cat.txt | tail -10 hello 100 hello 101 hello 102 hello 103 hello 104 hello 105 hello 106 hello 107 hello 108 hello 109
格式
[king@VM-12-11-centos ~]$ date #date默认显示 Fri Jan 28 16:55:54 CST 2022 [king@VM-12-11-centos ~]$ date +%s #date +%s显示时间戳 1643360162 [king@VM-12-11-centos ~]$ date +%F%X #按年月日 时分秒的格式显示当前时间 2022-01-2804:56:08 PM [king@VM-12-11-centos ~]$ date +%F%X@1643360162 # @时间戳,将时间戳转换成标准时间 2022-01-2804:56:27 PM@1643360162
我们可以加_以示区分,但不能是空格,这种写法是错误的
기능: 달력 보기
옵션:
-3 시스템의 이전 달, 이번 달, 다음 달의 달력 표시
-y 현재 연도 표시 연간 달력
cal은 기본적으로 이번 달의 월별 달력을 표시합니다
[king@VM-12-11-centos ~]$ cal -y 2021 #也可以指定年份显示2021的年历
功能:在文件数中查找文件,并做出相应的处理(可能会访问磁盘),find指令会帮我们在当前目录以及所有该目录的所以子目录下查找相应的文件,当我们遍历一个大的文件系统时,可能会花费一点时间,然后显示相应的文件信息,但当我们下一次再用find查找时,就会快很多
find的选项非常多,这里列举一个,想了解更多可以man find
选项:-name :按照文件名查找
我们在根目录下查找文件名为text的文件,不过这里很多都是permission denied
,因为普通用户的权限不够,有很多文件都不能读取。另外,搜索公众号后端架构师后台回复“架构整洁”,获取一份惊喜礼包。
我们在自己的目录下查找文件名为file的文件,就会把该目录下的所以子文件名为file的显示出来
디렉토리 지정
구문: find [起始目录位置] [-name][filename]
기능: 텍스트 줄 필터링, 검색 문자열
공통 옵션: i: 대소문자 무시, 대소문자 동일하게 간주
-n: 출력 라인 번호
-v: 역선택
또는 내용이 0~1000줄인 파일 가져오기 cat.txt
예를 들어
파일 내용을 표시할 때, '90'이 포함된 모든 문자가 표시됩니다
출력 리디렉션을 사용하여 파일에 두 줄을 더 쓰고 -i는 대소문자를 무시하므로 두 줄을 모두 검색할 수 있습니다
同时grep指令也支持正则表达式,可以搜索 任意我们想要搜索的字符,大家下去可以自行尝试
我们先追加两行到cat.txt
中,用正则表达式就可以将这两行搜索出来
[king@VM-12-11-centos ~]$ echo "he9999" >> cat.txt [king@VM-12-11-centos ~]$ echo "he9290" >> cat.txt [king@VM-12-11-centos ~]$ cat cat.txt | grep 'he[0-9]*$' he9290 he9999
zip语法:zip [压缩后的文件名.zip] [目标文件]
功能:将文件压缩成.zip格式
常用选项:
-r: 지정된 디렉터리의 모든 파일과 하위 디렉터리를 함께 재귀적으로 처리합니다.
unzip 구문: unzip [压缩文件.zip]
-d: 지정된 경로로 압축
만약 우리가 -r 옵션을 추가하지 말고 파일을 직접 압축하세요.
압축된 테스트 파일을 예로 들어 보겠습니다. 테스트에는 file22 및 file33이라는 3개의 하위 디렉터리가 있습니다. 압축된 file.zip 크기는 160
입니다. 압축을 풀자 테스트 파일이 빈 디렉터리였으며 모든 파일을 압축하는 데 도움이 되지 않았다는 사실을 발견했습니다
그래서 -r 옵션을 가져와야 합니다. 압축을 푼 후 cur.zip의 크기가 774로 이전 160
cur.zip의 압축을 풀려면 -d 옵션을 추가하세요. 지정된 경로 ret 파일
및 zip/unzip
类似,不过解压后的文件后缀为.tgz
기능: 완전한 패키징, 압축, 압축 풀기
옵션:
通常将-czf
와-xzf
配合使用,用来压缩和解压, 这里我们同样将压缩后的文件cur.tgz
移动到test目录下进行解压-czf
和-xzf
配合使用,用来压缩和解压 ,这里我们同样将压缩后的文件cur.tgz
移动到test目录下进行解压
这里我们将压缩后的文件cur.tgz
通过-C
cur.tgz
통계-C
选项指定路径,将文件解压到ret目录中🎜이전 작업은 모두 압축 풀기, 패키징은 압축해야 할 파일을 모두 함께 포장하는 작업인데 파일이 정리되어 있고 파일 크기가 변하지 않는다는 것을 알 수 있습니다
기능 : 계산기로 이해 가능
계산 결과를 화면에 직접 표시,Ctrl+c
exit
기능: 컴퓨터 및 운영 체제 관련 정보 가져오기
옵션:
-a: 커널 이름, 호스트 이름, 커널 버전 번호, 커널 버전, 하드웨어 이름, 프로세서 유형, 하드웨어 플랫폼 유형, 운영 체제 이름 순서대로 세부 정보를 출력합니다.
-r: 출력 커널 버전 번호
uname은 기본적으로 커널 이름을 출력하고, 호스트 이름은 기본적으로 호스트 이름을 출력합니다. 실제로
커널 버전 번호: 3은 주요 버전 번호를 나타냅니다. 10은 마이너 버전 번호를 나타냅니다. 그 중 마이너 버전 번호는 짝수입니다. 안정 버전 커널은 홀수입니다. 우리 서버에서 사용하는 커널 버전은 일반적으로 최신 버전이 아니지만 일부 클래식 버전입니다. 새로운 버전의 경우
옵션:
-h: 시스템 서비스를 중지하고 즉시 종료
-r: 시스템 서비스를 중지하고 다시 시작
- -t second:-t [秒数]
, 즉 몇 초 후에 종료
서버서버를 종료할 필요가 없습니다
여기서 터치 명령의 변경 시간을 추가합니다
터치 수정 파일 시간을 소개하기 전에 먼저 명령을 소개합니다
기능: 파일 세부 정보 보기
사용법: stat [文件]
stat 테스트 파일 세부 정보 보기
파일 관련 정보:
파일
:显示文件nameFile
:显示文件名Size
:显示文件大小Blocks
:文件使用的数据块总数IO Block
크기
:显示文件大小🎜🎜🎜🎜블록
:文件使용的数据块总数🎜🎜🎜🎜IO 블록
:IO块大小🎜🎜일반 파일
:文件类型(常规文件)regular file
:文件类型(常规文件)Device
:设备编号Inode
:Inode号Links
기기
:设备编号🎜🎜🎜🎜Inode
: Inode号🎜🎜🎜🎜링크
:链接数🎜🎜액세스
:文件的权限Access
:文件的权限Gid、Uid
Gid、Uid
:文件所有权的Gid와Uid🎜🎜Linux下的三个时间🎜액세스 시간
:简写为atime,表示文件最近一次被访问时间。Access Time
:简写为atime,表示文件最近一次被访问时间。Modify Time
:简写为mtime,表示文件内容最近一次被修改时间Change Time
시간 수정
:简写为mtime,表示文件内容最近一次被修改时间🎜🎜시간 변경
:简写为ctime,表示文件属性最近一次被修改的时间🎜🎜🎜🎜atime:当我们过一段时间cat查看文后,stat再次查看就会发先atime时间发生变化,当然对于2.6 之后的内核,对atime的刷new时间重设了规则,atime不会立即被更新,而是一时间间隔后OS才会自动更新时间。因为比与修改文件内容和属性,查看文件是最高频的,如果频繁刷newatime会导致效率降低🎜mtime의 경우: hell을 작성한 후 mtime의 변경이 반드시 atime에 영향을 미치는 것은 아니지만 ctime은 이에 따라 변경될 수 있습니다. 파일 내용이 수정되면 파일 속성도 수정될 수 있기 때문입니다. 예를 들어 데이터를 쓸 때 파일의 크기 속성이 수정됩니다.
ctime: 파일 속성이 변경된 마지막 시간, 이 줄은 파일 속성을 나타냅니다.
chgmod 명령은 변경할 수 있습니다 파일 액세스 권한은 파일 속성도 변경합니다
옵션:
--no-create
는 문서를 생성하지 않습니다. 일반적으로 사용되는 것은 -d, -a -m이며, 터치 명령은 기본적으로 모든 시간을 수정합니다.
[Tab]
: 명령 완성, 한 번 또는 두 번 누르면 wh로 시작하는 지침이 화면에 표시됩니다[Tab]
:命令补全,按一次或两次,会将以wh开头的指令显示到屏幕上
[c]
:终止当前程序,比如屏幕上一直输出字符,写了一个死循环代码,就可以Ctrl +c
[c]
: 현재 프로그램을 종료합니다. 예를 들어 화면에 항상 문자가 출력되는 경우 무한 루프 코드를 작성하면 Ctrl +c
terminate🎜[Ctrl d]
:代替exit切换身份,多次Ctrl d
直接退 Out[Ctrl d]
:代替exit切换身份,多次Ctrl d
直接退出
[Ctrl r]
:根据关键字查找历史命令。我们输入r,自动转换换成历史命令
[page up page down]
[Ctrl r]
:根据关键字查找历史命令。我们输入r,自动转换换成历史命令🎜🎜[page up page down]
:上和下,可以翻看历史命令,我们可以直接翻最近输入过的指令,不常方便🎜security:login、shutdown、halt、reboot、install、mount、umount、 chsh、exit、last
login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln
系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab
파일、mkdir、 grep、dd、find、mv、ls、diff、cat、ln
🎜🎜🎜🎜系统管理 엇关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab
🎜网络操작命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、 메일、 nslookup
ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who
其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode
passwd、su、umask、chgrp、chmod、chown 、chattr、sudo ps、who
tar、unzip、gunzip、unarj、mtools 、man、unendcode、uudecode
🎜🎜🎜🎜🎜🎜위 내용은 일반적으로 사용되는 Linux 명령에 대한 자세한 설명(수집할 가치가 있음)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!