欢迎来到 Franklin-Qi 的世界

Max
Min

Linux命令之技巧性

Linux命令可以提高生产力

一、使用 !$ 重新使用上一个命令中的最后一项

更好的方法您可以使用使用alt + . , 在最后一个命令的选项之间来回移动的次数

二、在Linux终端中复制粘贴

Ctrl + Shift + C表示复制,Ctrl + Shift + V表示粘贴

三、清空文件而不删除它

> 文件名

四、find命令进行查找

  1. 根据文件类型、名称和大小查找
find . -type d -not -name '*.txt' -size +3M -size 4M -exec ls -al {} \;

find . -type d -not -name '*.txt' -size +3M -size 4M |xargs ls -al
  1. 根据时间查找
    ls -lut ./ 按访问时间顺序查看
    (如果想反序查看的话需要加一个选项 -r)

atime 最后一次访问时间, 如 ls, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看;
ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看;
mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变

注意: linux 里是不会记录文件的创建时间的,可以通过stat 进行查看。

----(+n)---------|------------(n)--------------|---------(-n)----
   (n+1)*24H前   |    (n+1)*24H ~ n*24H之间  |  n*24H以内 

[acm]time  计量单位是天,即24H
[acm]min   计量单位是分钟

find . -mtime  0 #查找一天内修改的文件
find . -mtime -2 #查找2天内修改的文件,多了一个减号
find . -mmin  -2 #查找距离现在2分钟内修改的文件

五、修改用户密码复杂度

vi /etc/login.defs,改PASS_MIN_LEN

不让显示器休眠:
setterm -blank 0 

以不同的用户身份运行程序:
su - username -c "/path/to/command" 
有时候需要运行特殊身份的程序, 就可以让su来做 

让一个程序在退出登陆后继续运行:
nohup 程序名 & 

编辑/etc/inittab后直接生效:
init q 

让linux连续执行几个命令,出错停止:
command1 && command2

bash字符模式下设置/删除环境变量:
设置:export 变量名=变量值 
删除:unset 变量名 

快速观看开机的硬件检测(弱智) 
dmesg | less

查看系统信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx) 
cat /proc/interrupts - 中断 
cat /proc/ioports - 设备IO端口 
cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size) 
cat /proc/partitions - 所有设备的所有分区 
cat /proc/pci - PCI设备的信息 
cat /proc/swaps - 所有Swap分区的信息 
cat /proc/version - Linux的版本号 相当于 uname -r 
uname -a - 看系统内核等信息 


利用现存两个文件,生成一个新的文件(bjchenxu) 
1. 取出两个文件的并集(重复的行只保留一份) 
2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) 
3. 删除交集,留下其他的行 
1. cat file1 file2 | sort | uniq 
2. cat file1 file2 | sort | uniq -d 
3. cat file1 file2 | sort | uniq -u 

mount用法(sakulagi,sxsfxx)
fat32的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom
ntfs的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
iso文件 mount -o loop /abc.iso /mnt/cdrom
软盘 mount /dev/fd0 /mnt/floppy
USB闪存 mount /dev/sda1 /mnt/cdrom
所有/etc/fstab内容 mount -a
可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等.
访问DVD mount -t iso9660 /dev/dvd /mnt/cdrom或mount -t udf /dev/dvd /mnt/cdrom
注意:dvd的格式一般为iso9660或udf之一 

echo 典型应用
echo "abcdefg" | perl -lne '{$a = reverse($_); print $a;}' 把一个字符串翻转
echo bottle|rev 把一个字符串翻转 

将 file.txt 里的123改为 456
sed 's/123/456/g' file.txt > file.txt.new   修改的保存到其它文件
sed -i 's/123/456/g' file.txt  直接修改原文件  

查看某文件的一部分
如果你只想看文件的前 5 行,可以使用 head 命令,
如:head -5 /etc/passwd
如果你想查看文件的后 10 行,可以使用 tail 命令,
如:tail -10 /etc/passwd
查看文件中间一段,可以使用 sed 命令
如:sed –n '5,10p' /etc/passwd 这样你就可以只查看文件的第 5 行到第 10 行 

在多级目录中查找某个文件的方法
1) find /dir -name filename.ext
2) du -a | grep filename.ext
3) locate filename.ext 

让用户的密码必须有一定的长度,并且符合复杂度
vi /etc/login.defs,修改 PASS_MIN_LEN 

如何防止某个关键文件被修改
在 Linux 下,有些配置文件是不允许任何人(包括 root)修改的。为了防止被误删除或修改
可以设定该文件的“不可修改位(immutable)  ”。命令如下:
# chattr +i /etc/fstab
如果需要修改文件则采用下面的命令:
# chattr -i /etc/fstab 

设置ssh 上来能不自动断线
修改自己 HOME 目录下的.bash_profile文件,加上
export TMOUT=1000000 (以秒为单位)
然后运行 source .bash_profile 

 [Mysql维护]
  1、mysql 的数据库存放在什么地方
1)  如果使用 rpm包安装,应该在/var/lib/mysql 目录下,以数据库名为目录名
2)  如果源码安装在/usr/local/mysql中,应该在/usr/local/mysql/var中,以数据库名为目录名
  2、 从 mysql 中导出和导入数据
导出数据库
mysqldump  数据库名 > 文件名
导入数据库
mysqladmin create  数据库名
mysql  数据库名 <  文件名 
 
  3、忘了 mysql 的 root 口令怎么办
# service mysql stop
# mysqld_safe --skip-grant-tables &
# mysqladmin -u user password 'newpassword''
# mysqladmin flush-privileges  

 4、 mysqld 起来了,却无法登录,提示"/var/lib/mysql/mysql.sock"不存在
这种情况大多数是因为你的 mysql 是使用 rpm 方式安装的,它会自动寻找
/var/lib/mysql/mysql.sock 这个文件,
通过 unix socket 登录 mysql。
常见解决办法如下:
1)创建/修改文件 /etc/my.cnf,至少增加/修改一行
[mysql]
[client]
socket = /tmp/mysql.sock
#在这里写上你的 mysql.sock 的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下
2)指定 IP地址,使用 tcp 方式连接mysql,而不使用本地 sock 方式
#mysql -h127.0.0.1 -uuser -ppassword
3)为 mysql.sock  加个连接,比如说实际的 mysql.sock 在 /tmp/  下,则
# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可 

5、 导出数据的几种常用方法
1)使用 mysqldump
#mysqldump -uuser -ppassword -B database --tables table1 --tables table2 >
dump_data_20051206.sql
详细的参数
2)backup to语法
mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory';
详细请查看 mysql 手册
3)mysqlhotcopy
#mysqlhotcopy db_name [/path/to/new_directory]
或
#mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory
或
#mysqlhotcopy db_name./regex/
详细请查看 mysql 手册
4)select into outfile
详细请查看 mysql 手册
5)客户端命令行
#mysql -uuser -ppassword -e "sql statements" database > result.txt
以上各种方法中,以 mysqldump 最常用 

 6、 如何在命令行上执行 sql 语句
#mysql -uuser -ppassword -e "sql statements" database
 
  7、 导入备份出来文件的常见方法
1)由 mysqldump 出来的文件
#mysql -uuser -ppassword [database] < dump.sql
2)文件类型同上,使用 source 语法
mysql>source /path_to_file/dump.sql;
3)按照一定格式存储的文本文件或 csv 等文件
#mysqlimport [options] database file1 [file2....]
详细请查看 mysql 手册
4)文件类型同上,也可以使用 load data 语法导入
详细请查看 mysql 手册 

过滤掉#号打头的行,和所有的空行(对于查看配置文档很有用)

awk '/^[^#]/&&/^[^$]/' filename > new.file

把当前目录下所有文件及目录名中的大写字符改为小写符号:
rename ‘y/A-Z/a-z/’ * 

Kill命令小技巧

kill -HUP PID 重新加载进程 

kill -TERM PID 结束进程 

kill -KILL PID 杀死进程 

-HUP可用数字-1代替 

-TERM可用数字-15代替 

-KILL可用数字-9代替 



查看系统日志信息,如:查看哪些用户什么时候登录过等。

/var/log/messages

/var/log/secure

lastlog

参考:
终端下的高效命令
linux 命令大全
命令大全
find 查找文件
find 时间查找
小技巧收集

posted on 2020-10-22 16:10  yusq77  阅读(97)  评论(0编辑  收藏  举报

导航