Linux基础命令

shell

shell的启动和使用

shell在启动的时候,先读取/etc/bash.bashrc文件对整个Linux操作系统进行配置,然后读取$HOME/.bashrc文件对当前用户进行配置,如果这两个文件有冲突,则以后者为准。

pengjidong@pengjidong:/etc$ cat -n bash.bashrc
     1  # System-wide .bashrc file for interactive bash(1) shells.
     2
     3  # To enable the settings / commands in this file for login shells as well,
     4  # this file has to be sourced in /etc/profile.
     5
     6  # If not running interactively, don't do anything
     7  [ -z "$PS1" ] && return
     8
     9  # check the window size after each command and, if necessary,
    10  # update the values of LINES and COLUMNS.
    11  shopt -s checkwinsize
    12
    13  # set variable identifying the chroot you work in (used in the prompt below)
    14  if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    15      debian_chroot=$(cat /etc/debian_chroot)
    16  fi
    17
    18  # set a fancy prompt (non-color, overwrite the one in /etc/profile)
    19  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

shell的通配符

  1. *代表任意长度的字符串
  2. ?代表任意单个字符
  3. []制定了模式串匹配的字符范围
  4. -中间连字符,[a-d][abcd]作用相同

Shell中的特殊符号

  1. 单引号,由单引号括起来的字符当普通字符处理

  2. $,表示引用变量的值

  3. 双引号,其作用与单引号类似,但是没有单引号那么严格,双引号中的``$\会被解释为特殊的意思,而单引号引用则当做普通字符串

    pengjidong@pengjidong:~$ x=*
    pengjidong@pengjidong:~$ echo '$x'
    $x
    pengjidong@pengjidong:~$ echo "$x"
    *
    
  4. 反引号,反引号括起来的字符串被解释为命令行,在执行时,shell先执行该命令行,并以它的标准输出结果取代整个反引号。

    pengjidong@pengjidong:~$ echo "current directory is: `pwd`"
    current directory is: /home/pengjidong
    
  5. #,意为注释。

目录操作命令

mkdir创建目录

mkdir [选项] 目录

常用选项如下:

-m,在建立目录的时候用来设置目录的权限,其中分为3组权限:目录所有者的权限、组中其他人的权限、系统中其他人对目录的权限。这三个权限分别用三个数组之和来表示:对目录的读权限为4、写权限是2、执行权限是1.

# 所有者拥有完全权限、组中其他人拥有读和执行的权限、系统中其他人只有执行的权限
pengjidong@pengjidong:~$ mkdir -m 751 test
pengjidong@pengjidong:~$ ls -l
drwxr-x--x 0 pengjidong pengjidong 4096 Aug 22 20:02 test

r-100/w-010/x-001/d-directory

rmdir删除目录

rmdir [选项] 目录

常用替代命令rm

-rf,递归的删除目录,常用于目录非空的情况下。

pengjidong@pengjidong:~$ rmdir test/
rmdir: failed to remove 'test/': Directory not empty
pengjidong@pengjidong:~$ rm -rf test/

pwd显示当前目录

pengjidong@pengjidong:~$ pwd
/home/pengjidong

cd改变当前目录

/表示根目录

.表示当前目录

..表示上一级目录

文件操作命令

ls列举文件命令

ls [选项] [文件目录列表]

常用选项如下:

  1. -a 列出目录下所有文件,包括以.开头的隐含文件

    pengjidong@pengjidong:~$ ls
    chapter2  hello.c
    pengjidong@pengjidong:~$ ls -a
    .   .bash_history  .bashrc   hello.c   .python_history  .sudo_as_admin_successful
    ..  .bash_logout   chapter2  .profile  .ssh             .viminfo
    
  2. -b 把文件名中不可输出的字符用反斜线加字符编号的形式列出(如C中一样)

  3. -i 输出文件i节点的索引信息

    pengjidong@pengjidong:~$ ls -i
    1970324837030724 chapter2  3940649674039942 hello.c
    
  4. -k 以k字节的形式表示文件大小

  5. -l 一行只输出一个文件

find 查找文件命令

find [目录列表] [匹配标准]
pengjidong@pengjidong:~$ find hell*
hello.c

常用选项

  1. -mount不在系统目录中查找

cat显示文件内容

cat [选项] 文件列表

常用选项

  1. -n 在文件的没行前,加上行号
pengjidong@pengjidong:~$ cat -n hello.c
     1  #include 
     2
     3  int main()
     4  {
     5  printf("hello world.\n");
     6  return 0;
     7  }
     8

使用cat拼接文件

pengjidong@pengjidong:~$ cat hello.c test.txt > t.md
pengjidong@pengjidong:~$ cat t.md
#include 

int main()
{
printf("hello world.\n");
return 0;
}

this is a temporary file. 时间。

cp复制文件

cp [选项] 源文件或目录 目标文件或目录

常用选项如下:

  1. -a 它保留链接、文件属性,并递归地复制目录,其作用等与-dpR的组合。
  2. -d 复制时保留链接
  3. -f 删除已经存在的目标文件而不提示
  4. -i-f相反,它强制提示
  5. -p 还把修改时间与访问权限也复制进去
  6. -r 递归地复制子目录
  7. -l 不进行复制,只进行链接

mv移动和重命名文件

mv [选项] 源文件名 目标文件名
mv [选项] 源目录名 目标目录名2
mv [选项] 文件列表 目录

常用选项如下:

  1. -b 当遇到要覆盖其他文件或者目录的时候,将自动备份,备份文件名为-S ,如果没有指定-S,则默认在文件名前加上~
  2. -i 覆盖前给出提示
  3. -f 覆盖前不给提示
  4. -u 当要覆盖的文件或目录比源文件要新,则不覆盖目标文件
  5. -S <字符串>

wc文件内容统计

wc [选项] 文件列表

常用选项

  1. -c 统计字节数
  2. -l 统计行数
  3. -w 统计字数

rm删除文件

rm [选项] 文件

常用选项

  1. -f 强制删除
  2. -i 给出提示的删除

系统管理命令

pskill进程管理命令

ps命令用于显示当前系统中由该用户运行的进程列表,而kill命令用于输出特定的信号给指定进程号(PID)的进程,并根据该信号完成指定的行为,其中可能的信号有进程挂起、进程等待、进程终止等。

ps: ps [选项]
kill: kill [选项] PID

ps命令选项

  1. -ef 查看所有进程及其PID、系统时间、命令的详细目录、执行者等
  2. aux 除了可以显示-ef的内容外,还可以显示CPU及内存占有率、进程状态等
  3. -w 以加宽的方式显示,这样可以显示较多的信息
pengjidong@pengjidong:/etc$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 14:42 ?        00:00:00 /init
pengjid+     2     1  0 14:42 tty1     00:00:00 -bash
pengjid+    27     2  0 14:56 tty1     00:00:00 ps -ef
pengjidong@pengjidong:/etc$ ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  10432   584 ?        Ss   14:42   0:00 /init
pengjid+     2  0.0  0.0  25784  3708 tty1     Ss   14:42   0:00 -bash
pengjid+    28  3.0  0.0  41448  1852 tty1     R    14:56   0:00 ps -aux

kill中的信号

1) SIGHUP    2) SIGINT    3) SIGQUIT    4) SIGILL    5) SIGTRAP 
6) SIGABRT    7) SIGBUS    8) SIGFPE    9) SIGKILL    10) SIGUSR1  
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10   45) SIGRTMIN+11   46) SIGRTMIN+12   47) SIGRTMIN+13
48) SIGRTMIN+14   49) SIGRTMIN+15   50) SIGRTMAX-14   51) SIGRTMAX-13   52) SIGRTMAX- 12
53) SIGRTMAX-11   54) SIGRTMAX-10   55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX

所以,如果我们使用某个确定的信号来杀死进程的时候,这个时候我们使用kill -s 9 PID

此外在还有一个存放内存中的特殊目录/proc,他并不在我们的磁盘上,而是在我们的内存上,当前系统运行的所有进程都动态的存放在这个目录中。

# 查看CPU的基本信息
pengjidong@pengjidong:/etc$ cd /proc/
pengjidong@pengjidong:/proc$ cat cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 61
model name      : Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
stepping        : 4
microcode       : 0xffffffff
cpu MHz         : 2401.000
cache size      : 256 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 6
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave osxsave avx f16c rdrand
bogomips        : 4802.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 61
model name      : Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
stepping        : 4
microcode       : 0xffffffff
cpu MHz         : 2401.000
cache size      : 256 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 6
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave osxsave avx f16c rdrand
bogomips        : 4802.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : GenuineIntel
cpu family      : 6
model           : 61
model name      : Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
stepping        : 4
microcode       : 0xffffffff
cpu MHz         : 2401.000
cache size      : 256 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 6
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave osxsave avx f16c rdrand
bogomips        : 4802.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 61
model name      : Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
stepping        : 4
microcode       : 0xffffffff
cpu MHz         : 2401.000
cache size      : 256 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 6
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave osxsave avx f16c rdrand
bogomips        : 4802.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

nice&renice定义进程优先级

nice [option] commands

nice - run a program with modified scheduling priority

nohup用户退出后继续运行

nohup - run a command immune to hangups, with output to a non-tty

 nohup COMMAND [ARG]...
 nohup OPTION
pengjidong@pengjidong:/proc$ sudo nohup find / -name init* > /home/pengjidong/a.find
nohup: ignoring input and redirecting stderr to stdout

# 我们发现这样子执行后并没办法继续输入命令了
# 于是我们在后面加上一个 & 
pengjidong@pengjidong:/proc$ sudo nohup find / -name init* > /home/pengjidong/a.find &

进程挂起和终止

Ctrl+C:进程终止

Ctrl+Z:进程挂起

查看被挂起的进程jobs

进程的恢复:

fg恢复到前台继续运行

bg 恢复到后台继续运行

top动态显示进程信息

top - 15:29:00 up 46 min,  0 users,  load average: 0.52, 0.58, 0.59
Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie
%Cpu(s):  9.3 us,  4.9 sy,  0.0 ni, 85.6 id,  0.0 wa,  0.2 hi,  0.0 si,  0.0 st
KiB Mem :  8306224 total,  4165264 free,  3904484 used,   236476 buff/cache
KiB Swap: 19552888 total, 19480224 free,    72664 used.  4260884 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0   10432    584    552 S   0.0  0.0   0:00.54 init
    2 pengjid+  20   0   25784   3736   3632 S   0.0  0.0   0:01.88 bash
  163 pengjid+  20   0   41680   1864   1336 R   0.0  0.0   0:00.03 top

w查看当前系统信息命令

w [options] user [...]

example:

ubuntu@VM-0-7-ubuntu:~$ w
 15:04:44 up 20 days, 17:52,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
ubuntu   pts/0    182.106.212.146  15:04    3.00s  0.04s  0.00s w

man 帮助命令

man [选项] 命令名称

常用选项如下:

  1. -f 只显示出命令的功能而不显示其中详细的说明文件
  2. -w 不显示手册页,只显示对应帮助文件的所在位置
  3. -a 显示所有的手册页,而不只是显示第一个
  4. -E 在每行末尾显示$符号
pengjidong@pengjidong:~$ man -f ls
ls (1)               - list directory contents

你可能感兴趣的:(Linux基础命令)