1つ、grepコマンド
Linux grepコマンドを使用してテキストをフィルタリングし、display
grepは、特定の文字列に従って指定されたファイルの各行を検索できます。文字列が見つかると、コンテンツを含む行が出力されます。
使用例 ^行頭$行末
請求 | 使用法 |
---|---|
ファイル内で文字hの文字列を検索します | grephファイル名 |
単語全体に一致する | grep-wワードファイル名 |
qで始まる行を一致させる | grep ^ qファイル名 |
qで終わる行を一致させる | grep q $ファイル名 |
ooの前にfまたはgではない文字列に一致する | grep [^ gf] ooファイル名 |
#で始まる行を一致させる | grep ^#ファイル名 |
空白行に一致 | grep ^ $ |
サブディレクトリを明示的に検索する場合 | greo -rh ./* |
サブディレクトリを無視する | grep -d skip h ./* |
複数のファイルをクエリする場合、一致する文字を含むファイル名のみが出力されます | -l |
検索時に大文字と小文字を区別しない | grep -i -o -v |
検索時に一致する行を表示しない | grep -v |
検索時に一致した行と次の2行を表示します | grep -A 2 |
検索時に一致した行と前の2行を表示します | grep -B 2 |
検索時に一致した行と上下の2行を表示します | grep -C 2 |
運動
#将/etc/passwd中第一个字段(用户名)截取到user文件中
cut -d:-f 1 /etc/passwd > user
#将3,4字段分别截取出来写入文件UID和文件GID但是要使这两个文件中的信息是以数值由大到小的形式显示
cut -d:-f 3 /etc/passwd | sort -nr > UID
cut -d:-f 4 /etc/passwd | sort -nr > GID
#截取当前日期的年月日显示在文件A.txt中
data | cut -d "" -f 1-3 |tee A.txt
#统计/etc/passwd 一共有多少行但不显示后面的文件名
echo dfhdjflhsfdlgkjhk adjfkhdlfjkhl 'wc -l /etc/passwd | cut -d "" -f 1'
2、コマンドを見つける
linux findコマンドは、指定されたディレクトリ内のファイルを検索するために使用されます。
パラメータの前の文字列は、検索されるディレクトリの名前と見なされます。パラメータを設定せずにこのコマンドを使用すると、findコマンドは現在のディレクトリ内のサブディレクトリとファイルを検索します。そして、見つかったすべてのサブディレクトリとファイルを表示します。
find [path] [options] [expression] find / -name haha
1.時間関連のパラメータ
パラメータ | 特徴 |
---|---|
-mtime | 意味は、n日前日に変更されたファイルです。-mtime4は、4〜5の前日のファイルを指します。 |
-mtime -n | n日以内に変更されたファイル名(n日自体を含む)、-mtime-4、4日以内に変更されたファイル名を一覧表示します |
-mtime + n | n日前に変更されたファイル名を一覧表示します(n日自体は含まれません)、-mtime + 4、5日前以上のファイル名 |
検索/ -mtime 0 | #0は現在の時刻を表すため、現在から24時間前にコンテンツが変更されたファイルが一覧表示されます |
/ etc / -newer / etc / passwdを検索します | / etc /の下でファイルを探し、ファイルの日付が/ etc / passwdよりも新しい場合は、リストします。 |
2.ユーザーまたはユーザーグループ名に関連するパラメーター
パラメータ | 特徴 |
---|---|
n-uid | nは数字、この数字はユーザーのアカウントID、つまりUIDです |
-gid n | nは番号、この番号はユーザーグループのアカウントID、つまりGIDです。 |
-ユーザー名 | ファイル所有者によるファイルの検索 |
-グループ名 | グループに応じてファイルを検索する |
-nouser | / etc / passwdに所有者が存在しない人を探しています |
-nogroup | ファイルを探しているすべてのユーザーグループが/ etc / groupに存在するわけではありません(ソフトウェアを自分でインストールする場合、ソフトウェアのプロパティにファイル所有者がいない可能性があります) |
3.ファイルのアクセス許可と名前に関連するパラメーター
パラメータ | 特徴 |
---|---|
-名前ファイル名 | filenameという名前のファイルを見つけ、ワイルドカード*と?をサポートします。 |
-サイズ[±]サイズ | SIZEよりも大きい(+)または小さい(-)ファイルを検索します。このSIZEの仕様は次のとおりです。cはバイトを表し、kは1024バイトを表し、-size + 50kは50kBより大きいファイルを検索することを意味します。 |
-タイプタイプ | ファイルタイプ、通常は通常のファイルf、デバイスファイルc、b、ディレクトリファイルd、リンクファイルl、ソケット、FIFO(p)に従ってファイルを検索します。 |
-パーマモード | ファイルのアクセス許可に基づいてファイルを検索します。-perm -0744、ファイル権限が4755の場合、それもリストされます |
-パーマ+モード | 「任意のモードのアクセス許可を含む」ファイルアクセス許可を持つファイルを検索します。-perm +755、ファイルパーミッションが-rw -------の場合、rw属性があるため、リストされます。 |
/ bin / sbin -perm + 6000を検索します | 2つのディレクトリ/ bin / sbinでSUIDまたはSGIDのファイルを検索します |
4.その他の実行可能操作
パラメータ | 特徴 |
---|---|
-execコマンド | コマンドは他のコマンドであり、他のコマンドの後に-execを続けて、検出された結果を処理できます。 |
-印刷 | 将结果打印到屏幕上,这个操作是默认操作 |
find / -perm +700 -exec ls -l {} ; | {}表示"由find找到的内容,find的结果会被放置在{}位置中";-exec一直到";"是关键字,代表额外命令的开始(-exec)到结束(;),在这中间的就是find命令内的额外命令。额外的命令不支持别名 |
三、文件的压缩与解压缩
常见的压缩文件扩展名
参数 | 功能 |
---|---|
*.gz | gzip程序压缩的文件 |
*.bz2 | bzip2程序压缩的文件 |
*.tar | tar程序打包的数据,并没有经过压缩 |
*.tar.gz | tar程序打包的文件,其中经过gzip的压缩 |
*.tar.bz2 | tar程序打包的文件,其中经过bip2的压缩 |
linux上常见的压缩命令就是gzip与bzip2
1、gzip
压缩文件:gzip 文件名(源文件不存在)
gzip -c 文件名1 > 文件名1.gz(保留源文件)
解压文件:gzip -d 文件名.gz (不保留源文件)
gunzip 文件名.gz
gzip -cd 文件名2.gz > 文件名2(保留源文件)
查看压缩过的文本文件内容:zcat 文件名.gz
2、bzip2
压缩文件:bzip2 文件名
bzip2 -c 文件名1 >文件名1.bz2(保留源文件)
解压文件:bzip2 -d 文件名.bz2(不保留源文件)
bunzip2 文件名.bz2
bzip2 -cd 文件名2.bz2 > 文件名2(保留源文件)
查看压缩过的文件内容:bzcat 文件名.bz2
3、tar [主选项+辅选项] 文件或目录 (文件的归档即打包文件)
主选项:只能出现一个主选项
c— create 创建一个新归档文件(打包文件)
x— 从归档文件中提取文件出来
t— 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z— 通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j— 通过bzip的支持进行压缩/解压缩,一般格式为*.tar.bz2
J— 通过xz的支持进行压缩/解压缩,一般格式为*.tar.xz
v— 归档或解包过程中显示被打包的文件
C— 这个参数用于在解压缩时,若要在特定目录解压缩,可以使用这个参数
f— 输出结果到文件,必须写该选项
--exclude=FILE 在打包的过程中,不要将FILE打包! --排除某个文件打包
常见的两种压缩方式:jcvf zcvf
打包、压缩文件1和2并重命名:tar zcvf 新文件名 文件名1 文件名2 文件名3 文件名4
解压:tar xvf 文件名 该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩
解压到指定路径:tar xvf 文件名 -C 目标路径
tar -xjv -f filename.tar.bz2 -C 欲解压的目录
查看已压缩文件:tar tf 文件名
四、用户身份切换
su
su [-lm] [-c 命令] [username]
参数 | 功能 |
---|---|
- | 单纯使用-如"su -",代表使用login-shell的变量文件读取方式来登陆系统;若用户没有写,则代表切换为root用户 |
-l | 与-类似,但后面需要加欲切换的用户账号,也是login-shell的方式 |
-m | -m与-p是一样的,表示使用目前的环境变量设置,而不读取新用户的配置文件 |
-c | 仅进行一次命令,所以-c后面可以加上命令 |
login-shell | 取得bash时需要完整的登陆流程。login-shell读取配置文件的顺序是:/etc/profile、/.bash_profile、/.bashrc、/etc/bashrc |
non-login shell | 取得bash接口的方法不需要重复登录。non-login shell会读取的配置文件为: ~/.bashrc、/etc/bashrc |
~/.bash_logout文件记录了当我注销bash后系统再帮我做完什么操作后才离开。默认情况下,注销时bash只是帮我们清掉屏幕的信息而已。
sudo
sudo是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,并且记录到日志中的命令。sudo命令的配置在/etc/sudoers中,sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序
查看当前是哪个用户登录的shell:whoami
sudo [-u 新用户账号]
-u:后面可以接欲切换的用户,若无此项则代表切换身份为root
sudu的执行流程如下(默认只有root用户能使用):
1、当用户执行sudo时,便会让用户输入自己的密码来确认(root执行sudo时不需要输入密码)
2、若欲切换的身份和执行者身份相同,那也不需要输入密码
3、若密码输入成功,系统会去让/etc/sudoers文件中查找该用户是否有执行sudo的权限
4、若用户具有执行sudo的权限,便开始sudo后续接的命令