Linux基本命令(一)
Linux基本命令
1.用户
[root@hadoop001 ~]#
登录的用户 机器的名称 家目录 ?
2.pwd
[root@hadoop001~]# cd /etc/
[root@hadoop001 etc]# pwd # 查看当前光标所在的目录,显示从根目录/开始的绝对路径
/etc
3.cd切换
cd /home
[root@hadoop001 ~]# cd /home/
[root@hadoop001 home]# pwd
/home
[root@hadoop001 home]#
cd 切家目录
cd ~ 切家目录 ~标识
cd - 回到上一次目录
cd /root 用户的家目录的绝对路径
[root@hadoop001 home]# cd ~
[root@hadoop001 ~]# cd -
/home
[root@hadoop001 home]#
[root@hadoop001 home]# cd /root/
[root@hadoop001 ~]#
cd …/ 回退上一层目录
cd …/…/ 回退2个目录
[root@hadoop001 pm]# cd ../
[root@hadoop001 etc]# cd -
/etc/pm
[root@hadoop001 pm]# cd ../../
[root@hadoop001 /]# pwd
/
[root@hadoop001 /]#
4.目录 文件夹 路径
绝对路径 /根目录 以根目录
[root@hadoop001 home]# cd ~
[root@hadoop001 ~]# cd /home/hadoop/
[root@hadoop001 hadoop]# pwd
/home/hadoop
[root@hadoop001 hadoop]#
相对路径 不以根目录为开始,以当前光标所在的目录为开始
[root@hadoop001 hadoop]# cd ../
[root@hadoop001 home]# cd hadoop/
[root@hadoop001 hadoop]# pwd
/home/hadoop
[root@hadoop001 hadoop]#
5.clear 清空屏幕
[root@hadoop001 hadoop]#
6.ls查看当前光标所在的目录和文件
[root@hadoop001 /]# ls
bin dev home lib media opt root run srv tmp var
boot etc jepson.log lib64 mnt proc rouze.log sbin sys usr
[root@hadoop001 /]#
ls -l ==> 等价于ll
[root@hadoop001 /]# cd home/
[root@hadoop001 home]# ll
total 0
drwx------. 2 hadoop hadoop 62 Nov 18 11:32 hadoop
drwx------. 2 jepson jepson 99 Nov 5 22:46 jepson
drwx------. 4 rouze rouze 95 Nov 5 16:08 rouze
[root@hadoop001 home]# ls -l
total 0
drwx------. 2 hadoop hadoop 62 Nov 18 11:32 hadoop
drwx------. 2 jepson jepson 99 Nov 5 22:46 jepson
drwx------. 4 rouze rouze 95 Nov 5 16:08 rouze
[root@hadoop001 home]#
ls -l -a 查看当前的文件文件夹和隐藏文件文件夹,以.开头
[root@hadoop001 sys]# ll -a
total 0
dr-xr-xr-x. 13 root root 0 Nov 18 10:15 .
dr-xr-xr-x. 17 root root 259 Nov 5 14:14 ..
drwxr-xr-x. 2 root root 0 Nov 18 11:52 block
drwxr-xr-x. 34 root root 0 Nov 18 11:52 bus
drwxr-xr-x. 55 root root 0 Nov 18 11:52 class
drwxr-xr-x. 4 root root 0 Nov 18 11:52 dev
drwxr-xr-x. 16 root root 0 Nov 18 11:52 devices
drwxr-xr-x. 6 root root 0 Nov 18 11:52 firmware
drwxr-xr-x. 7 root root 0 Nov 18 11:52 fs
drwxr-xr-x. 2 root root 0 Nov 18 11:52 hypervisor
drwxr-xr-x. 10 root root 0 Nov 18 11:52 kernel
drwxr-xr-x. 170 root root 0 Nov 18 11:52 module
drwxr-xr-x. 2 root root 0 Nov 18 11:52 power
[root@hadoop001 sys]# ls -l -a
total 0
dr-xr-xr-x. 13 root root 0 Nov 18 10:15 .
dr-xr-xr-x. 17 root root 259 Nov 5 14:14 ..
drwxr-xr-x. 2 root root 0 Nov 18 11:52 block
drwxr-xr-x. 34 root root 0 Nov 18 11:52 bus
drwxr-xr-x. 55 root root 0 Nov 18 11:52 class
drwxr-xr-x. 4 root root 0 Nov 18 11:52 dev
drwxr-xr-x. 16 root root 0 Nov 18 11:52 devices
drwxr-xr-x. 6 root root 0 Nov 18 11:52 firmware
drwxr-xr-x. 7 root root 0 Nov 18 11:52 fs
drwxr-xr-x. 2 root root 0 Nov 18 11:52 hypervisor
drwxr-xr-x. 10 root root 0 Nov 18 11:52 kernel
drwxr-xr-x. 170 root root 0 Nov 18 11:52 module
drwxr-xr-x. 2 root root 0 Nov 18 11:52 power
[root@hadoop001 sys]#
ll -h 查看文件的大小
[root@hadoop001 software]# ll -h
total 684M
-rw-r--r--. 1 root root 8.1M Aug 13 20:38 apache-maven-3.3.9-bin.tar.gz
-rw-r--r--. 1 root root 8.5M Aug 16 16:00 apache-maven-3.5.4-bin.tar.gz
-rw-r--r--. 1 root root 5.2M Aug 23 01:02 hadoop-2.6.0-cdh5.15.1-src.tar
-rw-r--r--. 1 root root 46M Aug 11 22:44 hadoop-2.6.0-cdh5.15.1-src.tar.gz
-rw-r--r--. 1 root root 242M Aug 27 21:22 hadoop-2.6.0-cdh5.15.1.tar.gz
-rw-r--r--. 1 root root 147M Aug 13 20:35 jdk-7u80-linux-x64.tar.gz
-rw-r--r--. 1 root root 183M Aug 16 15:57 jdk-8u191-linux-x64.tar.gz
-rw-r--r--. 1 root root 2.3M Aug 13 20:41 protobuf-2.5.0.tar.gz
-rw-r--r--. 1 root root 28M Aug 16 17:56 scala-2.11.12.tgz
-rw-r--r--. 1 root root 15M Aug 16 15:20 spark-2.4.3.tar.gz
[root@hadoop001 software]#
ll -rt 按时间排序
[root@hadoop001 software]# ll -rt
total 699652
-rw-r--r--. 1 root root 48019244 Aug 11 22:44 hadoop-2.6.0-cdh5.15.1-src.tar.gz
-rw-r--r--. 1 root root 153530841 Aug 13 20:35 jdk-7u80-linux-x64.tar.gz
-rw-r--r--. 1 root root 8491533 Aug 13 20:38 apache-maven-3.3.9-bin.tar.gz
-rw-r--r--. 1 root root 2401901 Aug 13 20:41 protobuf-2.5.0.tar.gz
-rw-r--r--. 1 root root 15558928 Aug 16 15:20 spark-2.4.3.tar.gz
-rw-r--r--. 1 root root 191753373 Aug 16 15:57 jdk-8u191-linux-x64.tar.gz
-rw-r--r--. 1 root root 8842660 Aug 16 16:00 apache-maven-3.5.4-bin.tar.gz
-rw-r--r--. 1 root root 29114457 Aug 16 17:56 scala-2.11.12.tgz
-rw-r--r--. 1 root root 5436188 Aug 23 01:02 hadoop-2.6.0-cdh5.15.1-src.tar
-rw-r--r--. 1 root root 253270787 Aug 27 21:22 hadoop-2.6.0-cdh5.15.1.tar.gz
[root@hadoop001 software]#
7.如何命令帮助
[root@hadoop001 software]# ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
--block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'--block-size=M' prints sizes in units of
1,048,576 bytes; see SIZE format below
-B, --ignore-backups do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last
modification of file status information);
with -l: show ctime and sort by name;
otherwise: sort by ctime, newest first
-C list entries by columns
--color[=WHEN] colorize the output; WHEN can be 'never', 'auto',
or 'always' (the default); more info below
-d, --directory list directories themselves, not their contents
-D, --dired generate output designed for Emacs' dired mode
-f do not sort, enable -aU, disable -ls --color
-F, --classify append indicator (one of */=>@|) to entries
--file-type likewise, except do not append '*'
--format=WORD across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time like -l --time-style=full-iso
-g like -l, but do not list owner
--group-directories-first
group directories before files;
can be augmented with a --sort option, but any
use of --sort=none (-U) disables grouping
-G, --no-group in a long listing, don't print group names
-h, --human-readable with -l, print sizes in human readable format
(e.g., 1K 234M 2G)
--si likewise, but use powers of 1000 not 1024
-H, --dereference-command-line
follow symbolic links listed on the command line
--dereference-command-line-symlink-to-dir
follow each command line symbolic link
that points to a directory
--hide=PATTERN do not list implied entries matching shell PATTERN
(overridden by -a or -A)
--indicator-style=WORD append indicator with style WORD to entry names:
none (default), slash (-p),
file-type (--file-type), classify (-F)
-i, --inode print the index number of each file
-I, --ignore=PATTERN do not list implied entries matching shell PATTERN
-k, --kibibytes default to 1024-byte blocks for disk usage
-l use a long listing format
-L, --dereference when showing file information for a symbolic
link, show information for the file the link
references rather than for the link itself
-m fill width with a comma separated list of entries
-n, --numeric-uid-gid like -l, but list numeric user and group IDs
-N, --literal print raw entry names (don't treat e.g. control
characters specially)
-o like -l, but do not list group information
-p, --indicator-style=slash
append / indicator to directories
-q, --hide-control-chars print ? instead of nongraphic characters
--show-control-chars show nongraphic characters as-is (the default,
unless program is 'ls' and output is a terminal)
-Q, --quote-name enclose entry names in double quotes
--quoting-style=WORD use quoting style WORD for entry names:
literal, locale, shell, shell-always, c, escape
-r, --reverse reverse order while sorting
-R, --recursive list subdirectories recursively
-s, --size print the allocated size of each file, in blocks
-S sort by file size
--sort=WORD sort by WORD instead of name: none (-U), size (-S),
time (-t), version (-v), extension (-X)
--time=WORD with -l, show time as WORD instead of default
modification time: atime or access or use (-u)
ctime or status (-c); also use specified time
as sort key if --sort=time
--time-style=STYLE with -l, show times using style STYLE:
full-iso, long-iso, iso, locale, or +FORMAT;
FORMAT is interpreted like in 'date'; if FORMAT
is FORMAT1<newline>FORMAT2, then FORMAT1 applies
to non-recent files and FORMAT2 to recent files;
if STYLE is prefixed with 'posix-', STYLE
takes effect only outside the POSIX locale
-t sort by modification time, newest first
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
-u with -lt: sort by, and show, access time;
with -l: show access time and sort by name;
otherwise: sort by access time
-U do not sort; list entries in directory order
-v natural sort of (version) numbers within text
-w, --width=COLS assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-1 list one file per line
SELinux options:
--lcontext Display security context. Enable -l. Lines
will probably be too wide for most displays.
-Z, --context Display security context so it fits on most
displays. Displays only mode, user, group,
security context and file name.
--scontext Display only security context and file name.
--help display this help and exit
--version output version information and exit
SIZE is an integer and optional unit (example: 10M is 10*1024*1024). Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).
Using color to distinguish file types is disabled both by default and
with --color=never. With --color=auto, ls emits color codes only when
standard output is connected to a terminal. The LS_COLORS environment
variable can change the settings. Use the dircolors command to set it.
Exit status:
0 if OK,
1 if minor problems (e.g., cannot access subdirectory),
2 if serious trouble (e.g., cannot access command-line argument).
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'ls invocation'
[root@hadoop001 software]#
8.目录 文件夹
mkdir 创建文件夹
[root@hadoop001 jepson]# mkdir a //创建一个文件夹
[root@hadoop001 jepson]# ll
total 0
drwxr-xr-x. 2 root root 6 Nov 18 13:00 a
[root@hadoop001 jepson]# mkdir -p b/c/d //创建多级文件夹
[root@hadoop001 jepson]# cd b/c/d
[root@hadoop001 d]# pwd
/home/jepson/b/c/d
[root@hadoop001 d]#[root@hadoop001 d]# cd /home/jepson/
[root@hadoop001 jepson]# mkdir 1 2 3 //创建多个文件夹
[root@hadoop001 jepson]# ll
total 0
drwxr-xr-x. 2 root root 6 Nov 18 13:06 1
drwxr-xr-x. 2 root root 6 Nov 18 13:06 2
drwxr-xr-x. 2 root root 6 Nov 18 13:06 3
drwxr-xr-x. 2 root root 6 Nov 18 13:00 a
drwxr-xr-x. 3 root root 15 Nov 18 13:01 b
[root@hadoop001 jepson]#
9.mv移动 cp复制/拷贝
mv移动 始终只有一份
[root@hadoop001 jepson]# touch hadoop.log //创建hadoop.log文件
[root@hadoop001 jepson]# echo "www.baidu.com" >> hadoop.log //写入内容
[root@hadoop001 jepson]# mv hadoop.log 1 //移动文件
[root@hadoop001 jepson]# cd 1
[root@hadoop001 1]# ll //检查结果
total 4
-rw-r--r--. 1 root root 14 Nov 18 13:10 hadoop.log
[root@hadoop001 1]# cd ..
[root@hadoop001 jepson]# mv 1/hadoop.log ./hadoop.log001 //可以利用mv修改名称
[root@hadoop001 jepson]# ll
total 4
drwxr-xr-x. 2 root root 6 Nov 18 13:17 1
drwxr-xr-x. 2 root root 6 Nov 18 13:06 2
drwxr-xr-x. 2 root root 6 Nov 18 13:06 3
drwxr-xr-x. 2 root root 6 Nov 18 13:00 a
drwxr-xr-x. 3 root root 15 Nov 18 13:01 b
-rw-r--r--. 1 root root 14 Nov 18 13:10 hadoop.log001
[root@hadoop001 jepson]#
cp复制/拷贝 原文件不动,新增一份
[root@hadoop001 jepson]# cp hadoop.log001 ./hadoop.log002 //复制也可以修改名字
[root@hadoop001 jepson]# ll
total 8
drwxr-xr-x. 2 root root 6 Nov 18 13:17 1
drwxr-xr-x. 2 root root 6 Nov 18 13:06 2
drwxr-xr-x. 2 root root 6 Nov 18 13:06 3
drwxr-xr-x. 2 root root 6 Nov 18 13:00 a
drwxr-xr-x. 3 root root 15 Nov 18 13:01 b
-rw-r--r--. 1 root root 14 Nov 18 13:10 hadoop.log001
-rw-r--r--. 1 root root 14 Nov 18 13:23 hadoop.log002
[root@hadoop001 jepson]# cp hadoop.log001 a/ //也可以不修改
[root@hadoop001 jepson]# cd a
[root@hadoop001 a]# ll
total 4
-rw-r--r--. 1 root root 14 Nov 18 13:24 hadoop.log001
[root@hadoop001 a]#
mv比cp速度快哦!
10.如何创建一个空文件 或者把一个文件设置为空
touch baidu.log 如何创建一个空文件
echo “” > baidu.log1 慎用
cat /dev/null > hadoop.log001 把一个文件设置为空
[root@hadoop001 jepson]# touch baidu.log
[root@hadoop001 jepson]# echo "" > baidu.log001 //非空文件,不建议使用
[root@hadoop001 jepson]# ll
total 12
drwxr-xr-x. 2 root root 6 Nov 18 13:17 1
drwxr-xr-x. 2 root root 6 Nov 18 13:06 2
drwxr-xr-x. 2 root root 6 Nov 18 13:06 3
drwxr-xr-x. 2 root root 27 Nov 18 13:24 a
drwxr-xr-x. 3 root root 15 Nov 18 13:01 b
-rw-r--r--. 1 root root 0 Nov 18 13:26 baidu.log
-rw-r--r--. 1 root root 1 Nov 18 13:27 baidu.log001
-rw-r--r--. 1 root root 14 Nov 18 13:10 hadoop.log001
-rw-r--r--. 1 root root 14 Nov 18 13:23 hadoop.log002
[root@hadoop001 jepson]# cat /dev/null > hadoop.log001 //同样可以将文件清空,生产中用的最多
[root@hadoop001 jepson]# ll
total 8
drwxr-xr-x. 2 root root 6 Nov 18 13:17 1
drwxr-xr-x. 2 root root 6 Nov 18 13:06 2
drwxr-xr-x. 2 root root 6 Nov 18 13:06 3
drwxr-xr-x. 2 root root 27 Nov 18 13:24 a
drwxr-xr-x. 3 root root 15 Nov 18 13:01 b
-rw-r--r--. 1 root root 0 Nov 18 13:26 baidu.log
-rw-r--r--. 1 root root 1 Nov 18 13:27 baidu.log001
-rw-r--r--. 1 root root 0 Nov 18 13:33 hadoop.log001
-rw-r--r--. 1 root root 14 Nov 18 13:23 hadoop.log002
[root@hadoop001 jepson]#
11.查看文件内容
cat 文件内容一下子全部显示
[root@hadoop001 log]# cat yum.log
Nov 03 21:49:06 Installed: lrzsz-0.12.20-36.el7.x86_64
Nov 03 21:54:30 Installed: net-tools-2.0-0.25.20131004git.el7.x86_64
Nov 03 22:08:30 Installed: 1:perl-parent-0.225-244.el7.noarch
Nov 03 22:08:30 Installed: perl-HTTP-Tiny-0.033-3.el7.noarch
Nov 03 22:08:30 Installed: perl-podlators-2.5.1-3.el7.noarch
Nov 03 22:08:30 Installed: perl-Pod-Perldoc-3.20-4.el7.noarch
Nov 03 22:08:30 Installed: 1:perl-Pod-Escapes-1.04-294.el7_6.noarch
Nov 03 22:08:30 Installed: perl-Text-ParseWords-3.29-4.el7.noarch
Nov 03 22:08:30 Installed: perl-Encode-2.51-7.el7.x86_64
Nov 03 22:08:30 Installed: perl-Pod-Usage-1.63-3.el7.noarch
Nov 03 22:08:30 Installed: 4:perl-libs-5.16.3-294.el7_6.x86_64
Nov 03 22:08:30 Installed: 4:perl-macros-5.16.3-294.el7_6.x86_64
Nov 03 22:08:30 Installed: perl-Storable-2.45-3.el7.x86_64
Nov 03 22:08:30 Installed: perl-Exporter-5.68-3.el7.noarch
Nov 03 22:08:30 Installed: perl-constant-1.27-2.el7.noarch
Nov 03 22:08:30 Installed: perl-Time-Local-1.2300-2.el7.noarch
Nov 03 22:08:30 Installed: perl-Carp-1.26-244.el7.noarch
Nov 03 22:08:30 Installed: 4:perl-Time-HiRes-1.9725-3.el7.x86_64
Nov 03 22:08:30 Installed: perl-PathTools-3.40-5.el7.x86_64
Nov 03 22:08:30 Installed: perl-Scalar-List-Utils-1.27-248.el7.x86_64
Nov 03 22:08:30 Installed: perl-File-Temp-0.23.01-3.el7.noarch
Nov 03 22:08:30 Installed: perl-File-Path-2.09-2.el7.noarch
Nov 03 22:08:30 Installed: perl-threads-shared-1.43-6.el7.x86_64
Nov 03 22:08:30 Installed: perl-threads-1.87-4.el7.x86_64
Nov 03 22:08:30 Installed: perl-Filter-1.49-3.el7.x86_64
Nov 03 22:08:30 Installed: perl-Socket-2.010-4.el7.x86_64
Nov 03 22:08:31 Installed: 1:perl-Pod-Simple-3.28-4.el7.noarch
Nov 03 22:08:31 Installed: perl-Getopt-Long-2.40-3.el7.noarch
Nov 03 22:08:32 Installed: 4:perl-5.16.3-294.el7_6.x86_64
Nov 03 22:08:32 Installed: gpm-libs-1.20.7-6.el7.x86_64
Nov 03 22:08:32 Installed: 2:vim-filesystem-7.4.629-6.el7.x86_64
Nov 03 22:08:34 Installed: 2:vim-common-7.4.629-6.el7.x86_64
Nov 03 22:08:34 Installed: 2:vim-enhanced-7.4.629-6.el7.x86_64
[root@hadoop001 log]#
more 文件内容一页一页的往下翻,按空格键往下,回退不了,按q退出,按百分比。
less 文件内容 往下 往上 按上下箭头的按键 按q键退出
实时查看文件
tail -f xxx.log
[root@hadoop001 jepson]# tail -f baidu.log
//实时监控文件内容的变化,但文件被删除过后,监控将失效
123
56
tail -F xxx.log -f+ retry
[root@hadoop001 jepson]# tail -F baidu.log
//当文件被删后,从创建,该文件仍然被监控
123456
tail: baidu.log: file truncated
789
shanghai
tail: ‘baidu.log’ has become inaccessible: No such file or directory
beijing
总结:tail -f 没有tail -F强大,生产中尽量使用tail -F
12.当ERROR 如何定位
方法一:文件内容很小 几十兆,上传给window,用editplus工具打开上传下载
yum install -y lrzsz 下载上传和下载命令
方法二:文件内容很大 几百兆 2G,cat xxx.log | grep error
命令输出结果 | 命令输入的 管道符
grep过滤
[root@hadoop001 jepson]# cat error.log | grep error
error
[root@hadoop001 jepson]#
cat xxx.log | grep -A 10 error后10行
[root@hadoop001 jepson]# cat error.log | grep -A 10 error
error
1
2
3
4
5
6
7
8
9
10
[root@hadoop001 jepson]#
cat xxx.log | grep -B 10 error前10行
[root@hadoop001 jepson]# cat error.log | grep -B 10 error
11
12
13
14
15
16
17
18
19
20
error
[root@hadoop001 jepson]#
cat xxx.log | grep -C 10 error 前后各10行 经常用 迅速定位error上下文
[root@hadoop001 jepson]# cat error.log | grep -C 10 error
11
12
13
14
15
16
17
18
19
20
error
1
2
3
4
5
6
7
8
9
10
[root@hadoop001 jepson]#
tail -300f messages 实时查看倒数300行文件
tail -300F messages 不能这样写