bash shell 基础命令

  • 来自Linux命令行与shell脚本编程大全,如有侵权,请联系删除
  1. 启动shell
    /etc/passwd 文件包含了所有系统账户以及每个用户的基本配置信息
$ cat /etc/passwd | grep "root"
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

这里 root用户 将/bin/bash作为默认shell程序

  1. 查看文件
    ls -F 列出当前文件夹下的文件和目录, 并区分目录
$ ls
job_example  perl5  proj_doing  proj_done  software  Work
## 发现当前全部是目录
$ ls -F
job_example/  perl5/  proj_doing/  proj_done/  software/  Work/

ls -a 列出全部文件和目录,包括隐藏目录

$ ls -a
.              .bash_logout   .cache    .config      .kshrc    .mkshrc         perl5       proj_done        .ssh      Work
..             .bash_profile  .conda    .emacs       .lesshst  .mozilla        .pki        .python_history  .vim      .Xauthority
.bash_history  .bashrc        .condarc  job_example  .local    .mysql_history  proj_doing  software         .viminfo  .zshrc

$ ls -aF
./             .bash_logout   .cache/   .config/      .kshrc    .mkshrc         perl5/       proj_done/       .ssh/     Work/
../            .bash_profile  .conda/   .emacs        .lesshst  .mozilla/       .pki/        .python_history  .vim/     .Xauthority
.bash_history  .bashrc
  1. 处理文件

touch创建文件一个空文件

$ touch test_one

$ ls -l test_one 
-rw-r--r-- 1 r01 research 0 Oct 18 16:52 test_one

cp复制文件

## 复制文件到当前路径
cp  test_one test_two
### -i 选项 询问是否覆盖
$ cp -i test_one test_two
cp: overwrite ‘test_two’? y
## 复制文件到指定路径
$ mkdir Docu
$ cp test* Docu/
$ ls -l Docu
total 0
-rw-r--r-- 1 r01 research 0 Oct 18 16:57 test_one
-rw-r--r-- 1 r01 research 0 Oct 18 16:57 test_two

ln -s 创建软连接(符号链接)
软连接是一个 文件
链接文件,是Linux文件系统的优势。如果需要在系统中维护同一文件的两个或者多个副本,可以使用 单个物理副本 加 多个虚拟副本(链接) 代替创建多个物理副本。
链接 是目录中 指向文件真实位置的占位符

$ ln -s test_one slink_test_one

$ ls -l *test_one
lrwxrwxrwx 1 r01 research 8 Oct 18 18:50 slink_test_one -> test_one
-rw-r--r-- 1 r01 research 0 Oct 18 16:52 test_one
## 查看两个文件的inode编号
$ ls -i *test_one
71646507789 slink_test_one  79173466884 test_one

ln 创建 硬链接
硬链接是一个 虚拟文件

ln test_two slink_test_two
## 硬链接是一个独立的 虚拟文件,包含原始文件的信息及其位置。
## 本质上,与原始文件是同一个文件
$ ls -il *test_two
79174740228 -rw-r--r-- 2 r01 research 0 Oct 18 16:55 slink_test_two
79174740228 -rw-r--r-- 2 r01 research 0 Oct 18 16:55 test_two

mv 文件重命名
只影响文件名, 重命名后的 inode 编号 和 时间戳不变

ll -i test_one 
79173466884 -rw-r--r-- 1 r01 research 0 Oct 18 16:52 test_one

$ mv test_one test_one2

$ ll -i test_one2
79173466884 -rw-r--r-- 1 r01 research 0 Oct 18 16:52 test_one2

rm 删除文件
注意:shell 没有回收站或者垃圾箱之类的东西, 文件一旦被删除,就找不回来了。

## 建议加入 -i 选项 ,删除是进行再次确认
$ rm -i slink_test_one
rm: remove symbolic link ‘slink_test_one’? y
  1. 管理目录

mkdir 创建目录

$ mkdir New_Dir
# -d 选项 显示当前文件夹
$ ls -ld New_Dir
drwxr-xr-x 2 r01 research 4096 Oct 18 19:37 New_Dir

mkdir -p 循环创建目录及其子目录

$ mkdir -p New_Dir/SubDir/UnderDir
## -R 选项 查看目录下的所有文件、及其子目录下的所有文件
$ ls -R New_Dir
New_Dir:
SubDir

New_Dir/SubDir:
UnderDir

New_Dir/SubDir/UnderDir:

rmdir 删除 空目录

$ mkdir wrongDir
$ ll -d wrong*
drwxr-xr-x 2 r01 research 4096 Oct 18 19:45 wrongDir

$ rmdir wrongDir
$ 

## 非空目录无法删除
$ mkdir wrongDir2
$ touch wrongDir2/file1
$ ll wrongDir2/
total 0
-rw-r--r-- 1 r01 research 0 Oct 18 19:47 file1

$ rmdir wrongDir2
rmdir: failed to remove ‘wrongDir2’: Directory not empty

rm -r 删除非空目录

$ rm -ri wrongDir2
rm: descend into directory ‘wrongDir2’? y
rm: remove regular empty file ‘wrongDir2/file1’? y
rm: remove directory ‘wrongDir2’? y
$ 

rm -rf 会一口气删完所有文件,不会有任何提示,建议谨慎使用。

  1. 查看文件内容

file 命令,是一个很方便的小工具,能够探测文件的内部并判断文件类型。

## .bashrc  是一个text文件,字符编码为ASCII
$ file .bashrc
.bashrc: ASCII text
## Work 是一个文件夹
$ file Work
Work: directory
## slink_two  是 test_two 的符号连接(软链接)
$ file slink_two 
slink_two: symbolic link to 'test_two'
## test_two 文件是一个shell 脚本
$ file test_two 
test_two: Bourne-Again shell script, ASCII text executable

$ which ls
alias ls='ls --color=auto'
    /usr/bin/ls
$ file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ceaf496f3aec08afced234f4f36330d3d13a657b, stripped

cat 查看文件

$ cat test_two 
#!/bin/bash

echo "Hello world"
$
$ cat -n test_two 
     1  #!/bin/bash
     2  
     3  echo "Hello world"
$
$ cat -b test_two 
     1  #!/bin/bash

     2  echo "Hello world"
$

more 分页显示文本文件内容

$ more /etc/profile

profile 文件显示如下

# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}


if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
--More--(35%)

less more的升级版本。(less is more)

$ less /etc/profile

打开profile文件如下

# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}


if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
/etc/profile

head
tail
查看部分文件
head -n tail -n 查看指定的行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容