常用Linux命令
常用文件操作:编辑vi/vim,移动mv,删除rm,新建文件touch,上传文件rz,保存文件sz,新建目录mkdir
1.创建文件目录
语法:
mkdir [-p] dirName
举例:
在工作目录下,建立一个名为 AAA 的子目录 :
mkdir AAA
在工作目录下的 test 目录中,建立一个名为 Test 的子目录。 若test 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本test目录不存在,则产生错误。)
2.进入目录(dirName:要切换的目标目录。)
cd [dirName]
实例:
跳到自己的 home 目录 :
cd ~
3.列出所有子目录
ls
4.返回上一级目录
cd ../
5.返回上上级目录
cd ../..
6.编辑文件
Linux ed命令是文本编辑器,用于文本编辑。
ed是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。
ed命令并不是一个常用的命令,一般使用比较多的是vi 指令。但ed文本编辑器对于编辑大文件或对于在shell脚本程序中进行文本编辑很有用。
cat是查看,不能编辑。
实例:
$ ed <- 激活 ed 命令 a <- 告诉 ed 我要编辑新文件 My name is Titan. <- 输入第一行内容 And I love Perl very much. <- 输入第二行内容 . <- 返回 ed 的命令行状态 i <- 告诉 ed 我要在最后一行之前插入内容 I am 24. <- 将“I am 24.”插入“My name is Titan.”和“And I love Perl very much.”之间 . <- 返回 ed 的命令行状态 c <- 告诉 ed 我要替换最后一行输入内容 I am 24 years old. <- 将“I am 24.”替换成“I am 24 years old.”(注意:这里替换的是最后输的内容) . <- 返回 ed 的命令行状态 w readme.text <- 将文件命名为“readme.text”并保存(注意:如果是编辑已经存在的文件,只需要敲入 w 即可) q <- 完全退出 ed 编辑器
这是文件的内容是:
$ cat readme.text My name is Titan. I am 24 years old. And I love Perl vrey much.
7.pwd 命令来显示当前目录的绝对路径
[root@localhost ~]# pwd
8.打印输出文件
cat 命令用于连接文件并打印到标准输出设备上。
cat [-AbeEnstTuv] [--help] [--version] fileName
-n 或 --number:由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。 -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。 -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。 -E 或 --show-ends : 在每行结束处显示 $。 -T 或 --show-tabs: 将 TAB 字符显示为 ^I。 -A, --show-all:等价于 -vET。 -e:等价于"-vE"选项; -t:等价于"-vT"选项;
实例:
把 textfile1 的文档内容加上行号后 输入 textfile2 这个文档里:textfile2的文件内容变化
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt
9.辨识文件类型
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
-b 列出辨识结果时,不显示文件名称。 -c 详细显示指令执行过程,便于排错或分析程序执行的情形。 -f <名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。 -L 直接显示符号连接所指向的文件的类别。 -m <魔法数字文件> 指定魔法数字文件。 -v 显示版本信息。 -z 尝试去解读压缩文件的内容。 [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。 -i 显示MIME类别
实例:
[root@localhost ~]# file install.log install.log: UTF-8 Unicode text [root@localhost ~]# file -b install.log <== 不显示文件名称 UTF-8 Unicode text [root@localhost ~]# file -i install.log <== 显示MIME类别。 install.log: text/plain; charset=utf-8 [root@localhost ~]# file -b -i install.log text/plain; charset=utf-8
显示符号链接的文件类型
[root@localhost ~]# ls -l /var/mail lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail [root@localhost ~]# file /var/mail /var/mail: symbolic link to `spool/mail' [root@localhost ~]# file -L /var/mail /var/mail: directory [root@localhost ~]# file /var/spool/mail /var/spool/mail: directory [root@localhost ~]# file -L /var/spool/mail /var/spool/mail: directory
10.查找文件目录
locate [-d ][--help][--version][范本样式...]
-d或--database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。 --help 在线帮助。 --version 显示版本信息。
实例:
[root@localhost 桌面]$ locate 123.csv --查找123.csv这个文件的位置 /home/root/.cache/vmware/drag_and_drop/EmEiE8/123.csv /home/root/桌面/123.csv
11.复制远程文件或目录
Linux rcp命令用于复制远程文件或目录。
rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。
rcp [-pr][源文件或目录][目标文件或目录]
或
rcp [-pr][源文件或目录...][目标文件]
-p 保留源文件或目录的属性,包括拥有者,所属群组,权限与时间。
-r 递归处理,将指定目录下的文件与子目录一并处理。
实例
使用rcp指令复制远程文件到本地进行保存。
设本地主机当前账户为rootlocal,远程主机账户为root,要将远程主机(218.6.132.5)主目录下的文件"testfile"复制到本地目录"test"中,则输入如下命令:
rcp root@218.6.132.5:./testfile testfile #复制远程文件到本地 rcp root@218.6.132.5:home/rootlocal/testfile testfile #要求当前登录账户cmd 登录到远程主机 rcp 218.6.132.5:./testfile testfile
注意:指令"rcp"执行以后不会有返回信息,仅需要在目录"test"下查看是否存在文件"testfile"。若存在,则表示远程复制操作成功,否则远程复制操作失败。
12.删除一个文件或者目录
rm [options] name...
-i 删除前逐一询问确认。 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。
实例
删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:
# rm test.txt rm:是否删除 一般文件 "test.txt"? y # rm homework rm: 无法删除目录"homework": 是一个目录 # rm -r homework rm:是否删除 目录 "homework"? y
删除当前目录下的所有文件及目录,命令行为:
rm -r *
13.退出编辑
ctrl+c ctrl+z
14.tee命令用于读取标准输入的数据,并将其内容输出成文件
实例:
使用指令"tee"将用户输入的数据同时保存到文件"file1"和"file2"中,输入如下命令:(如果file1和file2文件不存在,会自动创建)
$ tee file1 file2 #在两个文件中复制内容
以上命令执行后,将提示用户输入需要保存到文件的数据,如下所示:
My Linux #提示用户输入数据
My Linux #输出数据,进行输出反馈
此时,可以分别打开文件"file1"和"file2",查看其内容是否均是"My Linux"即可判断指令"tee"是否执行成功。
15. cp命令主要用于复制文件或目录
cp [options] source dest
或
cp [options] source... directory
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。 -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。 -f:覆盖已经存在的目标文件而不给出提示。 -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。 -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。 -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 -l:不复制文件,只是生成链接文件。
实例
使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:
$ cp –r test/ newtest
注意:用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。
16.touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
a 改变档案的读取时间记录。 m 改变档案的修改时间记录。 c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。 f 不使用,是为了与其他 unix 系统的相容性而保留。 r 使用参考档的时间记录,与 --file 的效果一样。 d 设定时间与日期,可以使用各种不同的格式。 t 设定档案的时间记录,格式与 date 指令相同。 --no-create 不会建立新档案。 --help 列出指令格式。 --version 列出版本讯息。
实例
使用指令"touch"修改文件"testfile"的时间属性为当前系统时间,输入如下命令:
$ touch testfile #修改文件的时间属性
首先,使用ls命令查看testfile文件的属性,如下所示:
$ ls -l testfile #查看文件的时间属性 #原来文件的修改时间为16:09 -rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile
执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示:
$ touch testfile #修改文件时间属性为当前系统时间 $ ls -l testfile #查看文件的时间属性 #修改后文件的时间属性为当前系统时间 -rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile
使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令:
$ touch file #创建一个名为“file”的新的空白文件
17.tail
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
命令格式:
tail [参数] [文件]
-f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示文件的尾部 n 行内容 --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束 -q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
实例:
把logs文件的后300行保存为eg.txt:
tail -n 300 x.logs > eg.txt
要显示 notes.log 文件的最后 10 行,请输入以下命令:
tail notes.log
要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:
tail -f notes.log
此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。
显示文件 notes.log 的内容,从第 20 行至文件末尾:
tail +20 notes.log
显示文件 notes.log 的最后 10 个字符:
tail -c 10 notes.log
18.sz-上传文件到本机目录中
sz filename
19.ll
列出当前目录的所有文件的详细信息
20.查看虚拟机的ip
ifconfig
21.mv命令:移动文件或改名
[root@localhost ~]# mv 【选项】 源文件 目标文件
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖; -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项); -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户; -v:显示文件或目录的移动过程; -u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级;
例1:移动文件或目录
[root@localhost ~]# mv cangls /tmp #移动之后,源文件会被删除,类似剪切 [root@localhost ~]# mkdir movie [root@localhost ~]# mv movie/ /tmp #也可以移动目录。和 rm、cp 不同的是,mv 移动目录不需要加入 "-r" 选项
如果移动的目标位置已经存在同名的文件,则同样会提示是否覆盖,因为 mv 命令默认执行的也是 "mv -i" 的别名,例如:
[root@localhost ~]# touch cangls #重新建立文件 [root@localhost ~]# mv cangls /tmp mv:县否覆盖"tmp/cangls"?y #由于 /tmp 目录下已经存在 cangls 文件,所以会提示是否覆盖,需要手工输入 y 覆盖移动
如果源文件和目标文件在同一目录中,那就是改名。例如:
[root@localhost ~]# mv bols lmls #把 bols 改名为 lmls
22.查看系统文件夹
[root@localhost ~]# df -h
23.查看当前账号user的文件夹
[root@localhost ~]# cd /usr
24.安装工具包
/bin/yum install tools
25.安装sz,rz命令
/bin/yum install lrzsz
26.复制本地文件到虚拟机中
rz filename
27.查看所有文件,包括隐藏文件
ll -a
28.关机和重启
[root@localhost ~]# shutdown [选项] 时间 [警告信息]
-c:取消已经执行的 shutdown 命令; -h:关机; -r:重启;
[root@localhost ~]# shutdown -r now #重启, now是现在重启的意思 [root@localhost ~]# shutdown -r 05:30 #指定时间重启,但会占用前台终端 [root@localhost ~]# shutdown -r 05:30 & #把定义重启命令放入后台,&是后台的意思 [root@localhost ~]# shutdown -c //取消定时重启 [root@localhost ~]# shutdown -r +10 #10分钟之后重启
[root@localhost ~]# shutdown -h now #现在关机 [root@localhost ~]# shutdown -h 05:30 #指定时间关机
29.删除目录
rm -r 目录名
强制删除文件夹
rm -rf nginx-1.13.9
30.vim中强制退出编辑模式
:q!
31.安装Vim包
/bin/yum install vim
32.
查看服务剩余空间 free -m/free -g 查看所有java进程 ps -ef|grep java 查看redis服务 ps -ef|grep redis 启动redis cd /usr/local/redis-4.0.8/src && ./redis-server /usr/local/redis-4.0.8/redis.conf & 查看当前目录的进程 netstat -ntpl netstat -ntpl|grep 8081 查看8081这个端口被哪些服务在用 查看指定进程的服务 ps pid kill进程 kill -9 pid1 pid2... 切换用户 su logs 切换到logs用户 切换用户并进入该目录 su - logs 切换到logs用户并且进入了logs目录 查看日志最近300行 tail -n 300 x.logs tail从后面显示,head从前面显示 动态查看日志,实时更新 tail -f x.logs ctrl+c结束 查看日志 前 n行 cat 文件名 | head -n 数量 查看日志 尾 n行: cat 文件名 | tail -n 数量 根据 关键词 查看日志 并返回关键词所在行 cat 路径/文件名 | grep 关键词 grep -i 关键词 路径/文件名 上传文件 rz 下载文件 sz *.txt 查看下载路径CRT中在传输-接收Xmodem(N)中 复制,目录 cp –r test/ newtest 使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下 复制,内容 cp 1.txt test2/2.txt 将1.txt中的内容复制到test2中的2.txt中 复制文件 cp 1.txt test2 将1.txt复制到test2中,复制后的结果:test2中存在1.txt 复制文件夹/目录 cp -r apache-tomcat-7.0.63 test1 apache-tomcat-7.0.63下还有很多文件,必须要-r 多个文件夹删除 rm -f test1 test2 test3 查看系统磁盘占用情况 df -TH 与df-hl "’ -H 1K=1000 -h 1K=1024" top top 命令实时显示进程的状态 修改权限 chmod 777 -R /tmp ‘-r表示递归,下面的所有都要这行这个命令,可读(w=4)可写(r=2)可执行(x=1), 修改权限 chmod u+x *.sh u 代表用户. g 代表用户组. o 代表其他. a 代表所有. u代表所有者user;x代表执行权限;+ 表示增加权限。对当前目录下的*.sh文件的所有者增加可执行权限。查看文件 vim start.sh cat start.sh 修改时间 date -s "2012-12-12 12:12:12" 增加用户 useradd lyl,创建的结果在home中 创建密码 passwd lyl,然后设置密码 查看当前目录的完整地址 pwd 查看当前服务的ip地址 ip address 移动并且复制 scp -r apache-tomcat-7.0.63.tar.gz lyl@39.98.225.xxx:/home/lyl 将apache-tomcat-7.0.63.tar.gz复制到39.98.225.xxx的home/lyl目录下 若要到到本机的某个目录下,可以写127.0.0.1
解压zip包 unzip xxx.zip .tar "解包:tar -xvf FileName.tar 打包:tar -cvf FileName.tar DirName " eg:tar -xvf apache-tomcat-7.0.63.tar.gz
在linux中安装jdk 1.包放入 cd/usr/local下 2.修改环境变量(根目录下)vim /etc/profile 3.修改环境变量3个: export JAVA_HOME=/usr/local/jdk1.8.0_65 export JRE_HOME=$JAVA_HOME/jre export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"
在linux中安装tomcat 1.复制apache-tomcat-7.0.63.tar.gz,如上scp; 2.解压; 3.进入conf修改server.xml的端口,3个; 4.启动该tomcat; 5.浏览器中访问,验证是否可以访问成功。" 进入redis,方法 1.cd /usr/local/; 2.进入具体的redis; 3.cd src,然后操作4启动,远程到客户端 4.进入redis客户端: ./redis-cli -h ip -p port; 5.然后操作查询,删除等;eg:get key1;del key1... 启动redis,方法 1.先进入cd /usr/local 2.再次进入具体的redis, 3.在进入src 4.启动命令:./redis-server /usr/local/Redis/redis.conf"