七、真人手机网页版环境变量,如果你想使用原本的ls命令而不是别名

2020-03-27 作者:美高梅-运维   |   浏览(129)

解决方案是使用一个别名(alias)。正如你可能知道的,别名用一种让你的shell记住一个特定的命令并且给它一个新的名字的方式。不管怎么样,别名有一些限制,它只是shell命令的快捷方式,不能传递或者控制其中的参数。所以作为补充,bash 也允许你创建你自己的函数,这可能更长一些和复杂一点,它允许任意数量的参数。

作用:

style="font-family: 'Microsoft Yahei';">打印程序或者库文件所依赖的共享库列表

语法:

ldd (选项)(参数)

选项:

style="font-family: 'Microsoft Yahei';">-v:详细信息模式,打印所有相关信息

-u:打印未使用的直接依赖

-d:执行重定位和报告任何丢失的对象

-r:执行数据对象和函数的重定位,而且报告任何丢失的对象和函数

参数:

文件: 指定可执行程序或文库

其他:

ldd 不是一个可执行程序,而是一个shell脚本,ldd 能够显示可执行模块的依赖管理的模块,其原理是通过设置一系列的环境变量(LD_TRACE_LOADED_OBJECTS,LD_WARN,LD_BIND_NOW,LD_LIBRARY_VERSION,LD_VERBOSE),当环境变量不为空时, 任何可执行程序在运行时,它都只显示依赖模块, 程序并不执行。  本质是通过ld-linux.so (elf动态库的装载器)来实现的, ld-linux.so 会先于executable 模块程序工作, 并获得控制权, 因此当环境变量被设置时, ld-linux.so选择了可执行模块的依赖模块。

command

style="font-family: 'Microsoft Yahei';">作用:用来显示目录列表。

语法: ls  (选项) (参数)

选项:

-a: 显示所有档案以及目录(ls内定将档案或目录名称为“./..”的视为隐藏)

-A: 显示除隐藏文件“./..”以外的所有文件列表

-b: 将文件中的不可输出的字符以反斜线加字符编码的方式输出

-c : 与”-lt“ 选项连用时,按照文件状态时间排序输出目录内容, 排序的依据是文件的索引节点中的ctime 字段。 与”-l“连用时,排序的依据是文件的状态改变时间。

-C: 多列显示输出结果(只有文件名信息)

-d : 仅显示目录名,而不显示目录下的内容列表, 显示符号链接文件本身, 而不显示其指定的目录列表。

-F:  在每个输出项后最佳文件的类型标识符, * 可执行权限的普通文件,/ 表示目录, @ 表示符号链接,|表示命令管道, = 表示sockets 套接字,  普通文件不输出标识符。

-h: 以human易读格式显示, 文件大小以kb,mb显示

-i :  显示文件索引节点号(inode),一个索引节点代表一个文件

-l : 以长格式显示目录下的内容列表,输出信息:文件名,文件类型,权限模式,硬链接数,所有者,组,文件大小, 文件最后修改时间。

-L : 如果遇到性质为符号链接的文件或目录, 直接列出该链接所造的原始文件或目录

-m: 以逗号分隔每个文件和目录的名称

-n : 以用户标志码和群组识别码替代其名称uid /gid

-r : 以文件名反序排序并输出目录内容列表

style="font-family: 'Microsoft Yahei';">-R:递归处理,将制定目录下的所有文件及子目录一并处理

-s : 显示文件和目录的大小, 以区块为单位

-t : 用文件和目录的更改时间排序

参数:

目录:制定要显示列表的文件,也可以是具体的目录

实例:

ls -lX/ -l --sort=extension":扩展名排序

ls -lhS" ,文件从大到小排序

ls -l --si : si以1000为单位,而-h以1024为单位。

ls -l --block-size=M: 设置文件显示单位

 

当然,当你有美食时,比如某种汤,你要分享它给大家。我这里有一个列表,列出了一些最有用bash别名和函数的。注意“最有用的”只是个说法,别名的是否有用要看你是否每天都需要在 shell 里面用它。

作用:

以绝对路径的方式显示用户当前工作目录, 命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用‘/’分隔,第一个‘/’表示根目录,最后一个目录是当前目录。执行pwd 命令可立刻知道您目前所在的工作目录的绝对路径名称。

style="color: #2d374b; font-family: Verdana, Geneva, sans-serif;"> 

也许无用

所以呢,如果一些别名并不是全都具有使用价值?它们可能仍然有趣。

kernelgraph() { lsmod | perl -e 'print "digraph "lsmod" {";<>;while(<>){@_=split/s+/; print ""$_[0]" -> "$_"n" for split/,/,$_[3]}print "}"' | dot -Tpng | display -;}

绘制内核模块依赖曲线图。需要可以查看图片。

alias busy="cat /dev/urandom | hexdump -C | grep 'ca fe'"

在那些非技术人员的眼里你看起来是总是那么忙和神秘。

真人手机网页版 1

最后,这些别名和函数的很大一部分来自于我个人的.bashrc。而那些令人点赞的网站 alias.sh和commandlinefu.com我早已在我的帖子best online tools for Linux 里面介绍过。你可以去看看,如果你愿意,也可以分享下你的。也欢迎你在这里评论,分享一下你的智慧。

做为奖励,这里有我提到的全部别名和函数的纯文本版本,随时可以复制粘贴到你的.bashrc。(如果你已经一行一行的复制到这里了,哈哈,你发现你又浪费了生命的几秒钟~)

#Productivity
alias ls="ls --color=auto"
alias ll="ls --color -al"
alias grep='grep --color=auto'
mcd() { mkdir -p "$1"; cd "$1";}
cls() { cd "$1"; ls;}
backup() { cp "$1"{,.bak};}
md5check() { md5sum "$1" | grep "$2";}
alias makescript="fc -rnl | head -1 >"
alias genpasswd="strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d 'n'; echo"
alias c="clear"
alias histg="history | grep"
alias ..='cd ..'
alias ...='cd ../..'
extract() {
    if [ -f $1 ] ; then
      case $1 in
        *.tar.bz2)   tar xjf $1     ;;
        *.tar.gz)    tar xzf $1     ;;
        *.bz2)       bunzip2 $1     ;;
        *.rar)       unrar e $1     ;;
        *.gz)        gunzip $1      ;;
        *.tar)       tar xf $1      ;;
        *.tbz2)      tar xjf $1     ;;
        *.tgz)       tar xzf $1     ;;
        *.zip)       unzip $1       ;;
        *.Z)         uncompress $1  ;;
        *.7z)        7z x $1        ;;
        *)     echo "'$1' cannot be extracted via extract()" ;;
         esac
     else
         echo "'$1' is not a valid file"
     fi
}

#System info
alias cmount="mount | column -t"
alias tree="ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^/]*//--/g' -e 's/^/   /' -e 's/-/|/'"
sbs(){ du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf "%.1f%s", $1>=2**30? ($1/2**30, "G"): $1>=2**20? ($1/2**20, "M"): $1>=2**10? ($1/2**10, "K"): ($1, "")}e';}
alias intercept="sudo strace -ff -e trace=write -e write=1,2 -p"
alias meminfo='free -m -l -t'
alias ps?="ps aux | grep"
alias volume="amixer get Master | sed '1,4 d' | cut -d [ -f 2 | cut -d ] -f 1"

#Network
alias websiteget="wget --random-wait -r -p -e robots=off -U mozilla"
alias listen="lsof -P -i -n"
alias port='netstat -tulanp'
gmail() { curl -u "$1" --silent "https://mail.google.com/mail/feed/atom" | sed -e 's/</fullcount.*/n/' | sed -e 's/.*fullcount>//'}
alias ipinfo="curl ifconfig.me && curl ifconfig.me/host"
getlocation() { lynx -dump http://www.ip-adress.com/ip_tracer/?QRY=$1|grep address|egrep 'city|state|country'|awk '{print $3,$4,$5,$6,$7,$8}'|sed 'sip address flag \'|sed 'sMy\';}

#Funny
kernelgraph() { lsmod | perl -e 'print "digraph "lsmod" {";<>;while(<>){@_=split/s+/; print ""$_[0]" -> "$_"n" for split/,/,$_[3]}print "}"' | dot -Tpng | display -;}
alias busy="cat /dev/urandom | hexdump -C | grep "ca fe""

作用: 

cd 用来切换目录,目录表示法可为绝对路径或相对路径, 若目录名称省略,则变换至使用者的登陆目录。 ~ 可表示为家目录,.为当前目录,..为上级目录

语法:

cd (选项)(参数)

选项:

-p: 如果要切换到的目标目录是一个符号链接,直接切换到符号链接所指定的目标目录

-L: 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。

实例:

cd    : 进入用户主目录

cd ~: 进入用户主目录

cd - : 返回上次进入的目录

cd .. : 返回上级目录

cd ../../: 返回上两级目录

 

作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令。如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在这种不断的重复中为你的生命节约下几秒钟。

 

网络

对于所有用在互联网和本地网络的命令,也有一些神奇的别名给它们。

alias websiteget="wget --random-wait -r -p -e robots=off -U mozilla"

下载整个网站:websiteget [URL]。

alias listen="lsof -P -i -n"

显示出哪个应用程序连接到网络。

真人手机网页版 2

alias port='netstat -tulanp'

显示出活动的端口。

gmail() { curl -u "$1" --silent "https://mail.google.com/mail/feed/atom" | sed -e 's/</fullcount.*/n/' | sed -e 's/.*fullcount>//'}

大概的显示你的谷歌邮件里未读邮件的数量:gmail [用户名]

alias ipinfo="curl ifconfig.me && curl ifconfig.me/host"

获得你的公网IP地址和主机名。

getlocation() { lynx -dump http://www.ip-adress.com/ip_tracer/?QRY=$1|grep address|egrep 'city|state|country'|awk '{print $3,$4,$5,$6,$7,$8}'|sed 'sip address flag \'|sed 'sMy\';}

返回你的当前IP地址的地理位置。

六、pwd 命令

系统信息

想尽快地知道关于你的系统一切信息?

alias cmount="mount | column -t"

按列格式化输出mount信息。

真人手机网页版 3

alias tree="ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^/]*//--/g' -e 's/^/ /' -e 's/-/|/'"

以树形结构递归地显示目录结构。

sbs() { du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf "%.1f%s", $1>=2**30? ($1/2**30, "G"): $1>=2**20? ($1/2**20, "M"): $1>=2**10? ($1/2**10, "K"): ($1, "")}e';}

安装文件在磁盘存储的大小排序,显示当前目录的文件列表。

alias intercept="sudo strace -ff -e trace=write -e write=1,2 -p"

接管某个进程的标准输出和标准错误。注意你需要安装了 strace。

alias meminfo='free -m -l -t'

查看你还有剩下多少内存。

真人手机网页版 4

alias ps? = "ps aux | grep"

可以很容易地找到某个进程的PID:ps? [名字]。

alias volume="amixer get Master | sed '1,4 d' | cut -d [ -f 2 | cut -d ] -f 1"

显示当前音量设置。

真人手机网页版 5

四、ldd 命令

提升生产力

这些别名真的很简单并且真的很短,但他们大多数是为了给你的生命节省几秒钟,最终也许为你这一辈子节省出来几年,也许呢。

alias ls="ls --color=auto"

简单但非常重要。使ls命令带着彩色输出。

alias ll="ls --color -al"

以彩色的列表方式列出目录里面的全部文件。

alias grep='grep --color=auto'

类似,只是在grep里输出带上颜色。

mcd() { mkdir -p "$1"; cd "$1";}

我的最爱之一。创建一个目录并进入该目录里: mcd [目录名]。

cls() { cd "$1"; ls;}

类似上一个函数,进入一个目录并列出它的的内容:cls[目录名]。

backup() { cp "$1"{,.bak};}

简单的给文件创建一个备份: backup [文件] 将会在同一个目录下创建 [文件].bak。

md5check() { md5sum "$1" | grep "$2";}

因为我讨厌通过手工比较文件的md5校验值,这个函数会计算它并进行比较:md5check[文件][校验值]。

真人手机网页版 6

alias makescript="fc -rnl | head -1 >"

很容易用你上一个运行的命令创建一个脚本:makescript [脚本名字.sh]

alias genpasswd="strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d 'n'; echo"

只是瞬间产生一个强壮的密码。

真人手机网页版 7

alias c="clear"

清除你终端屏幕不能更简单了吧?

alias histg="history | grep"

快速搜索你的命令输入历史:histg [关键字]

alias ..='cd ..'

回到上层目录还需要输入 cd 吗?

alias ...='cd ../..'

自然,去到上两层目录。

extract() { 
    if [ -f $1 ] ; then 
      case $1 in 
        *.tar.bz2)   tar xjf $1     ;; 
        *.tar.gz)    tar xzf $1     ;; 
        *.bz2)       bunzip2 $1     ;; 
        *.rar)       unrar e $1     ;; 
        *.gz)        gunzip $1      ;; 
        *.tar)       tar xf $1      ;; 
        *.tbz2)      tar xjf $1     ;; 
        *.tgz)       tar xzf $1     ;; 
        *.zip)       unzip $1       ;; 
        *.Z)         uncompress $1  ;; 
        *.7z)        7z x $1        ;; 
        *)     echo "'$1' cannot be extracted via extract()" ;; 
         esac 
     else 
         echo "'$1' is not a valid file" 
     fi 
}

很长,但是也是最有用的。解压任何的文档类型:extract: [压缩文件]

八、快捷键

ls

目录: 

/ 根目录

/bin      存放必要的命令

/sbin     存放系统管理程序

/boot   存放内核以及启动所需的文件等

/dev     存放设备文件

/etc      存放系统的配置文件

/home  用户文件的主目录,用户数据存放在其主目录中

/lib        存放必要的运行库

/mnt     存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。

/proc     存放存储进程和系统信息

/root     超级用户的主目录

/tmp     存放临时文件的目录

/usr       包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档。

/var       包含系统产生的经常变化的文件,例如打印机、邮件、新闻等假脱机目录、日志文件、格式化后的手册页以及 一些应用程序的数据文件等等。建议单独的放在一个分区。

 

本文由美高梅赌堵59599发布于美高梅-运维,转载请注明出处:七、真人手机网页版环境变量,如果你想使用原本的ls命令而不是别名

关键词: